auRokku is a command-line utility for compatible au feature phones. It communicates with the handset through a private USB service to inspect or change UIM lock, phone lock code, ICCID, and maintenance state.
- Display the phone serial number, service version, phone lock code, UIM lock state, and ICCID record.
- Read, clear, or write the UIM lock binding.
- Read or reset the phone lock code.
- Read the ICCID record.
- Change the maintenance bit.
- Run grouped basic or UIM lock queries.
- Enumerate USB configurations, interfaces, alternate settings, endpoints, and bulk endpoint pairs.
- Run bounded SERI or SCDP liveness probes on an explicitly selected USB channel.
- Produce human-readable or JSON output.
- Python 3.10 or newer
pyusb- A working libusb backend
python3 -m pip install pyusbDisplay the current device status:
python3 auRokku.py --vid 0482 --pid 0a5c --op statusRead the UIM lock state:
python3 auRokku.py --vid 0482 --pid 0a5c --op readuimlkRead the ICCID record or phone lock code:
python3 auRokku.py --vid 0482 --pid 0a5c --op readiccid
python3 auRokku.py --vid 0482 --pid 0a5c --op readpinClear the UIM lock binding:
python3 auRokku.py --vid 0482 --pid 0a5c --op clearlkWrite a four-byte UIM lock value:
python3 auRokku.py --vid 0482 --pid 0a5c --op writelk --val 80e48ed2 --control 1Reset the phone lock code to 1234:
python3 auRokku.py --vid 0482 --pid 0a5c --op resetpinChange the maintenance bit:
python3 auRokku.py --vid 0482 --pid 0a5c --op maintenance_bit --control 1
python3 auRokku.py --vid 0482 --pid 0a5c --op maintenance_bit --control 0Run a grouped read profile:
python3 auRokku.py --vid 0482 --pid 0a5c --op batch --profile basic
python3 auRokku.py --vid 0482 --pid 0a5c --op batch --profile uimlkExit the current service mode:
python3 auRokku.py --vid 0482 --pid 0a5c --op exit
python3 auRokku.py --vid 0482 --pid 0a5c --op exituimlkUse --json for machine-readable output or --verbose to display USB traffic:
python3 auRokku.py --vid 0482 --pid 0a5c --op status --json
python3 auRokku.py --vid 0482 --pid 0a5c --op status --verboseUse --help to display all available options.
Start with the passive descriptor probe. It does not require a serial number, claim an interface, or send protocol traffic:
python3 auRokku.py --vid 04dd --pid 934a --op probe --jsonThe result lists every USB configuration, interface, alternate setting, endpoint, and candidate bulk OUT/IN pair. Use the reported values instead of assuming that the default interface and endpoints are correct.
Run a bounded SERI probe on one selected channel:
python3 auRokku.py \
--vid 04dd --pid 934a \
--interface 2 --ep-out 04 --ep-in 84 \
--op probe --probe-kind seri --probe-timeout 1.0 --verboseThe SERI probe sends 1c 05 and succeeds only when the response begins with the same bytes. After a matching response, auRokku sends d8 to leave the service on non-Sony devices. It does not send authentication, UIM lock, PIN, or maintenance commands.
Run a bounded SCDP synchronization probe:
python3 auRokku.py \
--vid 04dd --pid 934a \
--interface 2 --ep-out 04 --ep-in 84 \
--op probe --probe-kind scdp --probe-timeout 1.0 --jsonThe SCDP probe sends only 8e and reports the raw bounded response. Keep SERI and SCDP probes separate; do not run both protocol families on the same channel without identifying the interface first.
--interface is a decimal interface number. --ep-out and --ep-in are hexadecimal endpoint addresses. OUT endpoints must have bit 7 clear, and IN endpoints must have bit 7 set. The endpoint options can also override the defaults for normal auRokku operations.
Both --vid and --pid are required hexadecimal USB IDs. Replace the example values with your device IDs:
python3 auRokku.py --op status --vid 0482 --pid 0a5cauRokku normally reads the serial number from the USB descriptor. If it is unavailable, provide either the 11-character serial number or the raw hexadecimal Type2Auth value:
python3 auRokku.py --vid 0482 --pid 0a5c --op status --sn SKYKA077394
python3 auRokku.py --vid 0482 --pid 0a5c --op status --sn 947307414B594B53KYY06, KYY09, and KYY10 require Type 2 authentication.
Use --type2 for phones that require base 52/53 authentication:
python3 auRokku.py --vid 0482 --pid 0a5c --op status --type2The status, readuimlk, readiccid, readpin, and batch operations are intended for inspection. The clearlk, writelk, resetpin, and maintenance_bit operations will directly modify NVs.
The default probe mode only reads USB descriptors. The seri and scdp probe kinds transmit the packets documented above. Use descriptor output to select the correct interface and endpoint pair before running an active probe. A response proves only that the selected USB channel reacted; it does not prove that other auRokku operations are compatible with that handset.