There was some way to keep adb enabled on the first firmware, but unfortunately for me, my unit updated as soon as I connected to wifi (you must realise i had no idea about what this orange contraption was). There are still references in the RabbitLauncher code to enable a factory mode that grants adb but I'm sure this is stripped out.
fancypants' experiments
oh no cringe
Coming to unlocking the bootloader. You can simply unlock it using mtkclient's seccfg commands. But for some reason, I quite often was left with dm-verity issues when using seccfg directly. Don't get me wrong, it did work most of the times, but I wanted a more reliable way to unlock. I opted for pulling partition frp, flipping the last byte, and writing it back to the device. Then booting to fastboot using meta bootcmd/sequence, and issuing fastboot flashing unlock. Since there are no volume keys, it automatically selects "Yes". If frp was updated correctly, the bootloader unlocks normally.
Now, my first plan of action was to just try a GSI. After all, I have no kernel source, and this was not a certified device. Would be interesting to see what a GSI would do, would it even boot?
π3
It does boot, but there's constant crashes, mostly with launcher3. Looking at the logs and some sifting through AOSP, I realised, vendor doesn't have handheld_core_hardware.xml and other standard handheld smartphone permission files & configs.
π₯4
I copied over the GSI target from AOSP and started working on that, adding what was missing, initial IMS port and figuring out what to do with the keys and camera. For keys, you have 2 approaches:
1. framework keyhandler
2. keylayout
I have both on my tree, but I'm actively using only the framework keyhandler approach, since it lets me retain default behaviour for when someone manages to port a simple rabbitlauncher apk.
1. framework keyhandler
2. keylayout
I have both on my tree, but I'm actively using only the framework keyhandler approach, since it lets me retain default behaviour for when someone manages to port a simple rabbitlauncher apk.
π₯1
That brings us to reversing the rabbit launcher that actually teaches us quite a bit!
π₯1
step_motor_ms35774 -> camera orientation step motor
och1970_holl_key -> scroll wheel
och1970_holl_key -> scroll wheel
π₯1
Further, the most annoying bit of the device is that long pressing power DOES NOT hard reset the device, unless you are talking to preloader or brom, and something has disabled its watchdog.
Forwarded from Kshitij Gupta
was looking at ifixitβs photos and noticed the button (next to the 2 unmarked golden pads)
In the sim tray, theres a very tiny button, if you press this, it hard resets the soc
π±4
For the step motor, you can use a QS tile like such:
https://github.com/RabbitHoleEscapeR1/device_rabbit_r1/tree/main/StepMotorControls
This will toggle it between its 3 "most useful states", but realistically it takes any value between 0 and 180
https://github.com/RabbitHoleEscapeR1/device_rabbit_r1/tree/main/StepMotorControls
This will toggle it between its 3 "most useful states", but realistically it takes any value between 0 and 180
GitHub
device_rabbit_r1/StepMotorControls at main Β· RabbitHoleEscapeR1/device_rabbit_r1
GSI tree for the Rabbit R1. Contribute to RabbitHoleEscapeR1/device_rabbit_r1 development by creating an account on GitHub.
The second most annoying thing of this device: the prebuilt kernel. The kernel does not for the love-of-god let you go permissive
Process to install magisk is much like any other device, I wont dive into it here.
The kernel is a not-yet-open(?) linux kernel:
Linux version 4.19.191-g9f720735273f
Which from what i gather it mtk's last 4.19 release for 6765. Should be pretty easy to rewrite the kernel, but it could take some time to redo ms35774 and och1970 from data sheets.
Linux version 4.19.191-g9f720735273f
Which from what i gather it mtk's last 4.19 release for 6765. Should be pretty easy to rewrite the kernel, but it could take some time to redo ms35774 and och1970 from data sheets.
Adding google services inevitably makes GMS yell at me from every single Google app it has in its arsenal on the device, I'll bother with this later too
https://github.com/RabbitHoleEscapeR1/r1_escape
Here's a (hopefully) all in one script that should automate the unlocking and flashing process on both linux and windows. If someone can help me get mtkclient working on macOS, I'd be happy to add macOS support too.
Here's a (hopefully) all in one script that should automate the unlocking and flashing process on both linux and windows. If someone can help me get mtkclient working on macOS, I'd be happy to add macOS support too.