• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

Would you install TWRP and Magisk if you could?


  • Total voters
    52
Search This thread

theOriginalSuperl2

Senior Member
May 28, 2016
469
680
Melbourne
Hi all, I've just got my hands on a TicWatch Pro 3 and am keen to mod it.
As far as I can tell, there've been no kernels or recoveries built for it yet. I'd like to fix that.
This will be my first time bringing up TWRP (I have experience with building AOSP and porting Ubuntu Touch and PostmarketOS).

If anyone else is interested in helping with this stuff, feel free to join in! It'd be great if we can build a bit of a community around this.

My plan of action is as follows:
  1. Boot TWRP or obtain temporary root access in another way. Some kernel sources are available.
  2. Extract images of every partition on the device (excluding userdata) so we have a way to restore everything if anything goes wrong,
  3. Properly port TWRP to the device. This may be difficult; I don't think TWRP has run on the SDM429W before, though it's based off the SDM429. The Nokia 3.2 may be a useful reference.
  4. Root the device with Magisk, and document the process so users can do it.
  5. Build a custom kernel. To be honest, I'm not sure if this device needs one, but @janjan managed to squeeze amazing performance out of the OG TWP by tweaking a few things and disabling junk.
Here's some useful information to get started:
  • The TWP3 ships with a charging cable that only has power wires. It's possible to use an old TWP dock to get a data connection, though, and the bootloader can be unlocked through fastboot. See this thread for more info. The USB wire layout is not in the regular order (D+ and D- are swapped), so if you don't have an old dock and are using wires, refer to the pictures here.
  • The TWP3 LTE kernel source code is available here. I've also forked it here, in case anything happens to the original repo. As far as I can tell, there are no sources for the GPS model, but the kernel version in the repo (4.9.232) matches my GPS model's kernel version. I expect the LTE kernel can be used on the GPS with minimal effort.
  • The rubyfish kernel configuration is available through /proc. It's attached to this post.
I'm not sure if unlocking the bootloader blocks OTA updates; if it does, perhaps we should work out a way to manually download OTA updates before unlocking the bootloader.

Here's some miscellaneous information:
  • The TWP3 LTE is codenamed "rover", and the TWP3 GPS is codenamed "rubyfish".
  • As far as I can tell, the Snapdragon Wear 4100 in this device is a 64-bit SoC, but a 32-bit OS is in use.
  • Here's the complete kernel version string on my rubyfish running the latest OTA update: Linux version 4.9.232-perf+ ([email protected]) (gcc version 4.9.x 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Jun 9 09:55:19 CST 2021
 

bernarbernuli

Senior Member
Aug 26, 2010
115
199
Vigo
www.htcmania.com
I think the project is fantastic, the truth is that Mobvoi totally succeeded in minimizing attempts to root the watch, simply sold the watch with a cable that only serves to charge, and also there is none for sale (not even in the Asian market), you can only make one by hand, which pushes back 99.9% of users.

For those who don't know, the cable is mandatory, because to flash TWRP or root you must first unlock bootloader. Unlocking bootloader is done in bootloader mode (fastboot) and there will not work debugging via Wi-Fi, as the watch in this mode does not connect to the Wi-Fi network, it will only work with a USB cable.

Anyway, I want to contribute the info I have on the subject:

- Last May the user @mind-overflow was trying to port TWRP, I do not know if he has managed to advance something. Since May i do not know anything. Here the last thing he talked about it.

- Here, at the end of that post I explain how to make a handmade cable from a Ticwatch S/E cable.
 

BadWolfYe

Senior Member
I think the project is fantastic, the truth is that Mobvoi totally succeeded in minimizing attempts to root the watch, simply sold the watch with a cable that only serves to charge, and also there is none for sale (not even in the Asian market), you can only make one by hand, which pushes back 99.9% of users.

For those who don't know, the cable is mandatory, because to flash TWRP or root you must first unlock bootloader. Unlocking bootloader is done in bootloader mode (fastboot) and there will not work debugging via Wi-Fi, as the watch in this mode does not connect to the Wi-Fi network, it will only work with a USB cable.

Anyway, I want to contribute the info I have on the subject:

- Last May the user @mind-overflow was trying to port TWRP, I do not know if he has managed to advance something. Since May i do not know anything. Here the last thing he talked about it.

- Here, at the end of that post I explain how to make a handmade cable from a Ticwatch S/E cable.
Use "fastboot boot rubyfish_recovery.img"
Without "" obviusly

Actually it's untested
Edit: i see u from Spain, Send me pv if u have Telegram ;)

Edit2: for upload the Rover variant


Rubyfish = BT + GPS Ticwatch Pro 3
Rover = LTE Ticwatch Pro 3
 

Attachments

  • rubyfish_recovery.img
    23.5 MB · Views: 49
  • rover_recovery.img
    23.5 MB · Views: 29
Last edited:

bernarbernuli

Senior Member
Aug 26, 2010
115
199
Vigo
www.htcmania.com
Use "fastboot boot rubyfish_recovery.img"
Without "" obviusly

Actually it's untested
Edit: i see u from Spain, Send me pv if u have Telegram ;)

What good news, hopefully it works.

Pending clarification from @BadWolfYe I understand that TWRP recovery is ONLY for the GPS variant, no? I say this in case some brave guy who has TWP3 LTE is/will be flashing it.
 

BadWolfYe

Senior Member
What good news, hopefully it works.

Pending clarification from @BadWolfYe I understand that TWRP recovery is ONLY for the GPS variant, no? I say this in case some brave guy who has TWP3 LTE is/will be flashing it.
In theory can work for the two variants in any case if any want for LTE tell me and i upload ;)
Although I would rather wait to upload it when I know if it goes at least the GPS In my jenkins I have a set to compile both variants as soon as I can test it in the next few days
 
  • Wow
Reactions: bernarbernuli

BadWolfYe

Senior Member

Attachments

  • Screenshot_2021-07-29-18-50-30-366_com.android.chrome.jpg
    Screenshot_2021-07-29-18-50-30-366_com.android.chrome.jpg
    504.7 KB · Views: 168
  • Screenshot_2021-07-29-18-50-33-774_com.android.chrome.jpg
    Screenshot_2021-07-29-18-50-33-774_com.android.chrome.jpg
    538.3 KB · Views: 140
  • Screenshot_2021-07-29-18-50-10-303_com.android.chrome.jpg
    Screenshot_2021-07-29-18-50-10-303_com.android.chrome.jpg
    325.6 KB · Views: 117
  • Screenshot_2021-07-29-18-49-58-637_com.android.chrome.jpg
    Screenshot_2021-07-29-18-49-58-637_com.android.chrome.jpg
    392.7 KB · Views: 110
  • Screenshot_2021-07-29-18-49-30-308_com.android.chrome.jpg
    Screenshot_2021-07-29-18-49-30-308_com.android.chrome.jpg
    674.1 KB · Views: 129
  • Screenshot_2021-07-29-18-49-00-056_com.android.chrome.jpg
    Screenshot_2021-07-29-18-49-00-056_com.android.chrome.jpg
    450.8 KB · Views: 166
  • Love
Reactions: eduardozeassesme

theOriginalSuperl2

Senior Member
May 28, 2016
469
680
Melbourne
Be careful everyone - the first thing we should do is pull stock images before doing anything that may break OTA updates so we can revert back to stock if need be. I've been talking to JanJan on this matter, and it seems that OTA can be broken very easily.

@BadWolfYe, that DTB error can be caused by missing DTB images appended to the boot image or kernel. This can usually be remedied by changing the kernel configuration - have you tried using the config available through /proc/config.gz?
 

BadWolfYe

Senior Member
Be careful everyone - the first thing we should do is pull stock images before doing anything that may break OTA updates so we can revert back to stock if need be. I've been talking to JanJan on this matter, and it seems that OTA can be broken very easily.

@BadWolfYe, that DTB error can be caused by missing DTB images appended to the boot image or kernel. This can usually be remedied by changing the kernel configuration - have you tried using the config available through /proc/config.gz?
Yep, i use the config.gz from device, and the output file after build it's zImage-dtb 🤦🤦🤦🤦

If any want acces to the source of device Tree/kernel
Send me a pm with Telegram Alias
 

bernarbernuli

Senior Member
Aug 26, 2010
115
199
Vigo
www.htcmania.com
There were no more OTA updates since July. The last update for TWP3 LTE was in May and TWP3 GPS in July.

The only way someone meets that profile is to buy these days TWP3 GPS (and hopefully has not received the July factory update) , unlock the bootloader and then upgrade.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 9
    OneOS WearOS

    21.10.3 Changelo
    ---FIRST PREVIEW VERSION--
    -Added ONE Bootanimatio
    -Tweaks to system/etc/prop.defaul
    -Tweaks to system/build.pro
    -Moved some apps to data-app
    -Removed the deletion of Custom Recover
    -Deodexed
    3
    1633058981970.png

    Things are going well...
    2
    I've made a full eMMC dump. I've uploaded every partition that doesn't contain sensitive info.
    Excluded partitions in my upload are: cache, DDR, mcfg, persist, tz, userdata.
    I'll publish a guide on how to do this yourself soon. Everyone should back up their own persist partitions as they contain sensor calibration data.

    Download the images here: https://androidfilehost.com/?fid=7161016148664816932

    Here's a complete partition list:

    Code:
    # lsblk -o name,partlabel,fstype,size,uuid /dev/loop1
    
    NAME       PARTLABEL    FSTYPE  SIZE UUID
    loop1                           7.1G
    ├─loop1p1  modem        vfat     84M 00BC-614E
    ├─loop1p2  fsc                    1K
    ├─loop1p3  ssd                    8K
    ├─loop1p4  sbl1                 512K
    ├─loop1p5  sbl1bak              512K
    ├─loop1p6  rpm                  512K
    ├─loop1p7  rpmbak               512K
    ├─loop1p8  tz                     2M
    ├─loop1p9  tzbak                  2M
    ├─loop1p10 devcfg               256K
    ├─loop1p11 devcfgbak            256K
    ├─loop1p12 dsp          ext4     16M af32c008-2a39-7e5b-a5dc-201456d93103
    ├─loop1p13 dspbak       ext4     16M af32c008-2a39-7e5b-a5dc-201456d93103
    ├─loop1p14 modemst1             1.5M
    ├─loop1p15 modemst2             1.5M
    ├─loop1p16 DDR                   32K
    ├─loop1p17 fsg                  1.5M
    ├─loop1p18 sec                   16K
    ├─loop1p19 splash                11M
    ├─loop1p20 aboot                  1M
    ├─loop1p21 abootbak               1M
    ├─loop1p22 dtbo                   8M
    ├─loop1p23 dtbobak                8M
    ├─loop1p24 vbmeta                64K
    ├─loop1p25 vbmetabak             64K
    ├─loop1p26 boot                  32M
    ├─loop1p27 recovery              32M
    ├─loop1p28 devinfo                1M
    ├─loop1p29 system       ext4    1.5G c8d4c976-2cc7-553b-8c90-9810db1915c1
    ├─loop1p30 vendor       ext4    512M 38ba1d68-5883-5923-afce-5094c89a2e99
    ├─loop1p31 cmnlib                 1M
    ├─loop1p32 cmnlibbak              1M
    ├─loop1p33 cmnlib64               1M
    ├─loop1p34 cmnlib64bak            1M
    ├─loop1p35 keymaster              1M
    ├─loop1p36 keymasterbak           1M
    ├─loop1p37 cache        ext4     64M 8a2a63b8-6101-4879-b3d7-3af37090d3f5
    ├─loop1p38 persist      ext4     32M 57f8f4bc-abf4-655f-bf67-946fc0f9f25b
    ├─loop1p39 misc                   1M
    ├─loop1p40 keystore             512K
    ├─loop1p41 config                32K
    ├─loop1p42 oem          ext4     16M c46af7c8-7768-44bf-87e7-4e9e489cba6e
    ├─loop1p43 limits                32K
    ├─loop1p44 dip                    1M
    ├─loop1p45 mdtp                  32M
    ├─loop1p46 mdtpbak               32M
    ├─loop1p47 mcfg                   4M
    ├─loop1p48 apdp                 256K
    ├─loop1p49 msadp                256K
    ├─loop1p50 dpo                    8K
    ├─loop1p51 btlver                 1K
    └─loop1p52 userdata     f2fs    4.7G adee6f87-7155-465d-b933-c85ed3f0c47c

    8GB flash with 4.7GB userdata... Good job Mobvoi
    2
    @albinoman887,
    I finally received my cable and unlocked my watch. i should have TWRP installed today, and if you are still in need of borrowing a cable, let me know and i can ship mine to you. If you are interested let's move our conversation to PM.
    .
    I will say, it's a bit challenging to get the connection, but it's doable.

    Let me know...
    1
    There were no more OTA updates since July. The last update for TWP3 LTE was in May and TWP3 GPS in July.

    The only way someone meets that profile is to buy these days TWP3 GPS (and hopefully has not received the July factory update) , unlock the bootloader and then upgrade.
    I unlocked mine a while back when the ticwatch pro 3 GPS was like a month or 2 old I've accepted all the otas with unlocked bootloader it has remained unlocked.
  • 13
    Hi all, I've just got my hands on a TicWatch Pro 3 and am keen to mod it.
    As far as I can tell, there've been no kernels or recoveries built for it yet. I'd like to fix that.
    This will be my first time bringing up TWRP (I have experience with building AOSP and porting Ubuntu Touch and PostmarketOS).

    If anyone else is interested in helping with this stuff, feel free to join in! It'd be great if we can build a bit of a community around this.

    My plan of action is as follows:
    1. Boot TWRP or obtain temporary root access in another way. Some kernel sources are available.
    2. Extract images of every partition on the device (excluding userdata) so we have a way to restore everything if anything goes wrong,
    3. Properly port TWRP to the device. This may be difficult; I don't think TWRP has run on the SDM429W before, though it's based off the SDM429. The Nokia 3.2 may be a useful reference.
    4. Root the device with Magisk, and document the process so users can do it.
    5. Build a custom kernel. To be honest, I'm not sure if this device needs one, but @janjan managed to squeeze amazing performance out of the OG TWP by tweaking a few things and disabling junk.
    Here's some useful information to get started:
    • The TWP3 ships with a charging cable that only has power wires. It's possible to use an old TWP dock to get a data connection, though, and the bootloader can be unlocked through fastboot. See this thread for more info. The USB wire layout is not in the regular order (D+ and D- are swapped), so if you don't have an old dock and are using wires, refer to the pictures here.
    • The TWP3 LTE kernel source code is available here. I've also forked it here, in case anything happens to the original repo. As far as I can tell, there are no sources for the GPS model, but the kernel version in the repo (4.9.232) matches my GPS model's kernel version. I expect the LTE kernel can be used on the GPS with minimal effort.
    • The rubyfish kernel configuration is available through /proc. It's attached to this post.
    I'm not sure if unlocking the bootloader blocks OTA updates; if it does, perhaps we should work out a way to manually download OTA updates before unlocking the bootloader.

    Here's some miscellaneous information:
    • The TWP3 LTE is codenamed "rover", and the TWP3 GPS is codenamed "rubyfish".
    • As far as I can tell, the Snapdragon Wear 4100 in this device is a 64-bit SoC, but a 32-bit OS is in use.
    • Here's the complete kernel version string on my rubyfish running the latest OTA update: Linux version 4.9.232-perf+ ([email protected]) (gcc version 4.9.x 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Jun 9 09:55:19 CST 2021
    9
    OneOS WearOS

    21.10.3 Changelo
    ---FIRST PREVIEW VERSION--
    -Added ONE Bootanimatio
    -Tweaks to system/etc/prop.defaul
    -Tweaks to system/build.pro
    -Moved some apps to data-app
    -Removed the deletion of Custom Recover
    -Deodexed
    5
    I think the project is fantastic, the truth is that Mobvoi totally succeeded in minimizing attempts to root the watch, simply sold the watch with a cable that only serves to charge, and also there is none for sale (not even in the Asian market), you can only make one by hand, which pushes back 99.9% of users.

    For those who don't know, the cable is mandatory, because to flash TWRP or root you must first unlock bootloader. Unlocking bootloader is done in bootloader mode (fastboot) and there will not work debugging via Wi-Fi, as the watch in this mode does not connect to the Wi-Fi network, it will only work with a USB cable.

    Anyway, I want to contribute the info I have on the subject:

    - Last May the user @mind-overflow was trying to port TWRP, I do not know if he has managed to advance something. Since May i do not know anything. Here the last thing he talked about it.

    - Here, at the end of that post I explain how to make a handmade cable from a Ticwatch S/E cable.
    Use "fastboot boot rubyfish_recovery.img"
    Without "" obviusly

    Actually it's untested
    Edit: i see u from Spain, Send me pv if u have Telegram ;)

    Edit2: for upload the Rover variant


    Rubyfish = BT + GPS Ticwatch Pro 3
    Rover = LTE Ticwatch Pro 3
    3
    I think the project is fantastic, the truth is that Mobvoi totally succeeded in minimizing attempts to root the watch, simply sold the watch with a cable that only serves to charge, and also there is none for sale (not even in the Asian market), you can only make one by hand, which pushes back 99.9% of users.

    For those who don't know, the cable is mandatory, because to flash TWRP or root you must first unlock bootloader. Unlocking bootloader is done in bootloader mode (fastboot) and there will not work debugging via Wi-Fi, as the watch in this mode does not connect to the Wi-Fi network, it will only work with a USB cable.

    Anyway, I want to contribute the info I have on the subject:

    - Last May the user @mind-overflow was trying to port TWRP, I do not know if he has managed to advance something. Since May i do not know anything. Here the last thing he talked about it.

    - Here, at the end of that post I explain how to make a handmade cable from a Ticwatch S/E cable.
    3
    1633058981970.png

    Things are going well...