[Android Software/Hacking General [Developers Only]] davidcsv:
The purpose of this thread is to provide a guide for users who have Proxyme preloaded in their device's firmware and want to find out how to use it effectively. Ideally, this will be a place to share experiences and ideas to further improve the tool and provide solutions to problems that people may have.

Introduction

Proxyme ( proc-zahym ) represents a system access solution comprised of the following components:

System service - provides access to privileged system environment

SSH daemon - provides secure shell (ssh) and file (scp) access (based on dropbear)

proxyme.apk - user interface module

This solution is offered as a preloaded option in firmware images and consequently cannot (should not) be installed as a regular app, either from the Play Store or being side loaded. The reason for pre-loading stems from the requirements of the system service component to be able to integrate at system level and not be bound by operating restrictions within the Android application and framework platform environment (Zygote and Dalvik sandbox). The Play Store has been enlisted as the primary and preferred source in providing updates to the user interface component; the actual app you will be interacting with.

Proxyme offers the following functionality through its user interface:

Installation/de-installation of the su binary to provide/remove root access

(useful only for other applications which require root level access)

The persistent behaviour of the su binary can be controlled by a one-shot switch

Register/de-register tag-along scripts for su enable and disable actions

(more details on this below)

Control availability and location of busybox toolbox

Start/Stop SSH daemon

Configure listening port for the SSH daemon

Configure user accounts for the SSH daemon

Submit and execute a shell script

SU Binary

The option to enable or disable the su binary switch (on/off) in the user interface is the equivalent of rooting and unrooting the device. When enabled, you are providing root access to apps which require it to perform correctly. Currently, Proxyme does not have built-in support for monitoring and 'policing' the actual access to root.

Auto Root @ Boot

This switch in the Proxyme app allows you to indicate whether the su binary should be installed or removed during a reboot or startup of the device. Setting it to the 'on' position will make the su binary persistent throughout reboot cycles and leave your phone permanently 'rooted'.

Registering Tag-along Scripts

Whenever you enable or disable the su binary with the on/off switch in the user interface, there exists an option to execute a user script just prior to and one unique to each action. This is possible by pre-registering a script for one of or both enable/disable actions. A script can virtually perform anything and is always executed within root context. Note that you must be very cautious about the scripts you are registering and be certain about their intentions, because a rogue script could cause irreparable damage to you device.

Each script has the option to override, and thus block, the intended action (enable or disable) by setting a system property named proxyme.override to anything but blank.

One purpose of having tag-along scripts would be to 'freeze' and 'unfreeze' specific root-shy apps, which do not 'like' rooted systems. This is one area where we can share the experience of pre-coded scripts for certain target apps and I do hope it will be put to good use.

To submit a script file, tap on one of the SU Enable Script or SU Disable Script text elements to start browsing for a file.

Busybox

Busybox is just that, busybox. Options are available to determine one of two hard-configured locations where it can be installed and to enable or disable it.

More to follow later...

SSH Daemon

The SSH daemon is based on dropbear. It has been modified to support logon accounts in Android, which are configured with the following parameters:

username

password

home directory

which shell to use

user ID

group ID

For whatever reasons, you can restrict access by specifying non-root user and group (0:0) IDs. The IDs you can choose from are derived from a system list which was used and known within Android at the moment of booting the device. If you have installed new apps in the meantime and would like to use their newly assigned IDs, then please reboot the phone to update this list.

Executing Shell Scripts

The ability to submit and execute a shell script from the user interface can be considered a convenient and quick way to get some tasks done. Take note however that your scripts are run in a privileged environment under the root account and that there are risks involved. A rogue or insufficiently tested script can cause major problems if/when it makes changes to key system partitions, which are normally mounted read only for obvious reasons.

Most rom images will include a sample de-bloating script,which removes ROM specific branding apps. The script. /sdcard/Proxyme/debloat.sh, shows how this is done and could serve as a base for more extensive clean-up of firmware components, if you so desire.

Operational Notes

Whenever a device boots from a factory reset condition (i.e. after wiping data), there will be no UID/GID list available in the user management screen. The reason for this is that the SuMeD setup process will complete before the app data store, the location where aforementioned list is stored. has been initialised. Restart the device in order to make this list available.

Behind The Scenes

For details regarding how Proxyme's system service components are integrated in a firmware image, please follow this trail...

Device Support

Before taking the next step to flash your phone/device, please be aware of the risks involved with performing such an operation. Prepare the device properly, i.e. sufficient battery charge, and be well informed of the correct flashing procedure(s) for your device's make and model. On Samsung devices, rooting will probably trigger 'custom' flag(s) and consequently render the warranty void. No matter how adventurous you may feel, it is always a bad idea to try to flash a firmware image which is not intended for your device. Having said all that, note that you will be flashing your phone at your own risk. You are solely responsible for anything you do to your phone/device, so make sure you are well informed and well prepared before deciding to flash or install anything on it.

The following list will be updated as soon as new firmware images are prepared for new and old devices.

Samsung Galaxy Note 10.1 2014

SM-P600 - (reference post)

Samsung Galaxy J

SC-02F (Docomo) - (reference thread)

SGH-N075T (Taiwan) - (reference thread)

Samsung Note 3

SM-N9005 - (reference post)

SM-N900A - (reference post - unconfirmed)

Samsung Galaxy S4

SHV-E330K - (reference thread)

SHV-E330L - (reference thread)

SHV-E330S - (reference thread)

SGH-I337 - (reference post - unconfirmed)

SC-04E - (reference post)

Samsung Galaxy Grand 2

SM-G710L - (reference post)

Samsung Galaxy S3

GT-I9300 - (reference post)

SC-03E - (reference thread)

SHV-E210K - (reference thread)

SHV-E210L - (reference thread)

SHV-E210S - (reference post)

SHW-M440S - (reference post)

Samsung Galaxy S2 LTE

SHV-E110S - (reference thread)

Samsung Galaxy S2

SHW-M250K - (reference post)

Planned Changes

built-in control of su access (much like what Superuser currently does)

choice of built-in simple file browser or use intents to initiate external app(s) for browsing and selecting files

...