July 01, 2024
- Before making any changes, make sure you backup your stock partitions with MTKClient
./mtk rl --skip userdata "path/to/backup"
- Based on your setup & OS, you may need to include
python3
in front:python3 ./mtk rl --skip userdata "path/to/backup"
- I am putting this together as a small guide for users trying to get stock Android (or LineageOS) running on the Rabbit r1.
- Start here: GitHub: RabbitHoleEscapeR1 / r1_escape
- Adjust screen resolution:
adb shell wm density 180
- Details on the stepper motor for the camera:
retr0id — 05/29/2024 1:49 PM This is the stepper motor driver they use (datasheet) https://www.relmon.com/en/index.php/welcome/download/378.html
- Rotating the camera:
Guinea pig with sunglasses — Yesterday at 3:51 PM run these commands in tasker or something and bind it to a quick settings button:
front: echo 0 > /sys/devices/platform/step_motor_ms35774/orientation
back: echo 180 > /sys/devices/platform/step_motor_ms35774/orientation
down: echo 90 > /sys/devices/platform/step_motor_ms35774/orientation (requires root)
- You may want to use something like Tasker with the above commands so you don't need to type them out or be near a computer to move the camera.
- Useful information, so you don't need to type everything out: StackOverflow: ADB Shell Input Events
usage: input [text|keyevent]
input text <string>
input keyevent <event_code>
-
- Some possible values for event_code are:
0 --> "KEYCODE_UNKNOWN"
1 --> "KEYCODE_MENU"
2 --> "KEYCODE_SOFT_RIGHT"
3 --> "KEYCODE_HOME"
4 --> "KEYCODE_BACK"
5 --> "KEYCODE_CALL"
6 --> "KEYCODE_ENDCALL"
7 --> "KEYCODE_0"
8 --> "KEYCODE_1"
9 --> "KEYCODE_2"
10 --> "KEYCODE_3"
11 --> "KEYCODE_4"
12 --> "KEYCODE_5"
13 --> "KEYCODE_6"
14 --> "KEYCODE_7"
15 --> "KEYCODE_8"
16 --> "KEYCODE_9"
17 --> "KEYCODE_STAR"
18 --> "KEYCODE_POUND"
19 --> "KEYCODE_DPAD_UP"
20 --> "KEYCODE_DPAD_DOWN"
21 --> "KEYCODE_DPAD_LEFT"
22 --> "KEYCODE_DPAD_RIGHT"
23 --> "KEYCODE_DPAD_CENTER"
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"
26 --> "KEYCODE_POWER"
27 --> "KEYCODE_CAMERA"
28 --> "KEYCODE_CLEAR"
29 --> "KEYCODE_A"
30 --> "KEYCODE_B"
31 --> "KEYCODE_C"
32 --> "KEYCODE_D"
33 --> "KEYCODE_E"
34 --> "KEYCODE_F"
35 --> "KEYCODE_G"
36 --> "KEYCODE_H"
37 --> "KEYCODE_I"
38 --> "KEYCODE_J"
39 --> "KEYCODE_K"
40 --> "KEYCODE_L"
41 --> "KEYCODE_M"
42 --> "KEYCODE_N"
43 --> "KEYCODE_O"
44 --> "KEYCODE_P"
45 --> "KEYCODE_Q"
46 --> "KEYCODE_R"
47 --> "KEYCODE_S"
48 --> "KEYCODE_T"
49 --> "KEYCODE_U"
50 --> "KEYCODE_V"
51 --> "KEYCODE_W"
52 --> "KEYCODE_X"
53 --> "KEYCODE_Y"
54 --> "KEYCODE_Z"
55 --> "KEYCODE_COMMA"
56 --> "KEYCODE_PERIOD"
57 --> "KEYCODE_ALT_LEFT"
58 --> "KEYCODE_ALT_RIGHT"
59 --> "KEYCODE_SHIFT_LEFT"
60 --> "KEYCODE_SHIFT_RIGHT"
61 --> "KEYCODE_TAB"
62 --> "KEYCODE_SPACE"
63 --> "KEYCODE_SYM"
64 --> "KEYCODE_EXPLORER"
65 --> "KEYCODE_ENVELOPE"
66 --> "KEYCODE_ENTER"
67 --> "KEYCODE_DEL"
68 --> "KEYCODE_GRAVE"
69 --> "KEYCODE_MINUS"
70 --> "KEYCODE_EQUALS"
71 --> "KEYCODE_LEFT_BRACKET"
72 --> "KEYCODE_RIGHT_BRACKET"
73 --> "KEYCODE_BACKSLASH"
74 --> "KEYCODE_SEMICOLON"
75 --> "KEYCODE_APOSTROPHE"
76 --> "KEYCODE_SLASH"
77 --> "KEYCODE_AT"
78 --> "KEYCODE_NUM"
79 --> "KEYCODE_HEADSETHOOK"
80 --> "KEYCODE_FOCUS"
81 --> "KEYCODE_PLUS"
82 --> "KEYCODE_MENU"
83 --> "KEYCODE_NOTIFICATION"
84 --> "KEYCODE_SEARCH"
85 --> "TAG_LAST_KEYCODE"
- Getting the Play Store working on stock Android:
- XDA Developers: How to Fix the "Device is not Certified by Google" Error
- Google: Device Registration
adb root
adb shell 'sqlite3 /data/*/*/*/gservices.db \
"select * from main where name = \"android_id\";"'
- Download a GSI image from here: Andy Yan's personal builds // GSI
- I used: lineage-21.0-20240525-UNOFFICIAL-arm64_bgN.img.xz
- These are the commands I ran to get Lineage on my r1:
- ** THIS WILL WIPE YOUR LOCAL STORAGE **
unxz lineage-21.0-20240525-UNOFFICIAL-arm64_bgN.img.xz
cp lineage-21.0-20240526-UNOFFICIAL-arm64_bgN.img ~/Development/r1_escape
adb reboot bootloader
fastboot devices
fastboot -w
fastboot flash --disable-verity --disable-verification vbmeta vbmeta.img
fastboot flash system lineage-21.0-20240526-UNOFFICIAL-arm64_bgN.img
fastboot reboot-fastboot
fastboot flash system lineage-21.0-20240526-UNOFFICIAL-arm64_bgN.img
fastboot reboot
- For LineageOS: Trebuchet seems to repeatedly crash when trying to launch. I manually loaded the AIO Launcher APK to get around that.
- Word of warning... it does take a bit for LineageOS to boot the first time. Let it sit for ~15 minutes before trying to reflash, go to stock Android, or restore the default "rabbitOS".
- LineageOS' default launcher (Trebuchet) will repeatedly crash, so you'll need to load a new one. Below are some that users have confirmed are working:
- AIO Launcher
- Niagara
- Pro Launcher
- Nova Launcher does not work.
- You will need to get the boot image from the device so it can be patched with Magisk. You can get that through the following commands:
adb root
adb shell
dd if=/dev/block/by-name/boot_a of=/sdcard/stock_boot.img
-
- After installing Magisk, you can open it, & select the boot image you saved previously from the /sdcard/, & have it be patched with Magisk.
- The resulting file will be in your /sdcard/Downloads/ folder. You'll want to pull that onto your computer (
adb pull /sdcard/Downloads/$magiskBootImage
-- fix the filename at the end) adb reboot bootloader
where you should then be able to flash the Magisk boot image viafastboot flash boot $magiskBootImage