Related
So, my household was 100% chromecast until I plunked down on 2 Fire TV's recently. My wife KEEPS using the chromecast because she cannot be looking all around for the FTV remote when she is feeding our newborn. She always has her phone on her, so she just fires content to the Chromecast. This got me to thinking - how can I can give her the same ease of use with the FTV?
It turns out that this is possible with Tasker and a Tasker Plugin called AutoRemote (https://play.google.com/store/apps/details?id=com.joaomgcd.autoremote&hl=en).
Here is what you need to get this running...
0. A mouse.
1. Root - http://forum.xda-developers.com/fire-tv/general/videos-how-to-root-mod-hack-amazon-fire-t2800683
2. Google Play Store - http://forum.xda-developers.com/showpost.php?p=53570674&postcount=1
3. Market Helper - http://codekiem.com/2013/02/13/market-helper/ (I set my FTV to spoof a Nexus 7 on T-Mobile)
4. Before you can install Tasker you have to install some missing libraries. I copied the following from my phone (Nexus 5) to the same location on my FTV, then rebooted:
+ /system/etc/permissions/com.google.android.maps.xml
+ /system/framework/com.google.android.maps.jar
5. Tasker (install from Google Play on your FTV and your phone/tablet)
6. AutoRemote (install from Google Play on your FTV and your phone/tablet)
7. Optional: Droidmote Server (on the FTV) and Droidmote Client on your phone/tablet. https://play.google.com/store/apps/details?id=org.videomap.droidmoteserver&hl=en
Now that you have all the pre-reqs in place here's how to put it all together:
1. Launch AutoRemote on the FTV. You will see a QR code on the screen.
2. Launch AutoRemote on your phone. Press the phone icon at the bottom (2nd icon).
3. On the next screen press the QR code at the bottom. Scan the QR code on your FTV to pair the devices.
4. Launch Tasker on the FTV, go to the Profiles tab, click the + at the bottom, click Event.
5. For the Event Category select Plugin, then select "AutoRemote"
6. Click the pencil button to open AutoRemote configuration for this profile. Click Message Filter then enter the name of the app you want to launch. Click OK, then click the "Exact Message" check box.
7. Click the back button twice to get back to the main Tasker window. It will ask you to create a new task to go with this profile. Just click New Task and name it if you want to.
8. Click the + button at the bottom of the Task Edit screen. Select App, then Launch App, then select the app you want to launch.
9. Press back 2 times to get back to the main tasker window.
10. You should see a new entry called "AutoRemote appname (exact)" where "appname" is the text you entered in step 6 above. Underneath that line will be a green arrow and the text "Launch App XXXXXX" and the icon for the app you selected in step 8.
NOW ON YOUR PHONE...
11. Launch Tasker and go to the Tasks tab, and click the + button to create a new task. Name it.
12. Click the + button at the bottom of the next screen, then click Plugin, then select "AutoRemote Message".
13. Click the edit icon next to configuration. AutoRemote will come up. Make sure the Device is set to your FTV. Click message to edit the message you want to send to your FTV.
14. Enter the EXACT text you entered in step 6 above. Click back twice to get back to the Task Edit screen.
15. Optional: Add a new action to launch Droidmote on your phone. Click the plus sign to add a new Action. Then select App, Launch App, select Droidmote Client. Click back once to get back to the task edit screen.
16. Click the grid icon (bottom right corner). Assign an icon to this task. Keep clicking back until you are out of Tasker.
17. Create a new shortcut on your home screen, choose Task Shortcut, then select the Task you just created. I have put shortcuts to all my tasks into an FTV folder on my device.
Repeat steps 4-17 for every app you want to launch from your phone.
Now if you click that shortcut the following will happen...
1. Tasker will send an AutoRemote message saying "netflix" (for example) from your phone to your FTV.
1B. If you did the optional step 15 above then Droidmote will launch on your phone so that you can navigate the FTV interface from your phone.
2. Your FTV will receive that message.
3. Tasker will automatically see the message, and launch Netflix.
4. ???
5. Profit
Hope you guys found this helpful! Let me know if you have any questions. If you have ways to make this better then please chime in! I'm no Tasker expert and just found AutoRemote today, so I am sure there are probably some creative things that can be done that I havent thought of.
Awesome post. I love tasker! Thanks for the guide.
sublimnl said:
So, my household was 100% chromecast until I plunked down on 2 Fire TV's recently. My wife KEEPS using the chromecast because she cannot be looking all around for the FTV remote when she is feeding our newborn. She always has her phone on her, so she just fires content to the Chromecast. This got me to thinking - how can I can give her the same ease of use with the FTV?
Click to expand...
Click to collapse
Maybe I did not understand well your post or i don't know your specific need.
But, is not more simple to use only DroidMote Client on your phone to open and control all apps on FireTv ?
DroidMote emulates real input devices in the Android OS. Mouse, keyboard, multi-touch trackpad, touch screen and a gamepad with 16 buttons and 6 axis. So, you should be able to do everything.
My wife, that is not tech friendly, use Droidmote with one hand and without watch the phone to control all my android tv box. Mostly she use the mouse functionality or the Touch Mouse for apps that not support a real mouse and voice dictation to write text.
This is a little example with an old version of what you can do, over time have been added many other features and improvements:
https://www.youtube.com/playlist?list=PL2E8D73B9D757086B
The Quick Start Guide: http://goo.gl/9pTzS
Simplicity is a matter of opinion. As you can see in my post above, I am aware of and use Droidmote as well. However, I think its easier to launch apps this way - especially side loaded apps (I know about FiredTV). Also, this allows for control of the FTV without turning the screen on. For example I have our living room FTV connected to our AV receiver and a projector. If all I want to do is listen to music then I don't want to turn the projector on for that. Now I can just launch Google Play music or Spotify on the FTV from my phone (and load a playlist automatically in the case of Google Play music). Then I can control play/pause, skip tracks etc all from droidmote.
That's just one case where droidmote alone doesn't do the job. There are probably others I can't think of right now.
Sent from my Nexus 5 using Tapatalk
OK. I was just curious to understand. Thanks for the further explanation.
Launcher Hijack V4
Allows a custom launcher on Amazon Kindle Fire's and Fire TV's
An early, insert seasonally appropriate celebration here, present from me. Adds support for Fire TV devices and the new Fire Tablets. Enjoy.
Please find instructions for use here (https://github.com/BaronKiko/LauncherHijack/blob/master/HELP.md#fire-tvs). Adb required for first time setup on Fire TV's.
Find the latest release here (https://github.com/BaronKiko/LauncherHijack/releases). I'm working on Aptoide and F-Droid releases for those that prefer those methods. Hopefully in the next few days.
If you want to look at my rushed and sloppy code then feel free to look here (https://github.com/BaronKiko/LauncherHijack)
Please send any issues here (https://github.com/BaronKiko/LauncherHijack/issues)
Feeling kind and want to donate? Find instructions here (https://github.com/BaronKiko/LauncherHijack/blob/master/README.md#donations)
Huge thanks to ParrotGeek1, Speeddymon and Urbanman2004.
ParrotGeek1 made V1 and without him I would have never started this project.
Speeddymon donated a 2018 Fire TV allowing me to implement Fire TV support. If you have a Fire TV you should thank him
Urbanman2004 created the lovely logo/app icon. Be sure to thank him too.
Finally I don't really check these forums often anymore so please head over to the github page and post there if you are having any issues. Usually I am pretty quick to respond there.
im not having any luck getting the accessibility function to work. i am on fireos 5.2.4.2
EDIT: I also have a fully updated firestick with the same issue. 5.2.6.7. hijack says accessibility needs to be enabled.
I believe I have a solution. I had to enable and disable some system accessibility settings to get the setting to take effect.
krsmit0 said:
im not having any luck getting the accessibility function to work. i am on fireos 5.2.4.2
EDIT: I also have a fully updated firestick with the same issue. 5.2.6.7. hijack says accessibility needs to be enabled.
I believe I have a solution. I had to enable and disable some system accessibility settings to get the setting to take effect.
Click to expand...
Click to collapse
You have to run an adb command to get it going on the fire tv's. Instructions explain it all.
The adb command alone wasn't enough. I use settings get... To verify it was there. But through several reboots it wouldnt work until I toggled other accessibility settings. This was the case for 2 different sticks.
Can you post what you did?
even with the adb command it still says accessibility needs to be enabled
huffmybrd said:
even with the adb command it still says accessibility needs to be enabled
Click to expand...
Click to collapse
Go into the standard fire TV settings and toggle.on some accessibility options. Then press home and see which launcher pops up.
Do you have the option in the settings? On the firestick 4k, fire tv (3rd gen?) and the cube (all running fire os 6.x) there are no options so you have to set it via adb. If you can do it through the system ui do it there I just thought all fire tv's didn't have the option.
Honestly I only own my fire tv because speeddymon donated it so that I could implement support for it, and I rarely use it as I have a computer hooked up to my tv making it entirely useless. In short I don't really know the in's and out's of the device.
Please do let me know what devices and fireos versions you are all running so I can update the instructions. Also what exact menu's you have to go through to get to the option.
As an aside you probably need to drop "secure" from the adb command to get it working on devices with the menu option but the system UI option is just better. Google changed it's category to stop you setting it without adb when they removed the menu option.
BaronKiko said:
Do you have the option in the settings? On the firestick 4k, fire tv (3rd gen?) and the cube (all running fire os 6.x) there are no options so you have to set it via adb. If you can do it through the system ui do it there I just thought all fire tv's didn't have the option.
Honestly I only own my fire tv because speeddymon donated it so that I could implement support for it, and I rarely use it as I have a computer hooked up to my tv making it entirely useless. In short I don't really know the in's and out's of the device.
Please do let me know what devices and fireos versions you are all running so I can update the instructions. Also what exact menu's you have to go through to get to the option.
As an aside you probably need to drop "secure" from the adb command to get it working on devices with the menu option but the system UI option is just better. Google changed it's category to stop you setting it without adb when they removed the menu option.
Click to expand...
Click to collapse
its not the home button option that needs to be toggled. like you say, its not there. but toggling some of the other options seems to get this to work after you have done the adb command. but doing the adb command alone and rebooting doesnt make this work. the system doesn't think it is enabled. toggling other accessibility options on and off finally made it work for me.
BaronKiko said:
Launcher Hijack V4
Allows a custom launcher on Amazon Kindle Fire's and Fire TV's
An early, insert seasonally appropriate celebration here, present from me. Adds support for Fire TV devices and the new Fire Tablets. Enjoy.
Please find instructions for use here (https://github.com/BaronKiko/LauncherHijack/blob/master/HELP.md#fire-tvs). Adb required for first time setup on Fire TV's.
Find the latest release here (https://github.com/BaronKiko/LauncherHijack/releases). I'm working on Aptoide and F-Droid releases for those that prefer those methods. Hopefully in the next few days.
If you want to look at my rushed and sloppy code then feel free to look here (https://github.com/BaronKiko/LauncherHijack)
Please send any issues here (https://github.com/BaronKiko/LauncherHijack/issues)
Feeling kind and want to donate? Find instructions here (https://github.com/BaronKiko/LauncherHijack/blob/master/README.md#donations)
Special thanks to ParrotGeek1 and Speeddymon. ParrotGeek1 made V1 and without him I would have never started this project. Speeddymon donated a 2018 Fire TV allowing me to implement Fire TV support. If you have a Fire TV you should thank him
If somebody with some artistic talent wants to make a logo that would be much appreciated as the little android guy looks out of place in my app drawer.
Finally I don't really check these forums often anymore so please head over to the github page and post there if you are having any issues. Usually I am pretty quick to respond there.
Click to expand...
Click to collapse
Awesome.. Thanks for the update. It seems to be a lot more robust then v3. I just got done doing some quick testing. Will detail what worked in my case on a separate post below.
I do have a request. Is there any chance you can take a look at keeping Launcher Hijack as it's own app. But also can you please take a look to see if you can create a fork of a merger of your Launcher Hijack latest version & the last GitHub release of AppStarter v4.0 (Found @ : https://github.com/sphinx02/AppStarter ). AppStarter is the best launcher for FireTV devices. But it is due for an update/upgrade. Adding your Launcher Hijack code would be great. Also updating the SPMC & Kodi link changes would be great. Also merging other opensource projects like On Boot AppStarter (Found @: https://bitbucket.org/Mirakel/onbootappstarter/src would be another). Another of the major things that will need change/updating is what the Settings button (The 3 lines button to the right of the Home button) does in AppStarter vs Launher Hijack. Since right now trying to open the FireTV long press Settings also opens the AppStarter App FireTV Settings popup. Giving you an extra thing to close after coming back from the long press Settings menu.
I can test & help in anyway you want. Let me know if something you are willing to take on. All the pieces are there. They just need to be merged & upgraded.
krsmit0 said:
im not having any luck getting the accessibility function to work. i am on fireos 5.2.4.2
EDIT: I also have a fully updated firestick with the same issue. 5.2.6.7. hijack says accessibility needs to be enabled.
I believe I have a solution. I had to enable and disable some system accessibility settings to get the setting to take effect.
Click to expand...
Click to collapse
You where right. Will get more specific in a separate post below.
BaronKiko said:
You have to run an adb command to get it going on the fire tv's. Instructions explain it all.
Click to expand...
Click to collapse
On FireTV devices below FireOS v6. It seems we need two steps to enable everything needed. Will give more detail of some testing below.
krsmit0 said:
The adb command alone wasn't enough. I use settings get... To verify it was there. But through several reboots it wouldnt work until I toggled other accessibility settings. This was the case for 2 different sticks.
Click to expand...
Click to collapse
I bet both FireTV Sticks are on FireOS v5 FW ?
TimmyP said:
Can you post what you did?
Click to expand...
Click to collapse
Will get specific below.
huffmybrd said:
even with the adb command it still says accessibility needs to be enabled
Click to expand...
Click to collapse
Info on how to successfully enable everything posted below.
krsmit0 said:
Go into the standard fire TV settings and toggle.on some accessibility options. Then press home and see which launcher pops up.
Click to expand...
Click to collapse
The ADB command is still needed first. Then the only accessibility option that needs toggling is "Screen Magnifier". Just toggle the setting like you are going to turn it on. The instructions screen should popup. Then just choose "TURN OFF MAGNIFIER" at the instructions screen. Hitting "TURN OFF MAGNIFIER" will opens up Launcher Hijack v4. There you can choose AppStarter or your chosen launcher. Then you are all set.
BaronKiko said:
Do you have the option in the settings? On the firestick 4k, fire tv (3rd gen?) and the cube (all running fire os 6.x) there are no options so you have to set it via adb. If you can do it through the system ui do it there I just thought all fire tv's didn't have the option.
Honestly I only own my fire tv because speeddymon donated it so that I could implement support for it, and I rarely use it as I have a computer hooked up to my tv making it entirely useless. In short I don't really know the in's and out's of the device.
Please do let me know what devices and fireos versions you are all running so I can update the instructions. Also what exact menu's you have to go through to get to the option.
As an aside you probably need to drop "secure" from the adb command to get it working on devices with the menu option but the system UI option is just better. Google changed it's category to stop you setting it without adb when they removed the menu option.
Click to expand...
Click to collapse
Right. It seems FireOS v5 devices need a two-step setup. In correct order both the ADB command & a ACCESSIBILITY Menu Toggle (Screen Magnifier ONLY) are needed for it to proper register everything. The good news is that it only needs to be done once. And it survives a FireTV reboot. Bad news is that if you deliberately stop the Launcher Hijack App. Then you have to do do the two step setup again.
I also tried dropping the "secure" from the adb command but got he following results:
Run Code:
Code:
settings put enabled_accessibility_services com.baronkiko.launcherhijack/com.baronkiko.launcherhijack.AccServ
And
settings enabled_accessibility_services com.baronkiko.launcherhijack/com.baronkiko.launcherhijack.AccServ
Both gave the following return:
Code:
ty_services com.baronkiko.launcherhijack/com.baronkiko.launcherhijack.AccServ <
Invalid namespace 'enabled_accessibility_services'
usage: settings [--user NUM] get namespace key
settings [--user NUM] put namespace key value
settings [--user NUM] delete namespace key
'namespace' is one of {system, secure, global}, case-insensitive
If '--user NUM' is not given, the operations are performed on the owner user.
[email protected]:/ $
Let me know if I should test anything else regarding this.
Will post specifics of what worked for me on a separate post below.
---------- Post added at 06:49 AM ---------- Previous post was at 06:44 AM ----------
krsmit0 said:
its not the home button option that needs to be toggled. like you say, its not there. but toggling some of the other options seems to get this to work after you have done the adb command. but doing the adb command alone and rebooting doesnt make this work. the system doesn't think it is enabled. toggling other accessibility options on and off finally made it work for me.
Click to expand...
Click to collapse
Right, thanks to your post I was able to narrow it down to a single Accessibility Toggle. Working on a post that explains everything now.
Y314K said:
Right, thanks to your post I was able to narrow it down to a single Accessibility Toggle. Working on a post that explains everything now.
Click to expand...
Click to collapse
Great, thanks. I wasn't sure what exactly was working, but i spent sometime on both sticks until it worked. I am on fireos 5 on both sticks. I think the issue i have now is i keep ending up back on the fire tv launcher. i think hijack or my launcher choice (TVLauncher) are getting kicked out of memory. Other then that this feels extremely stable and very consistent.
Guide for FireTV's on FireOS 5 FirmWare v0.5...
Guide for FireTV's on FireOS 5 FirmWare v.05
This guide should work on all FireTV devices on any FireOS 5. Rooted & Non-Rooted
**Will update guide with method to install Launcher Hijack from the FireTV itself.**
Tested on:
- FireTV 1 Box - Rooted with Bootloader fully unlocked.
- On PreRooted Fire OS 5.2.6.6 (617513220)
- Running without SuperSU which means NO Root access except in TWRP.
- Basically it runs like on stock FW with the option to enable root.
- Should be the same for all other FireTV's on FireOS 5 that have the Accessibility option in Settings.
Installation (Based on the Launcher Hijack GitHub Guide):
ADB Code Method
Navigate to this GitHub's downloads page (https://github.com/BaronKiko/LauncherHijack/releases) on your desktop/laptop and download the latest APK.
Install ADB on your desktop/laptop (Google will help you) and ensure a connection to your Fire TV.
Install Launcher Hijack with this command:
adb install <path to downloaded APK>
Click to expand...
Click to collapse
Ensure you have some Launchers installed.
Enable the Accessibility Service using these two commands (exactly in this order):
adb shell
Code:
settings put secure enabled_accessibility_services com.baronkiko.launcherhijack/com.baronkiko.launcherhijack.AccServ
Then...
Code:
settings put secure accessibility_enabled 1
Click to expand...
Click to collapse
If this is a first/fresh install of LH (Launcher Hijack). LH will open.
Select your desired Launcher from the list provided
If you had previously opened LH & selected a desired Launcher.
Your previously chosen Launcher will open.
Reboot your device (Recommended but not required).
Congratulation, if all is working correctly your home button should now open your chosen launcher
Accessibility Toggle Method
Navigate to this GitHub's downloads page (https://github.com/BaronKiko/LauncherHijack/releases) on your desktop/laptop and download the latest APK.
Install ADB on your desktop/laptop (Google will help you) and ensure a connection to your Fire TV.
Install Launcher Hijack with this command:
adb install <path to downloaded APK>
Click to expand...
Click to collapse
Ensure you have some Launchers installed.
Enable the Accessibility Service using this command:
adb shell
Code:
settings put secure enabled_accessibility_services com.baronkiko.launcherhijack/com.baronkiko.launcherhijack.AccServ
Click to expand...
Click to collapse
On your FireTV go to & click on [ Settings / Accessibility / Screen Magnifier ]
The Screen Magnifier instructions menu will popup.
Click on [ TURN OFF MAGNIFIER ].
If this is a first/fresh install of LH (Launcher Hijack). LH will open.
Select your desired Launcher from the list provided
If you had previously opened LH & selected your desired Launcher.
Your previously chosen Launcher should open.
Reboot your device
Congratulation, if all is working correctly your home button should now open your chosen launcher
Important, Accessing Settings and the Long Press Menu
Unfortunately for FireTV devices a compromise had to be made. To access the long press menu and with it settings you have to hold menu and home together. You can also get to the default launcher by simply pressing them together.
Troubleshooting
If you are having issues then there are some common issues you can check here:
Ensure you are using an Amazon TV device running Fire OS 5, compatible with all versions as of release (FW 5.2.6.7 = latest).
Ensure you have enabled the accessibility service with the command: adb shell settings put secure enabled_accessibility_services com.baronkiko.launcherhijack/com.baronkiko.launcherhijack.AccServ
Ensure you can open your launcher directly i.e. Using any launcher, other than your chosen launcher, open you chosen launcher like any other app, this should open your chosen launcher.
Ensure you have selected your chosen launcher in Launcher Hijack.
Reboot your device after following all previous steps.
After clicking home initially wait 10 seconds and press home again. This happens when your chosen launchers process gets killed in the background and may happen from time to time, especially after a reboot. There are plenty of existing apps that already keep a chosen application in memory so try one of those if this is a reoccurring issue for you.
If all else fails try using one of the following launchers with known compatibility: AppStarter or HALauncher.
now, any working solution to keep the launcher in memory?
Y314K said:
Guide for FireTV's on FireOS 5 FirmWare v.05
This guide should work on all FireTV devices on any FireOS 5. Rooted & Non-Rooted
**Will update guide with method to install Launcher Hijack from the FireTV itself.**
Tested on:
- FireTV 1 Box - Rooted with Bootloader fully unlocked.
- On PreRooted Fire OS 5.2.6.6 (617513220)
- Running without SuperSU which means NO Root access except in TWRP.
- Basically it runs like on stock FW with the option to enable root.
- Should be the same for all other FireTV's on FireOS 5 that have the Accessibility option in Settings.
Installation (Based on the Launcher Hijack GitHub Guide):
Navigate to this GitHub's downloads page (https://github.com/BaronKiko/LauncherHijack/releases) on your desktop/laptop and download the latest APK.
Install ADB on your desktop/laptop (Google will help you) and ensure a connection to your Fire TV.
Install Launcher Hijack with this command:
Ensure you have some Launchers installed.
Enable the Accessibility Service using this command:
On your FireTV go to & click on [ Settings / Accessibility / Screen Magnifier ]
The Screen Magnifier instructions menu will popup.
Click on [ TURN OFF MAGNIFIER ].
If this is a first/fresh install of LH (Launcher Hijack). LH will open.
Select your desired Launcher from the list provided
If you had previously opened LH & selected your desired Launcher.
Your previously chosen Launcher should open.
Reboot your device
Congratulation, if all is working correctly your home button should now open your chosen launcher
Important, Accessing Settings and the Long Press Menu
Unfortunately for FireTV devices a compromise had to be made. To access the long press menu and with it settings you have to hold menu and home together. You can also get to the default launcher by simply pressing them together.
Troubleshooting
If you are having issues then there are some common issues you can check here:
Ensure you are using an Amazon TV device running Fire OS 5, compatible with all versions as of release (FW 5.2.6.7 = latest).
Ensure you have enabled the accessibility service with the command: adb shell settings put secure enabled_accessibility_services com.baronkiko.launcherhijack/com.baronkiko.launcherhijack.AccServ
Ensure you can open your launcher directly i.e. Using any launcher, other than your chosen launcher, open you chosen launcher like any other app, this should open your chosen launcher.
Ensure you have selected your chosen launcher in Launcher Hijack.
Reboot your device after following all previous steps.
After clicking home initially wait 10 seconds and press home again. This happens when your chosen launchers process gets killed in the background and may happen from time to time, especially after a reboot. There are plenty of existing apps that already keep a chosen application in memory so try one of those if this is a reoccurring issue for you.
If all else fails try using one of the following launchers with known compatibility: AppStarter or HALauncher.
Click to expand...
Click to collapse
Many thanks for the detailed write up.
Can I just confirm that on the latest 4K firestick, there is no way to do the above without running the ADB commands? I recall using the launcher highjack on the 2nd Gen firestick WITHOUT running any ADB commands.
thanks again
Gosh that's a lot to break down.
Y314K said:
I do have a request. Is there any chance you can take a look at keeping Launcher Hijack as it's own app. But also can you please take a look to see if you can create a fork of a merger of your Launcher Hijack latest version & the last GitHub release of AppStarter v4.0 (Found @ : https://github.com/sphinx02/AppStarter ). AppStarter is the best launcher for FireTV devices. But it is due for an update/upgrade. Adding your Launcher Hijack code would be great. Also updating the SPMC & Kodi link changes would be great.
Click to expand...
Click to collapse
Merging the code into AppStarter would be a lot of work with no real benefit. Simply install them both separately and select AppStarter in Launcher Hijack. Also as I said in a previous post I honestly don't use my Fire TV so I don't really want to maintain AppStarter. I see more use in making the Fire TV a dedicated kodi/plex box with Launcher Hijack anyhow.
Y314K said:
Also merging other opensource projects like On Boot AppStarter (Found @: https://bitbucket.org/Mirakel/onbootappstarter/src would be another).
Click to expand...
Click to collapse
On Boot AppStarter is just a broadcast receiver which this app already uses to start on boot. Again there would be no benefit to a merge as it's not related to Launcher Hijack.
Y314K said:
Another of the major things that will need change/updating is what the Settings button (The 3 lines button to the right of the Home button) does in AppStarter vs Launher Hijack. Since right now trying to open the FireTV long press Settings also opens the AppStarter App FireTV Settings popup. Giving you an extra thing to close after coming back from the long press Settings menu.
Click to expand...
Click to collapse
Unfortunately this is the best compromise I could make and it effects whatever app you happen to have open. I chose this because generally the menu press is something easy to cancel (as you said you just press back or menu again). I could cache the menu press and activate it with a delay but that could break applications that depend on long press of the menu button (don't know any apps that do that but it's possible) so it's just not worth it. It would also be a whole lot of work when I'm busy trying to get another job as I tend to like eating.
Y314K said:
The ADB command is still needed first. Then the only accessibility option that needs toggling is "Screen Magnifier". Just toggle the setting like you are going to turn it on. The instructions screen should popup. Then just choose "TURN OFF MAGNIFIER" at the instructions screen. Hitting "TURN OFF MAGNIFIER" will opens up Launcher Hijack v4. There you can choose AppStarter or your chosen launcher. Then you are all set.
Right. It seems FireOS v5 devices need a two-step setup. In correct order both the ADB command & a ACCESSIBILITY Menu Toggle (Screen Magnifier ONLY) are needed for it to proper register everything. The good news is that it only needs to be done once. And it survives a FireTV reboot. Bad news is that if you deliberately stop the Launcher Hijack App. Then you have to do do the two step setup again.
Click to expand...
Click to collapse
That's totally bizarre, no idea why that would be the case. My assumption is the settings aren't being applied for whatever reason after the command. Would really like a purely adb solution.
Y314K said:
I also tried dropping the "secure" from the adb command but got he following results:
Run Code:
Code:
settings put enabled_accessibility_services com.baronkiko.launcherhijack/com.baronkiko.launcherhijack.AccServ
And
settings enabled_accessibility_services com.baronkiko.launcherhijack/com.baronkiko.launcherhijack.AccServ
Both gave the following return:
Code:
ty_services com.baronkiko.launcherhijack/com.baronkiko.launcherhijack.AccServ <
Invalid namespace 'enabled_accessibility_services'
usage: settings [--user NUM] get namespace key
settings [--user NUM] put namespace key value
settings [--user NUM] delete namespace key
'namespace' is one of {system, secure, global}, case-insensitive
If '--user NUM' is not given, the operations are performed on the owner user.
[email protected]:/ $
Let me know if I should test anything else regarding this.
Click to expand...
Click to collapse
Ok it's under secure then, I assume you don't get an invalid namespace error for the original command?
Oh boy there's a whole other post I didn't see before getting this far. Wont quote it as it's really long but I'm glad to see you have a reliable way to set it up. I found this command that may help if run first:
Code:
settings put secure accessibility_enabled 1
No idea if it will fix the issue I just saw it mentioned in a post over here: https://autotools.helprace.com/i98-control-accessibility-via-secure-settings It does seem like your trick could set this variable allowing it to work, I just don't know. Regardless I will update the instructions with your findings so others don't have such issues.
krsmit0 said:
Great, thanks. I wasn't sure what exactly was working, but i spent sometime on both sticks until it worked. I am on fireos 5 on both sticks. I think the issue i have now is i keep ending up back on the fire tv launcher. i think hijack or my launcher choice (TVLauncher) are getting kicked out of memory. Other then that this feels extremely stable and very consistent.
Click to expand...
Click to collapse
Launcher Hijack is a service so it shouldn't ever be ousted from system memory. It is possible but if it ever does happen then it calls my close function (there so code can wrap up) and the code simply starts a new instance. If it went down you would have to disable then enable the service via adb or reboot. If you just have to press home again it's the launcher. After some Googling there are "sticky intents" that may help but apparently they are not great to use as they can cause memory issues. It leads to the fundamental issue, is it a smart thing to fix? These devices don't have a lot of memory to begin with and the fact that your launcher is getting killed means the device has run out. In that case I would say the right thing to do is to kill the launcher an it can be started again later and it's better that what you are doing lagging badly.
If I find some time, big if there, I can see if sticky intents are the magic they seem to be, honestly I'm doubtful but, if so I can put it as an option via settings. Right now your best bet is to use a light weight launcher or simply press home again.
Been writing this for an hour now -_-
But finally can one of you with a Fire TV (or stick) running Fire OS 5 check that the settings menu in Launcher Hijack has "Hardware Button Detection", "Broadcast Receiver Detection" and "Disable while menu held" checked by default and the others off. You can load the defaults with the menu if you changed any of the options. Just want to make sure that the defaults are correct for your device.
Yet another post:
Intenti0n said:
Many thanks for the detailed write up.
Can I just confirm that on the latest 4K firestick, there is no way to do the above without running the ADB commands? I recall using the launcher highjack on the 2nd Gen firestick WITHOUT running any ADB commands.
thanks again
Click to expand...
Click to collapse
You can enable "Overlay Detection" in the Launcher Hijack settings to get it working like the old Launcher Hijack but it's just not as good and you can't use the long press menu so I don't suggest it.
krsmit0 said:
now, any working solution to keep the launcher in memory?
Click to expand...
Click to collapse
Have not had experience on this. I still use AppStarter v4.0. Which seem to be pretty good at staying in memory. Specially since I also use [NOROOT] On Boot AppStarter v1.0. For it to load on Boot. I don't remember it ever being closed. Unless I choose to close it.
Intenti0n said:
Many thanks for the detailed write up.
Can I just confirm that on the latest 4K firestick, there is no way to do the above without running the ADB commands? I recall using the launcher highjack on the 2nd Gen firestick WITHOUT running any ADB commands.
thanks again
Click to expand...
Click to collapse
Seems to be a new method found by the developer to work with the changes that Google/Amazon have made between FireOS 5 & FireOS 6 (Google's base Android code usually has the biggest changes). Harder to do when your dealing with two different versions of Android.
Y314K said:
Have not had experience on this. I still use AppStarter v4.0. Which seem to be pretty good at staying in memory. Specially since I also use [NOROOT] On Boot AppStarter v1.0. For it to load on Boot. I don't remember it ever being closed. Unless I choose to close it.
Seems to be a new method found by the developer to work with the changes that Google/Amazon have made between FireOS 5 & FireOS 6 (Google's base Android code usually has the biggest changes). Harder to do when your dealing with two different versions of Android.
Click to expand...
Click to collapse
To be clear you don't need AppStarter, this app does that on it's own for the selected launcher. Appstarter simply uses very little memory so it rarely gets kicked. It's also super quick to boot so if it does get kicked it can usually start in time.
Also you should have enabled the accessibility service on the old version too, I just use it more now and disabled the old method be default as it causes issues when both methods are running in parallel.
You can enable "Overlay Detection" in the Launcher Hijack settings to get it working like the old Launcher Hijack but it's just not as good and you can't use the long press menu so I don't suggest it.
Click to expand...
Click to collapse
I have enabled the "Overlay detection" and rebooted. After rebooted, the HAL launcher starts up automatically.
However, when I press the home key on the remote, it goes back to the default launcher.
is that expected?
Intenti0n said:
I have enabled the "Overlay detection" and rebooted. After rebooted, the HAL launcher starts up automatically.
However, when I press the home key on the remote, it goes back to the default launcher.
is that expected?
Click to expand...
Click to collapse
It probably shouldn't do that but I'm gonna say that feature just isn't supported on fire TV's. It's for 2017 and earlier fire tablets and you just don't need it on the TV's.
BaronKiko said:
It probably shouldn't do that but I'm gonna say that feature just isn't supported on fire TV's. It's for 2017 and earlier fire tablets and you just don't need it on the TV's.
Click to expand...
Click to collapse
OK thanks, I will try the ADB method then
I love chrome browser on my shield but I don't want the standard/mobile tab switcher.
I want to have a bar with all tabs, just like the desktop version of chrome has.
I know there is also a tablet version for chrome which has sich "tab bar".
Can I force the tablet mode/view somehow?
I tried using yalp store, setting a tablet as device and installing chrome app, but that doesn't help.
I also searched an apk. without the standard tab switcher that has the tab bar but couldn't find anything.
Here's a pic of what I mean:
https://i.gadgets360cdn.com/large/c...2430.jpg?output-quality=70&output-format=webp
Did anyone manage to run chrome browser with this tab view on their Shield?
You could try an app like https://play.google.com/store/apps/details?id=ahapps.controlthescreenorientation and set it to landscape, to force landscape mode in apps.
mLgz0rn said:
You could try an app like https://play.google.com/store/apps/details?id=ahapps.controlthescreenorientation and set it to landscape, to force landscape mode in apps.
Click to expand...
Click to collapse
I already use such app. But chrome is in landscape mode, that's not the issue here.
Ok, with the help of dev @defkev I was able to get tablet view in Chrome
Chrome is considering everything up from 600dp screen density a tablet.
On android phones you can set this under developer options > drawing > smallest width.
Unfortunately on android tv this option doesn't exist.
But the command "wm density 280" can do the same! However it changes the actual density, so you have to pick a value between 250 and 300dp, e.g. 280.
If your Shield Tv is rooted, you can simply execute the command in a terminal app like termux (make sure you type "su" first to get root shell).
Without root you should be able to issue that command via adb connection typing "adb shell wm density 280".
Here's the big BUT!
Notice that this changes your screen density/resolution systemwide a bit. (don't worry you can always go back to normal with "wm density reset")
If you don't mind that little change you're done here. (I think upon restarting the Shield you would have to issue the command again via adb).
However there's a way to have the density change active only in certain apps, like Chrome. The following requires root access:
The magical word here is Tasker! Use the Tasker app to create 2 new tasks:
In "Tablet mode on" task choose "execute shell command" from list of avaiable options, in there under "command" type in "wm density 280" and make sure you tick the field "use root".
Second task "Tablet mode off" same thing but under "command" you type in "wm density reset".
Now as event we choose App and choose the Chrome app.
As entry task we choose "Tablet mode on" and as exit task we choose "Tablet mode off" task.
Voila! you have Chrome in tablet UI
For comparison I attached 2 pictures, on with tablet ui and one with phone ui:
Note that this post is being updated with new information as we figure things out.
This jailbreak should allow you to use the console like a normal Android tablet, install and run any software on it from the Play Store and sideload software as well as run the JRNY app. It does not root the device. We have tested it on Bowflex Velocore, but assume that it will most likely work on other new Bowflex products with an Android tablet that are locked into JRNY. While we believe things are working in general, it has not been extensively tested. We are releasing it early in hopes to get more people interested in improving it.
Follow these instructions at your own risk. Read through all of the instructions before deciding to follow through. Making modification to your device may cause it to stop working. It may also void your warranty.
The instructions were written after we had already jailbroken our bikes, so we didn't really have a way to test that they work exactly as documented on a locked bike. Some experimentation may be needed. Good luck!
Step 1: Reboot.
Step 2: On the Bowflex screen showing the serial number, rapidly tap on upper right corner until a menu appears.
Step 3: Select 'Manufacturing App'.
Step 4: Long press the home button at the back of the screen and wait for Google Assistant to pop up.
Step 5: Type 'settings' to Google assistant and hit enter.
Step 6: In settings, enable ADB debugging from: System - Developer Settings - USB debugging.
Step 7: Look up your ip address from Network settings.
Step 8: Using adb (from Android platform tools) on your Desktop (which needs to be connected to the same network as your Velocore):
adb connect <replace-with-velocore-ip-address-from-step-7>adb shelltouch /sdcard/Pictures/nautilusam stopservice com.nautilus.nautiluslauncher/com.nautilus.nautiluslauncher.thirdparty.appmonitor.AppMonitorServicesettings put secure ntls_launcher_preference 0settings put secure navigationbar_switch 1settings put secure notification_switch 1settings put secure statusbar_switch 1settings put global ota_disable_automatic_update 1Step 9: In settings - apps, force-stop NautilusLauncher.
Step 10: In settings - apps, set Quickstep as the default home app. Otherwise NautilusLauncher will take over when you press the home button and undo the jailbreak.
At this point, a reboot should take you to the Android home screen instead of JRNY. For JRNY to be able to connect to the bike, some of the services in NautilusLauncher need to be running. Unfortunately, starting NautilusLauncher will undo the jailbreak. To get around that, use the following to automatically start NautilusLauncher at startup and perform a jailbreak:
Step 11: Install Tasker (costs $3.50)
Step 12: In Tasker, create a new Profile 'Event - System - Device Boot'. Add the following tasks to the profile:
Task 1: App - Launch App - NautilusLauncher
Task 2: Task - Wait, configuration: 30 seconds
Task 3: Code - ADB Wifi, configuration:
Command:
until appMonitor=$(dumpsys activity services AppMonitorService | grep "(nothing)"); do am stopservice com.nautilus.nautiluslauncher/com.nautilus.nautiluslauncher.thirdparty.appmonitor.AppMonitorService; sleep 1; done;settings put secure ntls_launcher_preference 0;settings put secure navigationbar_switch 1;settings put secure notification_switch 1;settings put secure statusbar_switch 1;settings put global ota_disable_automatic_update 1;settings put system screen_brightness 255;
At this point one more problem remains. JRNY app has its own screen saver which turns the screen off after five minutes of inactivity. If you have some other app at the foreground, you'll soon notice that your screen turns black and you seemingly can only get forwards by rebooting. To solve this:
Step 13: In Tasker, create a new Profile 'Event - System - Device Boot'. Add the following tasks to the profile:
Task 1: Task - Wait, configuration: 50 ms
Task 2: Display - Display Brightness: 255
Task 3: Task - Goto, configuration: 1
At this point, a reboot takes you to the Android home screen. After a few seconds, Tasker will launch NautilusLauncher and you will be taken to JRNY. Once the tasker wait has finished, a jailbreak is done. Then, you can swipe off JRNY and NautilusLauncher and should be fully jailbroken.
Note that Bowflex pushes software updates to the bike automatically. It's possible that future updates will stop this jailbreak from working. To try to prevent this, we have uninstalled the nautilus_ota_client app as well as set the 'ota_disable_automatic_update' setting above. We haven't confirmed that these are effective to preventing updates. If you decide to uninstall the app and use the setting, consider the following:
You may not receive new updates to the software of the bike anymore.
In case you later decide that you want to get updates again, make sure to backup the apk before uninstalling!.
----------
Troubleshooting:
If your console takes a long time to boot, the jailbreak may try to execute too early. Try to increase the wait time.
Sometimes the launcher seems to restart itself before the jailbreak is completed. You might still get jailbroken on the second start, but if not, just reboot and try again.
Sometimes when escaping JRNY after the jailbreak, the background might show the Bowflex image. Not sure if it actually effects anything, but just in case, you can just reboot and try again.
Some people seem to have trouble with an automated jailbreak using the device boot Tasker profile (step 12). If you are experiencing this, a more manual approach might work better for you:
Remove the profile from step 12.
Instead, create a profile 'Event - Hardware - Volume Long Press'.
Add task 'Code - ADB Wifi' with the commands from the initial instructions.
Save.
Now, when you reboot, it'll take you to the Android home screen. Then, start the 'NautilusLauncher' app, which will take you to JRNY. Once in JRNY, long press the 'volume up' button behind the screen to manually perform the unlock.
Some people have had problem with step 10 (set Quickstep as default home app). You can try rebooting all the way to JRNY, then doing 'adb shell am stopservice com.nautilus.nautiluslauncher/com.nautilus.nautiluslauncher.thirdparty.appmonitor.AppMonitorService'. Then swiping up and going to settings, force-stopping NautilusLauncher and then setting Quickstep as the default home launcher app.
If the unlock doesn't work after the Tasker automation, you should still be able to connect using adb and execute the commands on adb shell to perform the unlock manually after which you can then edit your Tasker profile.
To view the bike data (burn rate, resistance) with 3rd party applications (full screen):
Start a JRNY workout with entertainment feature available. Manual workout under programs works well.
Choose any of the entertainment app options (ie Netflix) and start workout.
Swipe entertainment app to the side and open the 3rd party application you'd like to use
Use Peloton app (or other apps (with Zwift, use the workout with Zwift program instead)) while showing cadence, resistance and heart rate (split-screen):
Start JRNY app
Go back to the home screen.
Start Peloton app
Swipe up to the side-by-side app selector.
Long press the Peloton icon and select split-screen. This splits the screen to left and right, with left part running Peloton.
Click JRNY app on the right part of screen.
Adjust the screen divider so that Peloton app takes 2/3rds of the screen.
Select programs - work out with Peloton on JRNY and click start workout.
Select your program in the peloton app.
You can have your heart rate monitor synced either to the Peloton app or the JRNY app via the normal heart rate monitor options of the apps.
To get Zwift working on the bike:
Install xapk manager from https://apkfab.com/xapk-manager/com.apkfab.installer/download
Download zwift from https://m.apkpure.com/zwift/com.zwift.zwiftgame
Install
To run, start JRNY and have the workout with Zwift program running. After that switch to Zwift and it'll see the data from the bike.
It looks like getting the bike to send data to Zwift is a bit trickier than I originally thought. Sometimes it's easy to get the link to work. Other times, not so much. Figuring out how you can use Zwift consistently still needs some more work.
The bike console is a bit underpowered for Zwift graphics, so also experimenting with remote desktop type apps to have Zwift running on a laptop while the screen is shown on the bike console with smoother graphics. So far have had some good results with cast receiver / chrome cast. But it is only one way, so while you can see the screen, you can't control it.
----------
Some random notes for anyone interested in helping and improving the jailbreak:
Before starting to hack around, I strongly recommend that you back up all of the custom nautilus software apks so that you have some way of reinstalling them later if required.
adb via usb
If you open the back of the screen, there is a micro usb slot on the motherboard that can used to connect adb.
As you can connect adb via wifi, not sure if this is really needed for anything.
adb reboot recovery
Reboots, takes you to a screen saying 'erasing' and in the end you end up on a standard android tablet setup screen with all custom software (including the bowflex software) erased.
adb reboot bootloader (my personal experience with this):
Rebooted, got to the 'powered by android' screen, but seemed to be stuck there.
Tried a bunch of key presses at the back of the screen. With some of them pressed, the console playd a sound effect, but wasn't able to get forwards from the screen.
For a while thought that i had bricked the console. Unplugged it for half an hour and when i came back and plugged it back it, it booted again.
factory reset
Unplug the bike.
Hold the top button (which looks like a disk/arrow).
Plug back in.
Release the button once you see a while box blip that says applying golden image.
NOTE: I wasn't able to get this to work after erasing the device with 'adb reboot recovery', which probably means that it only works as long as NautilusLauncher is installed.
serial port
The bike connects to the console via a serial port. The device entry for it is /dev/ttyS4.
Only system/root has access to the device, which is why we need NautilusLauncher running to get JRNY to connect to the bike.
NautilusLauncher has a service called SerialPortService, which basically forwards input and output from and to the serial port to tcp:9999.
JRNY app connects to the serial port via the tcp port.
It might be interesting to make an app that connects to tcp:9999 to listen to the bike, e.g. for a custom HUD.
JRNY
Doesn't require system privileges unlike the other bowflex apps.
You can unpack the apk, make changes to it (such as disabling the screen saver and connecting to a different tcp port to connect to the bike), repack and sign it with our own key and have it successfully installed and ran. While the bike connectivity works after doing this, the app seems to have problems, e.g. if trying to bring up the overlay or start with workout with zwift program. Hoping that these can be fixed over time.
"/sdcard/Pictures/nautilus"
The existance of this file controls if NautilusLauncher disables adb debugging upon startup.
modifying JRNY
unpack: apktool d Bowflex_base.apk
...make changes...
repack: apktool b Bowflex_base -o Bowflex_edited.apk
create your own signing key: keytool -genkey -v -keystore my-apk-hack-key.keystore -keyalg RSA -keysize 2048 -validity 10000
sign the modified apk: jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my-apk-hack-key.keystore Bowflex_edited.apk mykey
disable JRNY screen saver by modifying JRNY apk:
edit smali/com/nautilus/bowflex/managers/ScreenDimmingManager.smali
change 'getDimmingEnabled' method to:
.method public static final synthetic access$getDimmingEnabled$p(Lcom/nautilus/bowflex/managers/ScreenDimmingManagerZ
.locals 0
const/4 p0, 0x0
return p0
.end method
over-the-air updates
Bowflex pushes new updates to the console. It's possible that one of these future updates will cause this jailbreak to stop working.
To prevent that, we have uninstalled the nautilus_ota_client app, as well use the setting 'settings put global ota_disable_automatic_update 1'.
We haven't really looked into the updating process, so not completely sure that the above will actually prevent them.
In future, we are hoping to be able to pull the updated apks from somewhere and perform the updates manually. Meanwhile, you can just keep using the current versions of the software.
There is a file that (we assume) contains the credentials for the ota updates. This may be helpful in pulling the updated apks / firmware manually in future: /sdcard/Nautilus/redbend/Credentials.txt
secret menus
In the Bowflex screen showing the serial number
Rapidly click on top right corner to bring up their super secret menu.
Rapidly click on top left corner to bring up the current firmware version number.
Rapidly click on bottom left corner to bring up their secret menu.
In the jrny app login screen:
Rapidly click on top right corner to bring up their advanced features menu.
Updated the instructions with a simple solution to the screen saver / black screen problem.
Updated with instructions on how to use the Peloton app (or other apps) while being able to see cadence, resistance and heart rate on the screen.
Hey, Thanks for the post, I'm very excited to not be locked into JRNY.
I'm not the most familiar with the tools in this process but I got to step 10. When i change to Quickstep the machine restarts, seems to hang a bit at the boot up screen (with the serial number) and just boots back into JRNY. I've tried a few times now with the same result.
in the troubleshooting section it states
If your console takes a long time to boot, the jailbreak may try to execute too early. Try to increase the wait time.
I'm wondering if that's my issue here and was curious how one might "increase the wait time?
Thanks for any clarification you can offer.
magufalo said:
Hey, Thanks for the post, I'm very excited to not be locked into JRNY.
I'm not the most familiar with the tools in this process but I got to step 10. When i change to Quickstep the machine restarts, seems to hang a bit at the boot up screen (with the serial number) and just boots back into JRNY. I've tried a few times now with the same result.
in the troubleshooting section it states
If your console takes a long time to boot, the jailbreak may try to execute too early. Try to increase the wait time.
I'm wondering if that's my issue here and was curious how one might "increase the wait time?
Thanks for any clarification you can offer.
Click to expand...
Click to collapse
I think the most likely cause for that to happen would be if NautilusLauncher was still running.
When you do step 9 (In settings - apps, force-stop NautilusLauncher), does the 'force-stop' button turn gray? If not, see if you have 'Bowflex' application running and force-stop it first and then force-stop NautilusLauncher.
Is there any way to get the Bowflex_base.apk file? Right now I have a $3k android tablet with no NautilusLauncher/Utility/JRNY app. Thank you!
scafs said:
Is there any way to get the Bowflex_base.apk file? Right now I have a $3k android tablet with no NautilusLauncher/Utility/JRNY app. Thank you!
Click to expand...
Click to collapse
There are links to the ota client and nautiluslauncher in the comments section of the reddit unlocking thread
https://www.reddit.com/r/Bowflex/comments/mi8wdo
I think they should be enough to get the bike to do a self update and restore all the original software.
xasmx said:
Note that this post is being updated with new information as we figure things out.
This jailbreak should allow you to use the console like a normal Android tablet, install and run any software on it from the Play Store and sideload software as well as run the JRNY app. It does not root the device. We have tested it on Bowflex Velocore, but assume that it will most likely work on other new Bowflex products with an Android tablet that are locked into JRNY. While we believe things are working in general, it has not been extensively tested. We are releasing it early in hopes to get more people interested in improving it.
Follow these instructions at your own risk. Read through all of the instructions before deciding to follow through. Making modification to your device may cause it to stop working. It may also void your warranty.
The instructions were written after we had already jailbroken our bikes, so we didn't really have a way to test that they work exactly as documented on a locked bike. Some experimentation may be needed. Good luck!
Step 1: Reboot.
Step 2: On the Bowflex screen showing the serial number, rapidly tap on upper right corner until a menu appears.
Step 3: Select 'Manufacturing App'.
Step 4: Long press the home button at the back of the screen and wait for Google Assistant to pop up.
Step 5: Type 'settings' to Google assistant and hit enter.
Step 6: In settings, enable ADB debugging from: System - Developer Settings - USB debugging.
Step 7: Look up your ip address from Network settings.
Step 8: Using adb (from Android platform tools) on your Desktop (which needs to be connected to the same network as your Velocore):
adb connect <replace-with-velocore-ip-address-from-step-7>adb shelltouch /sdcard/Pictures/nautilusam stopservice com.nautilus.nautiluslauncher/com.nautilus.nautiluslauncher.thirdparty.appmonitor.AppMonitorServicesettings put secure ntls_launcher_preference 0settings put secure navigationbar_switch 1settings put secure notification_switch 1settings put secure statusbar_switch 1settings put global ota_disable_automatic_update 1Step 9: In settings - apps, force-stop NautilusLauncher.
Step 10: In settings - apps, set Quickstep as the default home app. Otherwise NautilusLauncher will take over when you press the home button and undo the jailbreak.
At this point, a reboot should take you to the Android home screen instead of JRNY. For JRNY to be able to connect to the bike, some of the services in NautilusLauncher need to be running. Unfortunately, starting NautilusLauncher will undo the jailbreak. To get around that, use the following to automatically start NautilusLauncher at startup and perform a jailbreak:
Step 11: Install Tasker (costs $3.50)
Step 12: In Tasker, create a new Profile 'Event - System - Device Boot'. Add the following tasks to the profile:
Task 1: App - Launch App - NautilusLauncher
Task 2: Task - Wait, configuration: 30 seconds
Task 3: Code - ADB Wifi, configuration:
Command:
until appMonitor=$(dumpsys activity services AppMonitorService | grep "(nothing)"); do am stopservice com.nautilus.nautiluslauncher/com.nautilus.nautiluslauncher.thirdparty.appmonitor.AppMonitorService; sleep 1; done;settings put secure ntls_launcher_preference 0;settings put secure navigationbar_switch 1;settings put secure notification_switch 1;settings put secure statusbar_switch 1;settings put global ota_disable_automatic_update 1;settings put system screen_brightness 255;
At this point one more problem remains. JRNY app has its own screen saver which turns the screen off after five minutes of inactivity. If you have some other app at the foreground, you'll soon notice that your screen turns black and you seemingly can only get forwards by rebooting. To solve this:
Step 13: In Tasker, create a new Profile 'Event - System - Device Boot'. Add the following tasks to the profile:
Task 1: Task - Wait, configuration: 50 ms
Task 2: Display - Display Brightness: 255
Task 3: Task - Goto, configuration: 1
At this point, a reboot takes you to the Android home screen. After a few seconds, Tasker will launch NautilusLauncher and you will be taken to JRNY. Once the tasker wait has finished, a jailbreak is done. Then, you can swipe off JRNY and NautilusLauncher and should be fully jailbroken.
Note that Bowflex pushes software updates to the bike automatically. It's possible that future updates will stop this jailbreak from working. To try to prevent this, we have uninstalled the nautilus_ota_client app as well as set the 'ota_disable_automatic_update' setting above. We haven't confirmed that these are effective to preventing updates. If you decide to uninstall the app and use the setting, consider the following:
You may not receive new updates to the software of the bike anymore.
In case you later decide that you want to get updates again, make sure to backup the apk before uninstalling!.
----------
Troubleshooting:
If your console takes a long time to boot, the jailbreak may try to execute too early. Try to increase the wait time.
Sometimes the launcher seems to restart itself before the jailbreak is completed. You might still get jailbroken on the second start, but if not, just reboot and try again.
Sometimes when escaping JRNY after the jailbreak, the background might show the Bowflex image. Not sure if it actually effects anything, but just in case, you can just reboot and try again.
Some people seem to have trouble with an automated jailbreak using the device boot Tasker profile (step 12). If you are experiencing this, a more manual approach might work better for you:
Remove the profile from step 12.
Instead, create a profile 'Event - Hardware - Volume Long Press'.
Add task 'Code - ADB Wifi' with the commands from the initial instructions.
Save.
Now, when you reboot, it'll take you to the Android home screen. Then, start the 'NautilusLauncher' app, which will take you to JRNY. Once in JRNY, long press the 'volume up' button behind the screen to manually perform the unlock.
Some people have had problem with step 10 (set Quickstep as default home app). You can try rebooting all the way to JRNY, then doing 'adb shell am stopservice com.nautilus.nautiluslauncher/com.nautilus.nautiluslauncher.thirdparty.appmonitor.AppMonitorService'. Then swiping up and going to settings, force-stopping NautilusLauncher and then setting Quickstep as the default home launcher app.
If the unlock doesn't work after the Tasker automation, you should still be able to connect using adb and execute the commands on adb shell to perform the unlock manually after which you can then edit your Tasker profile.
To view the bike data (burn rate, resistance) with 3rd party applications (full screen):
Start a JRNY workout with entertainment feature available. Manual workout under programs works well.
Choose any of the entertainment app options (ie Netflix) and start workout.
Swipe entertainment app to the side and open the 3rd party application you'd like to use
Use Peloton app (or other apps (with Zwift, use the workout with Zwift program instead)) while showing cadence, resistance and heart rate (split-screen):
Start JRNY app
Go back to the home screen.
Start Peloton app
Swipe up to the side-by-side app selector.
Long press the Peloton icon and select split-screen. This splits the screen to left and right, with left part running Peloton.
Click JRNY app on the right part of screen.
Adjust the screen divider so that Peloton app takes 2/3rds of the screen.
Select programs - work out with Peloton on JRNY and click start workout.
Select your program in the peloton app.
You can have your heart rate monitor synced either to the Peloton app or the JRNY app via the normal heart rate monitor options of the apps.
To get Zwift working on the bike:
Install xapk manager from https://apkfab.com/xapk-manager/com.apkfab.installer/download
Download zwift from https://m.apkpure.com/zwift/com.zwift.zwiftgame
Install
To run, start JRNY and have the workout with Zwift program running. After that switch to Zwift and it'll see the data from the bike.
It looks like getting the bike to send data to Zwift is a bit trickier than I originally thought. Sometimes it's easy to get the link to work. Other times, not so much. Figuring out how you can use Zwift consistently still needs some more work.
The bike console is a bit underpowered for Zwift graphics, so also experimenting with remote desktop type apps to have Zwift running on a laptop while the screen is shown on the bike console with smoother graphics. So far have had some good results with cast receiver / chrome cast. But it is only one way, so while you can see the screen, you can't control it.
----------
Some random notes for anyone interested in helping and improving the jailbreak:
Before starting to hack around, I strongly recommend that you back up all of the custom nautilus software apks so that you have some way of reinstalling them later if required.
adb via usb
If you open the back of the screen, there is a micro usb slot on the motherboard that can used to connect adb.
As you can connect adb via wifi, not sure if this is really needed for anything.
adb reboot recovery
Reboots, takes you to a screen saying 'erasing' and in the end you end up on a standard android tablet setup screen with all custom software (including the bowflex software) erased.
adb reboot bootloader (my personal experience with this):
Rebooted, got to the 'powered by android' screen, but seemed to be stuck there.
Tried a bunch of key presses at the back of the screen. With some of them pressed, the console playd a sound effect, but wasn't able to get forwards from the screen.
For a while thought that i had bricked the console. Unplugged it for half an hour and when i came back and plugged it back it, it booted again.
factory reset
Unplug the bike.
Hold the top button (which looks like a disk/arrow).
Plug back in.
Release the button once you see a while box blip that says applying golden image.
NOTE: I wasn't able to get this to work after erasing the device with 'adb reboot recovery', which probably means that it only works as long as NautilusLauncher is installed.
serial port
The bike connects to the console via a serial port. The device entry for it is /dev/ttyS4.
Only system/root has access to the device, which is why we need NautilusLauncher running to get JRNY to connect to the bike.
NautilusLauncher has a service called SerialPortService, which basically forwards input and output from and to the serial port to tcp:9999.
JRNY app connects to the serial port via the tcp port.
It might be interesting to make an app that connects to tcp:9999 to listen to the bike, e.g. for a custom HUD.
JRNY
Doesn't require system privileges unlike the other bowflex apps.
You can unpack the apk, make changes to it (such as disabling the screen saver and connecting to a different tcp port to connect to the bike), repack and sign it with our own key and have it successfully installed and ran. While the bike connectivity works after doing this, the app seems to have problems, e.g. if trying to bring up the overlay or start with workout with zwift program. Hoping that these can be fixed over time.
"/sdcard/Pictures/nautilus"
The existance of this file controls if NautilusLauncher disables adb debugging upon startup.
modifying JRNY
unpack: apktool d Bowflex_base.apk
...make changes...
repack: apktool b Bowflex_base -o Bowflex_edited.apk
create your own signing key: keytool -genkey -v -keystore my-apk-hack-key.keystore -keyalg RSA -keysize 2048 -validity 10000
sign the modified apk: jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my-apk-hack-key.keystore Bowflex_edited.apk mykey
disable JRNY screen saver by modifying JRNY apk:
edit smali/com/nautilus/bowflex/managers/ScreenDimmingManager.smali
change 'getDimmingEnabled' method to:
.method public static final synthetic access$getDimmingEnabled$p(Lcom/nautilus/bowflex/managers/ScreenDimmingManagerZ
.locals 0
const/4 p0, 0x0
return p0
.end method
over-the-air updates
Bowflex pushes new updates to the console. It's possible that one of these future updates will cause this jailbreak to stop working.
To prevent that, we have uninstalled the nautilus_ota_client app, as well use the setting 'settings put global ota_disable_automatic_update 1'.
We haven't really looked into the updating process, so not completely sure that the above will actually prevent them.
In future, we are hoping to be able to pull the updated apks from somewhere and perform the updates manually. Meanwhile, you can just keep using the current versions of the software.
There is a file that (we assume) contains the credentials for the ota updates. This may be helpful in pulling the updated apks / firmware manually in future: /sdcard/Nautilus/redbend/Credentials.txt
secret menus
In the Bowflex screen showing the serial number
Rapidly click on top right corner to bring up their super secret menu.
Rapidly click on top left corner to bring up the current firmware version number.
Rapidly click on bottom left corner to bring up their secret menu.
In the jrny app login screen:
Rapidly click on top right corner to bring up their advanced features menu.
Click to expand...
Click to collapse
I'm atru
I got it unlocked! But now I'm struggling to reaccess JRNY. The generic app store app cannot find my bike and doesn't have an option for Velocore. Is there a way to have the original JRNY (built for the bike) and Peloton up on the screen?
I added links to backups of the preinstalled apps on Velocore to the Reddit thread.
Laurenann said:
I got it unlocked! But now I'm struggling to reaccess JRNY. The generic app store app cannot find my bike and doesn't have an option for Velocore. Is there a way to have the original JRNY (built for the bike) and Peloton up on the screen?
Click to expand...
Click to collapse
The generic version of the JRNY doesn't support Velocore. You need the version of JRNY that comes with the bike and to have that version of the JRNY app connect to the bike, you need to follow all the steps in the instructions. You can run the generic Peloton app and it'll show up on the screen. But if you want all the bike sensors to show up at the same time, there are some more specific instuctions for Peloton app later in the document.
Hello again - JRNY updated and I'm trying to re-jailbreak but can't access Google Assistant in any way. I long press the home button and the edge of the screen glows white and the little white bubble pops up on the bottom but that's it. I can't hold or tap it enough to make it show back up. Is there any other way to get to settings to force stop Nautilus?
Hi. I've heard from someone else that the jailbreak doesn't work, as described, after the latest update (5.0.0.292 version of NautilusLauncher). I'm still running with the old version myself (I disabled updated after the jailbreak), so not sure if you can get to the settings somehow.
You can still jailbreak the bike by first downgrading the software to 5.0.0.268 and then performing the jailbreak. To do that, you'll need to do a factory reset and then reinstall the old versions of the software that are linked in the reddit thread. Someone also wrote a bit more detailed instructions on how to do this in the comments section there.
EDIT- i now see the post from rg64ml128, and have located the links in the reddit thread I also missed. Thank you!
My bowflex velocore (my gfs bowflex velocore) has a dead spot in the screen, but I wasn't sure it wasn't just the UI /****ty firmware until I tried to do a factory reset to see if that would help solve the issue. I didn't follow any steps above under the assumption it would reboot to factory version of the pre installed software. Oops...
Turns out i factory reset the whole tablet to android, and now I'm stuck in Android mode with no way to get back to the original factory settings. this would be cool if it wasn't my gfs, who is pissed at me. Any one know of any way to go back to the beginning? So far I've seen no traces of the original software.
I factory reset my bowflex velocore using their secret menu (bottom left) and now I don't have audio, but am on android without all the bowflex preinstalled apps. Does anyone else have this issue?
quackinator said:
I factory reset my bowflex velocore using their secret menu (bottom left) and now I don't have audio, but am on android without all the bowflex preinstalled apps. Does anyone else have this issue?
Click to expand...
Click to collapse
I'm not sure if I ever tried audio right after a factory reset, but I don't see any reason why it would not work. I've done factory resets and then reinstalled the bowflex apps with a jailbreak and definitely have audio at that point.
Unfortunately the jrny app links on the reddit post are no longer valid. Could anyone please share working links if possible?
Running the latest version 5.0.0.425 step 4 to get to the google assistance settings no longer works. When I gold the home button, google assistance appears for a second and immediately disappears, so I can't access settings to turn on.
What are my options ?
Has anyone tried adding a momentary switch on the unpopulated Boot SEL switch ( sw1 ) I am wondering what it does?
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Hi.
Any idea if that method is working on Vision Fitness treadmill?
Regards.
State of market
Do NOT buy this watch. It looks like excellent value for money, but much modern H1 / W5 series with Android 9 and full Play Store just hit the shelves on AliExpress for almost the same price.
If mine arrives I'll create separate thread about them.
Brands
My specific watch that I used to experiment with is G4P, bought straight from Chinese factory:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
However almost everything from this thread applies to any watch running on SP9820E SoC, like G4E or G4H series.
Those watches are also often rebranded and sold as: Kinyo, Garett, Lemfo, Wonlex, Locon and many more.
Just check in spec if it is running on 9820E chip and you are good to go.
Reasons for modding
Those watches by default use very limited set of very simple applications presented in most ugly launcher and icon sets achievable by humans.
You can not install any extra applications and what you get from the box is very disappointing.
Also they are meant to be managed exclusively by corresponding phone application like SeTracker 2 (or rebrands like Garett Tracker),
which means you need to send your data to Chinese service and use WeeChat for chats/video calls, whether you like it or not.
This is true shame, because SP9820E is quite powerful hardware, here is GeekBench score.
Do not be fooled by oversimplified stock software - you can run pretty much any "real" application on it.
Luckily because those watches use Android under the hood you can transform them to something more feature-rich and more pleasant to use.
Android KitKat is NOT Android Wear
Those watches use Android 4.4, codename KitKat. Just like old phones. Please do not confuse it with Android Wear operating system and do not try to use applications built for Android Wear. Whatever you use must be Android 4.4 compatible, anything newer won't install at all. Android on this watch is heavily modified, lacks some components and you will run into many crashes or weird behaviour. Sections below will help you to navigate through those issues.
Also applications back in KitKat era were not designed with watch screens in mind, so expect bad interface scaling, not accessible buttons and huge or microscopic fonts.
How to install any application from stock Launcher?
Get application *.apk file from trusted site.
Set up Bluetooth connection between your watch (in Settings -> More -> Bluetooth) and computer / phone. Do not use macOS computer, it does not work. Android phone seems to be most compatible.
Upload *.apk file to watch using Bluetooth.
On watch go to Settings -> Tools -> File explorer and select Local -> bluetooth. Click on *.apk file and install it.
Installed application will not be visible from stock Launcher. So I really recommend installing another Launcher as first application.
Launcher
I use Nova Launcher. You need 5.5.4 version, this is the last one compatible with Android 4.4.
Once you install it using installation method described above press power button and it should prompt you which Launcher to use. Select Nova.
And enjoy freedom. It is also surprisingly fast and does not consume more battery than stock one.
If you have Nova Pro purchased you can activate it in two ways:
Use APK extractor on phone where you have Nova Prime activation installed. Dump license application to phone storage and install it the same way as launcher itself. But beware - it must be 2017 or earlier activation package. You cannot dump it from modern phone.
Search for nova_launcher_prime_v2017_full.apk and install this fake license. This is questionable way of activating it. But if you do not have old phone with old license preinstalled you have no other options. I think that if you own legal license on Play Store you will do no harm to developers this way.
Tips:
To avoid being asked for launcher when pressing power button you can disable stock launcher (requires root) through ADB shell: su, and then pm disable com.sgtc.launcher.
This firmware has very aggressive power management and you may notice lag when waking up watch after longer period of time. This is because Nova got killed by operating system and must start from scratch. To avoid it convert Nova launcher to system application (requires root). This can be done using Link2SD application. Open it, search for Nova, click on Nova, click triple dot menu menu and you will have option to convert to system. Remember to have default launcher or ADB enabled while doing this, because you will need one of those to invoke reboot.
Lock screen using button (broken, workarounds available)
If you have two Launchers power button will always prompt for Launcher when pressed on unlocked screen. You cannot change it without root, there is something modified under the hood and even Nova cannot set itself as default Launcher.
The workarounds are to lock screen using icon:
Add Nova action widget and set it to lock screen.
Add Power Toggles widget and add lock screen button to it.
Settings (partially works)
Settings are very simplified compared to stock Android 4.4. I've tried to install stock AOSP Settings APP but it fails. A lot of "hidden settings" applications allows to invoke deep buried panels like HotSpot or lock screen patterns configurations. Tedious job, lot of crashes along the way.
You can also:
Go to engineering mode by dialling *#*#83781#*#*.
Go to Developer Options by using Developer Options Shortcut application.
Status bar (broken, workaround available)
It does not work on any launcher (I tested a few beside Nova). Probably it was so heavily modified that API is no longer compatible. It cannot even be invoked by ADB service call statusbar 1.
The good replacement is Power Toggles, which allows to add widgets with battery level, fast volume profiles switching, enabling Wi-Fi, Bluetooth. Pretty much everything you used status bar for. Except cellular signal strength. I use version 6.0.4.
Tips:
Just as for launcher - aggressive power management will close it as inactive user application after short period. So because it is invoked every time screen is turned on best way to reduce screen wake up time is to convert Power Toggles to system application (requires root). This can be done using Link2SD application. Open it, search for Power Toggles, click on Power Toggles, click triple dot menu menu and you will have option to convert to system. Reboot watch.
You can set different battery colors, which makes it easier to use on small screen. I has mine set up to red (below 20%), yellow (20-80%) and green (above 80%).
You can set how frequent battery indicator is refreshed. By default it is quite laggy.
To get something looking like real status bar disable home screen margins in Nova launcher. Check my screenshot below for final effect.
Notification bar (broken)
Same deal as with Status bar - probably it was so heavily modified that API is no longer compatible with launchers.
You can open notification list service directly from Nova action. But you cannot manage it in any way (like cleaning old notifications) so it is pretty useless long list of accumulated trash.
I haven't found any good replacement.
Luckily Nova launcher notification dots work on applications icons and you can pretty much quickly figure out what just pinged you.
Clock time picker (broken)
By default you manage alarm clocks on this watch through phone application. But if you open on watch stock Android clock app you will see that you cannot set time, only set alarms on and off. Probably some Android component is missing. No fix or workaround yet. Also beware, because once you add alarm using APP on the watch there is no way to remove it - no option in app itself and SeTracker sees only first 3 of them. You will need to clean app data from ADB.
Power management (work in progress)
There are no options to keep app running in background. I'm still searching for good power management app replacement to keep things like WhatsApp or other services running.
For controlling:
screen delay (by default set to annoyingly short 10 seconds)
fine screen brightness
you can use buttons on Power Toggles widget. Once you set it to your preference widget can be removed and settings are remembered after reboot.
Screen rotation (tricky, broken)
Accelerometer is mounted 90 degrees clockwise and stock applications have this tilt compensation hardcoded into them.
This really dumb design has bad consequences:
If accelerometer rotation (auto-rotation) is enabled all "real" applications will think "up" is on the side where power button and flashlight is.
If accelerometer rotation is disabled most "real" applications will stay in fixed portrait orientation (also called user rotation) but some may still rely on accelerometer. The reason is that you can not fully disable accelerometer. Disabled only means "not taken into consideration unless explicitly asked for". And a lot of applications (mostly camera-related) still try to be user friendly and rotates screen the wrong way.
If you mess something up you can lock Screen Rotation again by adding such button on Power Toggles widget and using it.
Or if you have root:
disable accelerometer rotation: settings put system accelerometer_rotation 0
set user rotation to portrait mode: settings put system user_rotation 0
Start sound
Requires root.
First remount /custom in read-write mode: mount -o rw,remount /custom.
Then remove /custom/movies/bootsound.mp3.
Apps recommendations (please share yours)
A lot of "phone" applications work out of the box, assuming you get Android 4.4 compatible versions of them. You can install them the same way as launcher or through ADB. My set is:
Simple Keyboard is perfect for this watch. Disable symbols, set height to 150% and typing will be really comfortable and fast.
Power Toggles. Must have to compensate broken status bar and missing settings.
WhatsApp. Communication freedom. Pretty much you can stop here if you want this watch to be simple device for kid.
VLC for listening audiobooks (although interface does not scale well, looking for something better).
Wulkanowy (polish e-grade book with lessons plan, homework, etc. I assume a lot of people from Poland will come here because of Garett popularity so I'm mentioning it).
Solid Explorer. Built-in explorer is very castrated and crashes often when other apps try to use it (for example to select icon picture or file to share). Solid Explorer is stable and has a lot of built-in format viewers. Unfortunately one cannot run FTP server using it - button to start is off the screen. Bug reported, I hope it will get fixed soon.
OurGroceries. Excellent shopping/checkbox list that can be synchronized between various devices. Very useful to make list of things kid should take to school for example.
Diki. Online dictionary with simple interface that scales very well on this small screen. Translations are straightforward, without tons of magic grammar shortcuts. Allows to listen for words pronunciation.
Stock apps that are preinstalled and work OK:
Dialer
Contacts (you can even import cards from vcf file)
Flashlight
Looking for:
CalDav / CardDav sync (unfortunately there is no accounts management in API and most apps adding Dav support to Android crash).
Call blocker that will reject everything outside contacts list. To protect kid from scammers, marketers and other unwanted calls.
Known to fail:
SMSes. Can be sent but watch management API interrupts receiving to capture push control commands. Installing any other SMS application and setting it as default one breaks watch management from phone application.
WhatsApp. Camera during video calls is upside down.
Google Play Services. Instant crash.
Google Chrome 81. Crashes after few seconds of activity. For all apps that need SystemWebView component to work try Bromite replacement. However in KitKat WebView was not an application and Developer Options has no way of choosing default one. So it may fix very small amount of applications which are self-aware of different WebViews providers.
Google Calendar. Needs working Google Play Services.
F-Droid store. Crashes randomly and may require patience to install anything.
OpenSync. Cannot add any DAV account due to SSL crash.
Wikipedia. No articles can be displayed. Probably due to their latest TLS 1.2 mandatory API switch. However simply bookmarking Wikipedia in Bromite browser works just fine.
ADB and USB debugging
By default those watches are sold with charging cable only, it does not have signal pins. Your life will be a lot easier if you will be able to transfer files directly from your computer to watch and use ADB to do stuff. You can check cable dimensions here: https://allegro.pl/oferta/magnetyczny-kabel-zasilajacy-do-garett-kids-xd-10972606997 . Remember - it must have four pogo pins.
Connecting with cable is straightforward just like when connecting regular phone. Just be aware of two things:
Magnets are not strong enough to press four pins to contact pads. If you have trouble connecting try pressing magnet plug to watch firmly.
This is Android 4.4, so you need ancient knowledge. Like for example there is no "cmd" command available in ADB shell. Some command line switches are very different from what is being used today. Etc.
You can set USB to file transfer mode. Android File Transfer desktop application works perfectly and transfers are surprisingly fast. Probably it is the most convenient way to transfer applications, audiobooks and music to this watch.
Root
Based on https://github.com/eisaev/SuperSUInstaller process.
Install Developer Options Shortcut. Installation method is irrelevant. You can do it the same way as Launcher installation described above. Or if you already have more advanced stuff installed you can use an file transfer method and any file manager to do it.
Run Developer Options Shortcut and enable USB debugging.
Install SuperSU Installer. Again installation method is irrelevant.
Run SuperSU Installer. Wait for Hello World message and go back to Launcher.
In Local files on the watch there should be new SuperSU Manager APK generated. Install it but do not open.
Restart watch.
Disable WiFi and Bluetooth.
Connect USB cable.
Open dialer and enter *#*#83781#*#*. Engineering settings will open.
Go to CONNECTIVITY tab.
Click Start Service.
Click Wifi eut and confirm popup.
run adb shell on your computer
in shell enter: am start --user 0 -n ru.eisaev.supersuinstaller/.MainActivity
Wait for Hello world message on watch screen.
In shell enter: am start --user 0 -n eu.chainfire.supersu/.MainActivity
On watch screen SuperSU Manager should pop up and offer binary update. Choose Normal mode.
Restart watch.
Open SuperSU Manager. Method is irrelevant, can be clicked from Nova launcher or invoked from ADB like in 16.
Go to Settings and set Default access to Grant.
Confirm that you have root access by going to ADB shell and invoking: su
Clean up all files generated by SuperSU Installer from Local directory on the watch.
This method slightly diverges from original because users are different and because SuperSU Installer crashes when leaving to desktop using home button. Making it impossible to go from step 8 to 9 described in original method.
So for Installer and Manager to see each other at the same time you need to do this weird loop: install Installer which generates Manager which you can install prematurely to be able to later fire up both Installer and Manager at the same time from ADB without using watch home button.
Kudos for eisaev for discovering this process and building SuperSU!
My result
Home screen of Nova launcher:
Power Toggles bar on top emulates status bar. It handles battery info, fast volume and brightness settings and connectivity settings.
Two Nova action widgets added on the bottom - one for power off, second one for applications list.
Application list:
Nova allows to hide applications, so I used it to hide everything kid is not supposed to mess with. Like settings of various sort.
Many apps like Calculator or Gallery I've extracted directly from my old Android 4.4 phone.
Keyboard:
Simple Keyboard is far more usable and fast than stock keyboard. Kid has no problem with typing on it. However just as on stock keyboard you have to type blindly and occasionally minimize keyboard to verify what you've typed.
Please contribute
If you have found solution to any of mentioned problems, encountered new problem on your own or just found good app please share in comments.
bbkr said:
Brands
My specific watch that I used to experiment with is G4P, bought straight from Chinese factory:
View attachment 5407991
However almost everything from this thread applies to any watch running on SP9820E SoC, like G4E or G4H series.
Those watches are also often rebranded and sold as: Kinyo, Garett, Lemfo, Wonlex, Locon and many more.
Just check in spec if it is running on 9820E chip and you are good to go.
Reasons for modding
Those watches by default use very limited set of very simple applications presented in most ugly launcher and icon sets achievable by humans.
You can not install any extra applications and what you get from the box is very disappointing.
Also they are meant to be managed exclusively by corresponding phone application like SeTracker 2 (or rebrands like Garett Tracker),
which means you need to send your data to Chinese service and use WeeChat for chats/video calls, whether you like it or not.
This is true shame, because SP9820E is quite powerful hardware, here is GeekBench score.
Do not be fooled by oversimplified stock software - you can run pretty much any "real" application on it.
Luckily because those watches use Android under the hood you can transform them to something more feature-rich and more pleasant to use.
Android KitKat is NOT Android Wear
Those watches use Android 4.4, codename KitKat. Just like old phones. Please do not confuse it with Android Wear operating system and do not try to use applications built for Android Wear. Whatever you use must be Android 4.4 compatible, anything newer won't install at all. Android on this watch is heavily modified, lacks some components and you will run into many crashes or weird behaviour. Sections below will help you to navigate through those issues.
Also applications back in KitKat era were not designed with watch screens in mind, so expect bad interface scaling, not accessible buttons and huge or microscopic fonts.
How to install any application from stock Launcher?
Get application *.apk file from trusted site.
Set up Bluetooth connection between your watch (in Settings -> More -> Bluetooth) and computer / phone. Do not use macOS computer, it does not work. Android phone seems to be most compatible.
Upload *.apk file to watch using Bluetooth.
On watch go to Settings -> Tools -> File explorer and select Local -> bluetooth. Click on *.apk file and install it.
Installed application will not be visible from stock Launcher. So I really recommend installing another Launcher as first application.
Launcher
I use Nova Launcher. You need 5.5.4 version, this is the last one compatible with Android 4.4.
Once you install it using installation method described above press power button and it should prompt you which Launcher to use. Select Nova.
And enjoy freedom. It is also surprisingly fast and does not consume more battery than stock one.
If you have Nova Pro purchased you can activate it in two ways:
Use APK extractor on phone where you have Nova Prime activation installed. Dump license application to phone storage and install it the same way as launcher itself. But beware - it must be 2017 or earlier activation package. You cannot dump it from modern phone.
Search for nova_launcher_prime_v2017_full.apk and install this fake license. This is questionable way of activating it. But if you do not have old phone with old license preinstalled you have no other options. I think that if you own legal license on Play Store you will do no harm to developers this way.
Tips:
To avoid being asked for launcher when pressing power button you can disable stock launcher (requires root) through ADB shell: su, and then pm disable com.sgtc.launcher.
This firmware has very aggressive power management and you may notice lag when waking up watch after longer period of time. This is because Nova got killed by operating system and must start from scratch. To avoid it convert Nova launcher to system application (requires root). This can be done using Link2SD application. Open it, search for Nova, click on Nova, click triple dot menu menu and you will have option to convert to system. Remember to have default launcher or ADB enabled while doing this, because you will need one of those to invoke reboot.
Lock screen using button (broken, workarounds available)
If you have two Launchers power button will always prompt for Launcher when pressed on unlocked screen. You cannot change it without root, there is something modified under the hood and even Nova cannot set itself as default Launcher.
The workarounds are to lock screen using icon:
Add Nova action widget and set it to lock screen.
Add Power Toggles widget and add lock screen button to it.
Settings (partially works)
Settings are very simplified compared to stock Android 4.4. I've tried to install stock AOSP Settings APP but it fails. A lot of "hidden settings" applications allows to invoke deep buried panels like HotSpot or lock screen patterns configurations. Tedious job, lot of crashes along the way.
You can also:
*#*#83781#*#*.
Developer Options Shortcut application.
Status bar (broken, workaround available)
It does not work on any launcher (I tested a few beside Nova). Probably it was so heavily modified that API is no longer compatible. It cannot even be invoked by ADB service call statusbar 1.
The good replacement is Power Toggles, which allows to add widgets with battery level, fast volume profiles switching, enabling Wi-Fi, Bluetooth. Pretty much everything you used status bar for. Except cellular signal strength. I use version 6.0.4.
Tips:
Just as for launcher - aggressive power management will close it as inactive user application after short period. So because it is invoked every time screen is turned on best way to reduce screen wake up time is to convert Power Toggles to system application (requires root). This can be done using Link2SD application. Open it, search for Power Toggles, click on Power Toggles, click triple dot menu menu and you will have option to convert to system. Reboot watch.
You can set different battery colors, which makes it easier to use on small screen. I has mine set up to red (below 20%), yellow (20-80%) and green (above 80%).
You can set how frequent battery indicator is refreshed. By default it is quite laggy.
To get something looking like real status bar disable home screen margins in Nova launcher. Check my screenshot below for final effect.
Notification bar (broken)
Same deal as with Status bar - probably it was so heavily modified that API is no longer compatible with launchers.
You can open notification list service directly from Nova action. But you cannot manage it in any way (like cleaning old notifications) so it is pretty useless long list of accumulated trash.
I haven't found any good replacement.
Luckily Nova launcher notification dots work on applications icons and you can pretty much quickly figure out what just pinged you.
Clock time picker (broken)
By default you manage alarm clocks on this watch through phone application. But if you open on watch stock Android clock app you will see that you cannot set time, only set alarms on and off. Probably some Android component is missing. No fix or workaround yet. Also beware, because once you add alarm using APP on the watch there is no way to remove it - no option in app itself and SeTracker sees only first 3 of them. You will need to clean app data from ADB.
Power management (work in progress)
There are no options to keep app running in background. I'm still searching for good power management app replacement to keep things like WhatsApp or other services running.
For controlling:
screen delay (by default set to annoyingly short 10 seconds)
fine screen brightness
Power Toggles widget. Once you set it to your preference widget can be removed and settings are remembered after reboot.
Screen rotation (tricky, broken)
Accelerometer is mounted 90 degrees clockwise and stock applications have this tilt compensation hardcoded into them.
This really dumb design has bad consequences:
If accelerometer rotation (auto-rotation) is enabled all "real" applications will think "up" is on the side where power button and flashlight is.
If accelerometer rotation is disabled most "real" applications will stay in fixed portrait orientation (also called user rotation) but some may still rely on accelerometer. The reason is that you can not fully disable accelerometer. Disabled only means "not taken into consideration unless explicitly asked for". And a lot of applications (mostly camera-related) still try to be user friendly and rotates screen the wrong way.
If you mess something up you can lock Screen Rotation again by adding such button on Power Toggles widget and using it.
Or if you have root:
disable accelerometer rotation: settings put system accelerometer_rotation 0
set user rotation to portrait mode: settings put system user_rotation 0
Start sound
Requires root. Remove /custom/movies/bootsound.mp3.
Apps recommendations (please share yours)
A lot of "phone" applications work out of the box, assuming you get Android 4.4 compatible versions of them. You can install them the same way as launcher or through ADB. My set is:
Simple Keyboard is perfect for this watch. Disable symbols, set height to 150% and typing will be really comfortable and fast.
Power Toggles. Must have to compensate broken status bar and missing settings.
WhatsApp. Communication freedom. Pretty much you can stop here if you want this watch to be simple device for kid.
VLC for listening audiobooks (although interface does not scale well, looking for something better).
Wulkanowy (polish e-grade book with lessons plan, homework, etc. I assume a lot of people from Poland will come here because of Garett popularity so I'm mentioning it).
Solid Explorer. Built-in explorer is very castrated and crashes often when other apps try to use it (for example to select icon picture or file to share). Solid Explorer is stable and has a lot of built-in format viewers. Unfortunately one cannot run FTP server using it - button to start is off the screen. Bug reported, I hope it will get fixed soon.
OurGroceries. Excellent shopping/checkbox list that can be synchronized between various devices. Very useful to make list of things kid should take to school for example.
Diki. Online dictionary with simple interface that scales very well on this small screen. Translations are straightforward, without tons of magic grammar shortcuts. Allows to listen for words pronunciation.
Stock apps that are preinstalled and work OK:
Dialer
Contacts (you can even import cards from vcf file)
Flashlight
Looking for:
CalDav / CardDav sync (unfortunately there is no accounts management in API and most apps adding Dav support to Android crash).
Call blocker that will reject everything outside contacts list. To protect kid from scammers, marketers and other unwanted calls.
Known to fail:
SMSes. Can be sent but watch management API interrupts receiving to capture push control commands. Installing any other SMS application and setting it as default one breaks watch management from phone application.
WhatsApp. Camera during video calls is upside down.
Google Play Services. Instant crash.
Google Chrome 81. Crashes after few seconds of activity. For all apps that need SystemWebView component to work try Bromite replacement. However in KitKat WebView was not an application and Developer Options has no way of choosing default one. So it may fix very small amount of applications which are self-aware of different WebViews providers.
Google Calendar. Needs working Google Play Services.
F-Droid store. Crashes randomly and may require patience to install anything.
OpenSync. Cannot add any DAV account due to SSL crash.
Wikipedia. No articles can be displayed. Probably due to their latest TLS 1.2 mandatory API switch. However simply bookmarking Wikipedia in Bromite browser works just fine.
ADB and USB debugging
By default those watches are sold with charging cable only, it does not have signal pins. Your life will be a lot easier if you will be able to transfer files directly from your computer to watch and use ADB to do stuff. You can check cable dimensions here: https://allegro.pl/oferta/magnetyczny-kabel-zasilajacy-do-garett-kids-xd-10972606997 . Remember - it must have four pogo pins.
Connecting with cable is straightforward just like when connecting regular phone. Just be aware of two things:
Magnets are not strong enough to press four pins to contact pads. If you have trouble connecting try pressing magnet plug to watch firmly.
This is Android 4.4, so you need ancient knowledge. Like for example there is no "cmd" command available in ADB shell. Some command line switches are very different from what is being used today. Etc.
You can set USB to file transfer mode. Android File Transfer desktop application works perfectly and transfers are surprisingly fast. Probably it is the most convenient way to transfer applications, audiobooks and music to this watch.
Root
Based on https://github.com/eisaev/SuperSUInstaller process.
Developer Options Shortcut. Installation method is irrelevant. You can do it the same way as Launcher installation described above. Or if you already have more advanced stuff installed you can use an file transfer method and any file manager to do it.
Developer Options Shortcut and enable USB debugging.
SuperSU Installer. Again installation method is irrelevant.
SuperSU Installer. Wait for Hello World message and go back to Launcher.
In Local files on the watch there should be new SuperSU Manager APK generated. Install it but do not open.
Restart watch.
Disable WiFi and Bluetooth.
Connect USB cable.
Open dialer and enter *#*#83781#*#*. Engineering settings will open.
Go to CONNECTIVITY tab.
Start Service.
Wifi eut and confirm popup.
run adb shell on your computer
in shell enter: am start --user 0 -n ru.eisaev.supersuinstaller/.MainActivity
Wait for Hello world message on watch screen.
In shell enter: am start --user 0 -n eu.chainfire.supersu/.MainActivity
On watch screen SuperSU Manager should pop up and offer binary update. Choose Normal mode.
Restart watch.
Open SuperSU Manager. Method is irrelevant, can be clicked from Nova launcher or invoked from ADB like in 16.
Go to Settings and set Default access to Grant.
Confirm that you have root access by going to ADB shell and invoking: su
Clean up all files generated by SuperSU Installer from Local directory on the watch.
This method slightly diverges from original because users are different and because SuperSU Installer crashes when leaving to desktop using home button. Making it impossible to go from step 8 to 9 described in original method.
So for Installer and Manager to see each other at the same time you need to do this weird loop: install Installer which generates Manager which you can install prematurely to be able to later fire up both Installer and Manager at the same time from ADB without using watch home button.
Kudos for eisaev for discovering this process and building SuperSU!
My result
Home screen of Nova launcher:
View attachment 5420419
bar on top emulates status bar. It handles battery info, fast volume and brightness settings and connectivity settings.
Two Nova action widgets added on the bottom - one for power off, second one for applications list.
Application list:
View attachment 5420423
Nova allows to hide applications, so I used it to hide everything kid is not supposed to mess with. Like settings of various sort.
Many apps like Calculator or Gallery I've extracted directly from my old Android 4.4 phone.
Keyboard:
View attachment 5420427
Simple Keyboard is far more usable and fast than stock keyboard. Kid has no problem with typing on it. However just as on stock keyboard you have to type blindly and occasionally minimize keyboard to verify what you've typed.
Please contribute
If you have found solution to any of mentioned problems, encountered new problem on your own or just found good app please share in comments.
Click to expand...
Click to collapse
I bought this watch for my child, but when I want to use another tracking program other than the se tracker program, I cannot change the ip number. Can you help me with this? Since I couldn't find any more resources about g4h, I asked for help under this topic. The link to the watch I actually bought is below. If I can change the server of the watch with the sms sent to the watch, maybe I can switch to an application other than tracker. Engineering mode opens but I don't know how to do it.
Find my kids application server: pw,123456,ip,tcp.findmykids.org,8001#
https://tr.aliexpress.com/item/1005002878573395.html?spm=a2g0s.9042311.0.0.1cc04c4dVwpHt3
got one watch with the same chipset, but it is running at Android 8.1. any idea for root it?
already try above way to to do it. but it was failed.
rootzero7 said:
got one watch with the same chipset, but it is running at Android 8.1. any idea for root it?
already try above way to to do it. but it was failed.
Click to expand...
Click to collapse
No model name, no build version... with amount of details you provided you won't get an answer.
afyden2018 said:
I bought this watch for my child, but when I want to use another tracking program other than the se tracker program, I cannot change the ip number. Can you help me with this? Since I couldn't find any more resources about g4h, I asked for help under this topic. The link to the watch I actually bought is below. If I can change the server of the watch with the sms sent to the watch, maybe I can switch to an application other than tracker. Engineering mode opens but I don't know how to do it.
Find my kids application server: pw,123456,ip,tcp.findmykids.org,8001#
https://tr.aliexpress.com/item/1005002878573395.html?spm=a2g0s.9042311.0.0.1cc04c4dVwpHt3
Click to expand...
Click to collapse
What you want is not possible.
Findmykids.org and SE Tracker do not speak the same protocol, it is not the matter of simply changing IP.
Also findmykids.org service running on watch is for Android 5.0 and up, while this watch runs on Android 4.4.
By the way: location reporting IP is stored in /custom/config. You can remount storage it in read-write mode and change it, but as I said earlier this is pointless. What you need is Android Service running on the watch, reporting to findmykids.org in data format expected by this site.
here is some detail for this watch. it comes NO band name.
chipset,
processor : 0
model name : ARMv8 Processor
BogoMIPS : 52.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
processor : 1
model name : ARMv8 Processor
BogoMIPS : 52.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
Hardware : Spreadtrum SC9820e
Revision : 0000
Serial : 0000000000000000
re : Spreadtrum SC9820e
Revision : 0000
Serial : 0000000000000000
getprop | grep ver
[persist.sys.android.version]: [9.0]
[ro.build.version.release]: [8.1.0]
[ro.build.version.sdk]: [27]
[ro.build.version.security_patch]: [2019-11-05]
kernel info.
Linux localhost 4.4.83+ #1 SMP PREEMPT Fri Aug 20 17:30:34 CST 2021 armv7l
install the SuperSUInstaller apk file and launched it .
adb logcat says the connection was denied by SElinux. also there is no cmd_services running when "enable wifi eut". which "superSUinstaller" needs it to run on.
also by dig the system, it seems like the SELinux was misconfigured somehow.
does it work on android 9
because i try to root LEMFO LEMP
and got this message
DMN_C16_TFT_PIX32:/ $ am start --user 0 -n ru.eisaev.supersuinstaller/.MainActivity
Starting: Intent { cmp=ru.eisaev.supersuinstaller/.MainActivity }
DMN_C16_TFT_PIX32:/ $ am start --user 0 -n eu.chainfire.supersu/.MainActivity
Starting: Intent { cmp=eu.chainfire.supersu/.MainActivity }
Error type 3
Error: Activity class {eu.chainfire.supersu/eu.chainfire.supersu.MainActivity} does not exist.
i realy need solution for root this Sh*t devices
Great tutorial!
I bought polish Garett kids 4g and I want to play with it a little bit (it's not only for kids but also for daddies ).
1. I installed WhatsApp (KitKat version) and it works great. Surprisingly I can see it in the default launcher next to "steps" ("kroki") and "QR code". How it is possible and how to do it with other apps?
2. When I change watch faces I can see a little weather icon on the preview. But when I choose one there is no weather. Do you know what weather application is missing and how to force it to show weather on the watch face?
Thanks alot! I asked for the firmware from chinese's seller, and I had got a link:
QQ邮箱中转站文件
mail.qq.com
ivvitan said:
Thanks alot! I asked for the firmware from chinese's seller, and I had got a link:
QQ邮箱中转站文件
mail.qq.com
Click to expand...
Click to collapse
Hello,I have a watch of the same model, but I don't know how to brush it. I tried SPD_ Research_ Tool, the driver is also installed. I tried to insert the data cable when the watch is shutting down, but the Tool reported an error "user cancel". Can you tell me how you brush the watch?Thanks.
Is there a possibility of putting an android later than android 4.4 in these watches?
Surely there must be a dev on xda who could port a rom to this watch.. anyone ?
bbkr said:
State of market
Do NOT buy this watch. It looks like excellent value for money, but much modern H1 / W5 series with Android 9 and full Play Store just hit the shelves on AliExpress for almost the same price.
If mine arrives I'll create separate thread about them.
Brands
My specific watch that I used to experiment with is G4P, bought straight from Chinese factory:
View attachment 5407991
However almost everything from this thread applies to any watch running on SP9820E SoC, like G4E or G4H series.
Those watches are also often rebranded and sold as: Kinyo, Garett, Lemfo, Wonlex, Locon and many more.
Just check in spec if it is running on 9820E chip and you are good to go.
Reasons for modding
Those watches by default use very limited set of very simple applications presented in most ugly launcher and icon sets achievable by humans.
You can not install any extra applications and what you get from the box is very disappointing.
Also they are meant to be managed exclusively by corresponding phone application like SeTracker 2 (or rebrands like Garett Tracker),
which means you need to send your data to Chinese service and use WeeChat for chats/video calls, whether you like it or not.
This is true shame, because SP9820E is quite powerful hardware, here is GeekBench score.
Do not be fooled by oversimplified stock software - you can run pretty much any "real" application on it.
Luckily because those watches use Android under the hood you can transform them to something more feature-rich and more pleasant to use.
Android KitKat is NOT Android Wear
Those watches use Android 4.4, codename KitKat. Just like old phones. Please do not confuse it with Android Wear operating system and do not try to use applications built for Android Wear. Whatever you use must be Android 4.4 compatible, anything newer won't install at all. Android on this watch is heavily modified, lacks some components and you will run into many crashes or weird behaviour. Sections below will help you to navigate through those issues.
Also applications back in KitKat era were not designed with watch screens in mind, so expect bad interface scaling, not accessible buttons and huge or microscopic fonts.
How to install any application from stock Launcher?
Get application *.apk file from trusted site.
Set up Bluetooth connection between your watch (in Settings -> More -> Bluetooth) and computer / phone. Do not use macOS computer, it does not work. Android phone seems to be most compatible.
Upload *.apk file to watch using Bluetooth.
On watch go to Settings -> Tools -> File explorer and select Local -> bluetooth. Click on *.apk file and install it.
Installed application will not be visible from stock Launcher. So I really recommend installing another Launcher as first application.
Launcher
I use Nova Launcher. You need 5.5.4 version, this is the last one compatible with Android 4.4.
Once you install it using installation method described above press power button and it should prompt you which Launcher to use. Select Nova.
And enjoy freedom. It is also surprisingly fast and does not consume more battery than stock one.
If you have Nova Pro purchased you can activate it in two ways:
Use APK extractor on phone where you have Nova Prime activation installed. Dump license application to phone storage and install it the same way as launcher itself. But beware - it must be 2017 or earlier activation package. You cannot dump it from modern phone.
Search for nova_launcher_prime_v2017_full.apk and install this fake license. This is questionable way of activating it. But if you do not have old phone with old license preinstalled you have no other options. I think that if you own legal license on Play Store you will do no harm to developers this way.
Tips:
To avoid being asked for launcher when pressing power button you can disable stock launcher (requires root) through ADB shell: su, and then pm disable com.sgtc.launcher.
This firmware has very aggressive power management and you may notice lag when waking up watch after longer period of time. This is because Nova got killed by operating system and must start from scratch. To avoid it convert Nova launcher to system application (requires root). This can be done using Link2SD application. Open it, search for Nova, click on Nova, click triple dot menu menu and you will have option to convert to system. Remember to have default launcher or ADB enabled while doing this, because you will need one of those to invoke reboot.
Lock screen using button (broken, workarounds available)
If you have two Launchers power button will always prompt for Launcher when pressed on unlocked screen. You cannot change it without root, there is something modified under the hood and even Nova cannot set itself as default Launcher.
The workarounds are to lock screen using icon:
Add Nova action widget and set it to lock screen.
Add Power Toggles widget and add lock screen button to it.
Settings (partially works)
Settings are very simplified compared to stock Android 4.4. I've tried to install stock AOSP Settings APP but it fails. A lot of "hidden settings" applications allows to invoke deep buried panels like HotSpot or lock screen patterns configurations. Tedious job, lot of crashes along the way.
You can also:
Go to engineering mode by dialling *#*#83781#*#*.
Go to Developer Options by using Developer Options Shortcut application.
Status bar (broken, workaround available)
It does not work on any launcher (I tested a few beside Nova). Probably it was so heavily modified that API is no longer compatible. It cannot even be invoked by ADB service call statusbar 1.
The good replacement is Power Toggles, which allows to add widgets with battery level, fast volume profiles switching, enabling Wi-Fi, Bluetooth. Pretty much everything you used status bar for. Except cellular signal strength. I use version 6.0.4.
Tips:
Just as for launcher - aggressive power management will close it as inactive user application after short period. So because it is invoked every time screen is turned on best way to reduce screen wake up time is to convert Power Toggles to system application (requires root). This can be done using Link2SD application. Open it, search for Power Toggles, click on Power Toggles, click triple dot menu menu and you will have option to convert to system. Reboot watch.
You can set different battery colors, which makes it easier to use on small screen. I has mine set up to red (below 20%), yellow (20-80%) and green (above 80%).
You can set how frequent battery indicator is refreshed. By default it is quite laggy.
To get something looking like real status bar disable home screen margins in Nova launcher. Check my screenshot below for final effect.
Notification bar (broken)
Same deal as with Status bar - probably it was so heavily modified that API is no longer compatible with launchers.
You can open notification list service directly from Nova action. But you cannot manage it in any way (like cleaning old notifications) so it is pretty useless long list of accumulated trash.
I haven't found any good replacement.
Luckily Nova launcher notification dots work on applications icons and you can pretty much quickly figure out what just pinged you.
Clock time picker (broken)
By default you manage alarm clocks on this watch through phone application. But if you open on watch stock Android clock app you will see that you cannot set time, only set alarms on and off. Probably some Android component is missing. No fix or workaround yet. Also beware, because once you add alarm using APP on the watch there is no way to remove it - no option in app itself and SeTracker sees only first 3 of them. You will need to clean app data from ADB.
Power management (work in progress)
There are no options to keep app running in background. I'm still searching for good power management app replacement to keep things like WhatsApp or other services running.
For controlling:
screen delay (by default set to annoyingly short 10 seconds)
fine screen brightness
you can use buttons on Power Toggles widget. Once you set it to your preference widget can be removed and settings are remembered after reboot.
Screen rotation (tricky, broken)
Accelerometer is mounted 90 degrees clockwise and stock applications have this tilt compensation hardcoded into them.
This really dumb design has bad consequences:
If accelerometer rotation (auto-rotation) is enabled all "real" applications will think "up" is on the side where power button and flashlight is.
If accelerometer rotation is disabled most "real" applications will stay in fixed portrait orientation (also called user rotation) but some may still rely on accelerometer. The reason is that you can not fully disable accelerometer. Disabled only means "not taken into consideration unless explicitly asked for". And a lot of applications (mostly camera-related) still try to be user friendly and rotates screen the wrong way.
If you mess something up you can lock Screen Rotation again by adding such button on Power Toggles widget and using it.
Or if you have root:
disable accelerometer rotation: settings put system accelerometer_rotation 0
set user rotation to portrait mode: settings put system user_rotation 0
Start sound
Requires root.
First remount /custom in read-write mode: mount -o rw,remount /custom.
Then remove /custom/movies/bootsound.mp3.
Apps recommendations (please share yours)
A lot of "phone" applications work out of the box, assuming you get Android 4.4 compatible versions of them. You can install them the same way as launcher or through ADB. My set is:
Simple Keyboard is perfect for this watch. Disable symbols, set height to 150% and typing will be really comfortable and fast.
Power Toggles. Must have to compensate broken status bar and missing settings.
WhatsApp. Communication freedom. Pretty much you can stop here if you want this watch to be simple device for kid.
VLC for listening audiobooks (although interface does not scale well, looking for something better).
Wulkanowy (polish e-grade book with lessons plan, homework, etc. I assume a lot of people from Poland will come here because of Garett popularity so I'm mentioning it).
Solid Explorer. Built-in explorer is very castrated and crashes often when other apps try to use it (for example to select icon picture or file to share). Solid Explorer is stable and has a lot of built-in format viewers. Unfortunately one cannot run FTP server using it - button to start is off the screen. Bug reported, I hope it will get fixed soon.
OurGroceries. Excellent shopping/checkbox list that can be synchronized between various devices. Very useful to make list of things kid should take to school for example.
Diki. Online dictionary with simple interface that scales very well on this small screen. Translations are straightforward, without tons of magic grammar shortcuts. Allows to listen for words pronunciation.
Stock apps that are preinstalled and work OK:
Dialer
Contacts (you can even import cards from vcf file)
Flashlight
Looking for:
CalDav / CardDav sync (unfortunately there is no accounts management in API and most apps adding Dav support to Android crash).
Call blocker that will reject everything outside contacts list. To protect kid from scammers, marketers and other unwanted calls.
Known to fail:
SMSes. Can be sent but watch management API interrupts receiving to capture push control commands. Installing any other SMS application and setting it as default one breaks watch management from phone application.
WhatsApp. Camera during video calls is upside down.
Google Play Services. Instant crash.
Google Chrome 81. Crashes after few seconds of activity. For all apps that need SystemWebView component to work try Bromite replacement. However in KitKat WebView was not an application and Developer Options has no way of choosing default one. So it may fix very small amount of applications which are self-aware of different WebViews providers.
Google Calendar. Needs working Google Play Services.
F-Droid store. Crashes randomly and may require patience to install anything.
OpenSync. Cannot add any DAV account due to SSL crash.
Wikipedia. No articles can be displayed. Probably due to their latest TLS 1.2 mandatory API switch. However simply bookmarking Wikipedia in Bromite browser works just fine.
ADB and USB debugging
By default those watches are sold with charging cable only, it does not have signal pins. Your life will be a lot easier if you will be able to transfer files directly from your computer to watch and use ADB to do stuff. You can check cable dimensions here: https://allegro.pl/oferta/magnetyczny-kabel-zasilajacy-do-garett-kids-xd-10972606997 . Remember - it must have four pogo pins.
Connecting with cable is straightforward just like when connecting regular phone. Just be aware of two things:
Magnets are not strong enough to press four pins to contact pads. If you have trouble connecting try pressing magnet plug to watch firmly.
This is Android 4.4, so you need ancient knowledge. Like for example there is no "cmd" command available in ADB shell. Some command line switches are very different from what is being used today. Etc.
You can set USB to file transfer mode. Android File Transfer desktop application works perfectly and transfers are surprisingly fast. Probably it is the most convenient way to transfer applications, audiobooks and music to this watch.
Root
Based on https://github.com/eisaev/SuperSUInstaller process.
Install Developer Options Shortcut. Installation method is irrelevant. You can do it the same way as Launcher installation described above. Or if you already have more advanced stuff installed you can use an file transfer method and any file manager to do it.
Run Developer Options Shortcut and enable USB debugging.
Install SuperSU Installer. Again installation method is irrelevant.
Run SuperSU Installer. Wait for Hello World message and go back to Launcher.
In Local files on the watch there should be new SuperSU Manager APK generated. Install it but do not open.
Restart watch.
Disable WiFi and Bluetooth.
Connect USB cable.
Open dialer and enter *#*#83781#*#*. Engineering settings will open.
Go to CONNECTIVITY tab.
Click Start Service.
Click Wifi eut and confirm popup.
run adb shell on your computer
in shell enter: am start --user 0 -n ru.eisaev.supersuinstaller/.MainActivity
Wait for Hello world message on watch screen.
In shell enter: am start --user 0 -n eu.chainfire.supersu/.MainActivity
On watch screen SuperSU Manager should pop up and offer binary update. Choose Normal mode.
Restart watch.
Open SuperSU Manager. Method is irrelevant, can be clicked from Nova launcher or invoked from ADB like in 16.
Go to Settings and set Default access to Grant.
Confirm that you have root access by going to ADB shell and invoking: su
Clean up all files generated by SuperSU Installer from Local directory on the watch.
This method slightly diverges from original because users are different and because SuperSU Installer crashes when leaving to desktop using home button. Making it impossible to go from step 8 to 9 described in original method.
So for Installer and Manager to see each other at the same time you need to do this weird loop: install Installer which generates Manager which you can install prematurely to be able to later fire up both Installer and Manager at the same time from ADB without using watch home button.
Kudos for eisaev for discovering this process and building SuperSU!
My result
Home screen of Nova launcher:
View attachment 5420419
Power Toggles bar on top emulates status bar. It handles battery info, fast volume and brightness settings and connectivity settings.
Two Nova action widgets added on the bottom - one for power off, second one for applications list.
Application list:
View attachment 5420423
Nova allows to hide applications, so I used it to hide everything kid is not supposed to mess with. Like settings of various sort.
Many apps like Calculator or Gallery I've extracted directly from my old Android 4.4 phone.
Keyboard:
View attachment 5420427
Simple Keyboard is far more usable and fast than stock keyboard. Kid has no problem with typing on it. However just as on stock keyboard you have to type blindly and occasionally minimize keyboard to verify what you've typed.
Please contribute
If you have found solution to any of mentioned problems, encountered new problem on your own or just found good app please share in comments.
Click to expand...
Click to collapse
thank for this tutorial