UART ADB Root - tigerbox-reverse-engineering/tigerbox GitHub Wiki

UART - Console

Hardware Preparation

Just connect your favorite 3.3V UART Interface to the marked test pads on the back. Reverse TX/RX and use the grey marked test pad as GND.

  • Voltage: 3.3V
  • Baudrate: 115200 Baud
  • Parity: None
  • Flow control: XON/XOFF

Serial Console - Root / SU

Feel free here. Just type su and gain root. Done...

FIQ Debugger

It may be possible to get into the FIQ debugger while booting and sending something in the right moment.

ADB

via WiFi

Preparation - UART

You will need to enable WiFi ADB via UART. This pr

setprop service.adb.tcp.port 5555
stop adbd
start adbd

ADB Connection

adb connect <tigerbox-ip>:5555

via USB

To enable ADB over USB, you need to make the following lines go into /system/build.prop:

persist.service.adb.enable=1
persist.service.debuggable=1
persist.sys.usb.config=mtp,adb

Stock image has this configuration instead:

persist.sys.usb.config=charging

So it's as easy as modifying one line and additng two new ones to one file? Yes. Though it's not always easy, tigerbox doesn't protect your device from you.

First, check if the partition is mounted to /system with write enabled. To do that, execute mount to list all mount points, and find the line for that partition. Make sure it's marked as read-write by rw attrib, ie:

/dev/block/platform/1021c000.rksdmmc/by-name/system /system ext4 rw,seclabel,noatime,nodiratime,noauto_da_alloc,data=ordered 0 0

If you see ro instead, remount the partition.

Then, check which properties are set in your build.prop. On a stock image, I got:

shell@rk312x:/ $ cat /system/build.prop | grep persist
persist.tegra.nvmmlite = 1
persist.sys.caration.standby=60000
persist.sys.caration.antiaddic=false
persist.sys.timezone=Europe/Amsterdam
persist.sys.boot.check=false
persist.sys.strictmode.visual=false
persist.sys.usb.config=charging
persist.sys.dalvik.vm.lib.2=libart.so

Now we need a text editor. The Android image has busybox, so we can use the utilities inside. One option is visual editing with vi, my preference is command line editing with sed:

su
busybox sed -i 's/^\(persist[.]sys[.]usb[.]config\)=.*$/\1=mtp,adb/' /system/build.prop
busybox sed -i '/^persist[.]sys[.]usb[.]config=.*$/a persist.service.debuggable=1' /system/build.prop
busybox sed -i '/^persist[.]sys[.]usb[.]config=.*$/a persist.service.adb.enable=1' /system/build.prop

After you reboot the device, it will report as adb device and media device. Note: if you damage build.prop, fixing it might be tricky. Be careful.

You will have to make sure the specific USB identifier (Vendor ID and Product ID) is treated as "Composite ADB Interface" on your PC. If using Windows, either modify ADB driver from Google so that it recognizes your device, or force install the Google ADB driver on unrecognized "ADB Device" in "Device Manager".

via WIFI

May be possible with https://github.com/tintinweb/pub/tree/master/pocs/cve-2017-13208

via USB Android Recovery without opening

Currently only works on Linux or Windows Subsystem for Linux 2 with adb installed.

Use a Paperclip to press it in the RESET hole right from the USB Connector. While doing this press the on/off button to boot in Android Recovery. Use adb root and adb pull /dev/block/mmcblk0p12 /patch/to/file. And mount over sudo mount -t ext4 /patch/to/file/mmcblk0p12 /mount/patch/ nano /mount/patch/build.prop and add

persist.service.adb.enable=1
persist.service.debuggable=1  

and change persist.sys.usb.config=charging to persist.sys.usb.config=mtp,adb

then sudo umount /mount/patch/ and adb push /patch/to/file/mmcblk0p12 /dev/block/mmcblk0p12 and adb reboot