bedHedd's Jelly Star LineageOS + Rooting adventure

introduction

I got this unihertz jelly star as a low stakes test bench to learn how to root android phones. The following is my experience and a aggregate of multiple guides for getting my computer setup to root my phone. If you want to read more about the process of writing the guide, stick around for the post-mortem writeup

“guide/walk through”

I followed these guides and will be quoting the instructions with my own experiences on fedora 39. This guide assumes no responsibility for any bricked phones. If you aren’t certain, ask a language model to explain what the commands are doing, or look what the commands do.
Note some of these commands might need to be run with sudo. I have intentionally left them out so that you can review the commands before running them.

These two guides helped in writing the overall guide

getting my computer and phone setup

Fedora does not natively have adb installed, we’ll need to install adb and enable fastboot.
These guides were helpful in writing this section

  1. install android tools
    •  dnf install android-tools
      
  2. download the android-udev-rules from this repository. follow the instructions
  1. enable fastboot

    •  groupadd adbusers and sudo usermod -a -G adbusers $(whoami)
      
  2. enable developer mode, usb debugging, and allow the computer usb debugging permissions on the phone

    I reposted it here

    Enabling USB Debugging on an Android Device

    The steps to enable USB debugging depend on the version of Android running on the target device, as indicated in the following table:

    Android Device Instructions
    Android 4.0 and newer (Jelly Bean) Enable the USB Debugging option under Settings > Developer options.For Android 4.2 and newer, Developer options is hidden by default; use the following steps:1. On the device, go to Settings > About .2. Tap the Build number seven times to make Settings > Developer options available.3. Then enable the USB Debugging option. Tip: You might also want to enable the Stay awake option, to prevent your Android device from sleeping while plugged into the USB port. For more information, see Unlocking Jelly Bean and Higher Devices
    Kindle Fire devices Select Settings > Security and set Enable ADB to On.For more information, see the Amazon documentation.

    If you are running Android 4.2.2 or later, you may see the following dialog when you connect your device to your PC running RAD Studio:

    image

    Click OK to allow USB debugging on your PC. If you accidentally click Cancel, disconnect your device from your PC and connect it back to make the dialog show up again on your device.

  3. plug in your phone and verify that the device shows up when adb devices is run

    • adb devices
      List of devices attached
      JELLYS0000010000	device
      
  4. remove your sd card if one is installed

  5. install magisk from the official github page onto your phone

rooting the phone

this section will help root the phone and prepare the images. Instructions adapted from the reddit post linked above

  1. start by build version using adb
    • adb shell "'getprop' | grep  -e 'ro.build.flavor'"
      [ro.build.flavor]: [sys_mssi_g58v89c2k_dfl_tee-user]    
      
    • note the version: in my case it is g58v89c2k_dfl_tee
  2. find the version on unihertz google drive and download it. For my phone, it is within the None_EEA folder. I searched for g58v89c2k on the drive page
  3. extract the zip and copy the following files (or note the file paths to the files):
    • boot.img
    • vbmeta.img
  4. copy boot.img to your phone
  5. open magisk on your phone, navigate to the install portion, insert the file, and patch the boot.img
  6. copy the patched file from your phone to the pc in a location that you can access. The filename will have a structure of magisk_patched*.img. I personally put it in my stock_root_images folder with the boot.img, vbmeta and other img files
  7. with the phone plugged in, run the adb devices command and verify that the device shows up. Sample output below
    • adb devices
      List of devices attached
      JELLYS0000010000	device
      
  8. reboot to the bootloader using adb reboot bootloader
    • the unihertz logo should be pop up and stay frozen on the phone
  9. confirm the phone shows up in when fastboot devices shows up

flashing LineageOS

This section follows the guide “DeGoogle the Unihertz Jelly Star” written by Chris McWain. You will need to follow similar instructions to the previous sections getting developer mode enabled on the phone, and patching the boot and vbmeta images. If you already followed the previous steps, you can skip to step 8/9 of these instructions

  1. start by build version using adb
    • adb shell "'getprop' | grep  -e 'ro.build.flavor'"
      [ro.build.flavor]: [sys_mssi_g58v89c2k_dfl_tee-user]    
      
    • note the version: in my case it is g58v89c2k_dfl_tee
  2. find the version on unihertz google drive and download it. For my phone, it is within the None_EEA folder. I searched for g58v89c2k on the drive page
  3. extract the zip and copy the following files (or note the file paths to the files):
    • boot.img
    • vbmeta.img
  4. copy boot.img to your phone
  5. open magisk on your phone, navigate to the install portion, insert the file, and patch the boot.img
  6. copy the patched file from your phone to the pc in a location that you can access. The filename will have a structure of magisk_patched*.img. I personally put it in my stock_root_images folder with the boot.img, vbmeta and other img files
  7. with the phone plugged in, run the adb devices command and verify that the device shows up. Sample output below
    • adb devices
      List of devices attached
      JELLYS0000010000	device
      
  8. reboot to the bootloader using adb reboot bootloader
    • the unihertz logo should be pop up and stay frozen on the phone
  9. confirm the phone shows up in when fastboot devices shows up
  10. Download the latest LineageOS.
    • note follow the naming rules on the readme before downloading.
    • 命名规则 / Naming rules
      
      {arm|a64|arm64}_{a|b}{v|g}{N|S}-{signed|vndklite|secure|personal}
      |               |    |    |     |
      |               |    |    |     signed: Signed with maintainer's keys
      |               |    |    |     vndklite: For VNDKLite devices,
      |               |    |    |               or for read-writeable /system on regular devices
      |               |    |    |     personal: With personal mods, for reference
      |               |    |    |     secure: Superuser removed and system props spoofed
      |               |    |    |
      |               |    |    N: No Superuser
      |               |    |    S: *Built* with PHH Superuser (app needed)
      |               |    |    (Z): *Built* with eremitein's Dynamic Superuser (not offered here)
      |               |    |
      |               |    v: Vanilla, i.e. no GAPPS
      |               |    g: With regular GAPPS
      |               |    o: With Android Go GAPPS
      |               |    (f): With built-in MicroG and FLOSS replacements of GAPPS (not offered here)
      |               |
      |               a: "A-only", i.e. system-as-system (deprecated since Android 12)
      |               b: "AB", i.e. system-as-root
      |
      arm: ARM 32-bit (deprecated since Android 12)
      a64: ARM 32-bit with 64-bit binder
      arm64: ARM 64-bit
      
    • in my case I will be using the bvN file as I want the b: "AB", i.e. system-as-root, v: Vanilla, i.e. no GAPPS, N: No Superuser. We will use magisk to root the phone
  11. Extract the LineageOS package. Place it within the same folder as your patched images
  12. run the following flashboot command while inside of your patched images
    • fastboot flashing unlock
      
    • fastboot flash vbmeta_a vbmeta.img 
      
    • fastboot flash vbmeta_vendor_a vbmeta_vendor.img 
      
    • fastboot reboot fastboot
      
    • fastboot -l devices
      
      • note: we want this command to confirm that fastboot can still send commands to our phone
    • fastboot delete-logical-partition product
      
    • fastboot erase system_a
      
    • fastboot flash system_a <path to lineageOS.img> 
      
      • note: replace <path to lineageOS.img> with the actual path. In my case it is lineage-20.0-20240818-UNOFFICIAL-arm64_bvN.img
    • fastboot --set-active=a
      
    • fastboot erase userdata
      
    • adb reboot bootloader
      
  13. LineageOS should now boot onto your phone, follow the setup and enter the system. Do not sign into any accounts as we will be adding microg, which involves flashing and rooting the phone again
  14. Transfer the latest Magisk.apk and boot.img to your phone. If your phone is connected to your computer, just copy the files to a directory you can access on your phone
  15. Install Magisk, and open the app. Within the app click the install button. when prompted, select the boot.img file from directory you placed it in in the previous step. Disconnect your phone from your pc and reconnect it.
  16. With your phone reconnected, access the directory with your patched boot image, in my case it is magisk_patched-27000_nUXhT.img
    • note: your file might look different after the -27000_nUXhT.img that is uniquely generated. For the next step pick the file that is magisk_patched-* where * is the text after the -
  17. Root the lineageos phone to install microg
    • fastboot devices
      
    • adb reboot bootloader
      
    • fastboot flash boot_a magisk_patched-27000_nUXhT.img
      
    • fastboot reboot
      
  18. Setup the phone and install microG. I installed f-droid to install microg.

Additional help/notes

help my device does not show up in fastboot

use this section if you get a empty output from fastboot devices or fastboot -l devices.

  1. start by getting lsusb. I have stripped out the usb to the relevant device
    • lsusb
      ... 
      Bus 001 Device 015: ID 0e8d:201d MediaTek Inc. Jelly Star
      ...
      
      • note down the id in my case it is 0e8d
  2. add a entry to udev
    • sh -c "echo '# MediaTek Inc. Jelly Star' >> /etc/udev/rules.d/51-android.rules"
      sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"0e8d\", MODE=\"0666\", GROUP=\"plugdev\"' >> /etc/udev/rules.d/51-android.rules"
      
  3. reload udev
    • udevadm control --reload-rules
      udevadm trigger
      

help I’m stuck in orange state

No worries my friend, stay calm, you can still recover from this

  1. power down your phone. If you are stuck in a boot loop follow these instructions to enter recovery mode, which includes options you can use to power down the device
    I've copied the instructions here in case the post gets deleted
  2. Download and install SP Flash Tool V6, the instructions have been adapted from this reddit guide also linked above Jelly Star Rooted link
    Using the instructions from reddit
  3. Launch SP Flash Tool V6. Instructions adapted from the flashing stock rom section of How to use the SP Flash Tool for MTK based devices.
3 Likes

post-mortem