Related
Hey guys, I recently found out about this article, which may come in handy if you want to increase your battery life.
http://forum.xda-developers.com/showthread.php?t=1387789
omar302 said:
Inspired by the guide from this thread, I made a small (tiny) guide that might be helpful to others. The purpose is to change the delay in time after which WiFi will be turned off after the screen turns off, which is by default 15 minutes, that is if the Wifi sleep policy is set to "After 15 Min".
1- Get the file "settings.db" from /data/data/com.android.providers.settings/databases/ using any approriate method, I used ES Explorer & copied to SD card.
2- On the PC, using Sqlite3Explorer open the "settings.db" file. (make sure you also have the dll file).
3- Right click on secure folders & choose 'Show Data'
4- Click on the green plus icon "Insert Record"
5- On the new (empty) column, Double click on name column & insert "wifi_idle_ms", then click update - and Double click on value column and insert the time for wifi to turn off in miliseconds. (60000 for 60 seconds, etc.) (click update on the screen were data was entered)
6- Click on the "Update" button to save changes.
7- Right click on the secure folder again & choose 'show data', to ensure that the new column has been added at the bottom.
8- Go to File and select "Close Database"
9- Take the modified "settings.db" file & copy it back to your SD card then to the same original forder, overwriting the original one.
*** Always backup***
Click to expand...
Click to collapse
I used ES File explorer to copy/paste to/from my laptop on the same network and it worked nicely! A reboot is required for the changes to take effect. Make sure you follow the steps in the post EXACLTY!
I find myself picking up the phone once every half an hour or so just to play a game or to check on stuff - this means I'm picking up the phone at least 10 times a day while I'm connected to wifi at home - this means that each time it goes to sleep, it will still stay connected 15 minutes before dropping the wifi link. This means 150 minutes wifi is on for nothing. I reduced the time to 1 minute which is a very good value for me. Hope it comes in handy for you guys!
Cheers!
PS - I could be wrong on the 15 minutes value on the Galaxy Note, but I know it takes a long time for wifi to switch off after the screen goes black.
I use Llama to do this, and a whole lot more. The big advantage (apart from not needing root or risking damaging your OS) is that I can disable it when certain apps are running, for instance Internet Radio, so leaving WiFi on.
In my experience, having wifi off has a negligible effect on battery life. Because of that, I just don't bother turning it off.
Sent from my GT-N7000 using Tapatalk 2
Background:
I previously had an old Nexus i9250 which had an LED and I'm missing that badly, despite the Moto notification.
However, the Moto X 2 (2014) has a LED hidden under the earpiece, but it is normally only used to indicate charging (this is similar to the Nexus 6, but the Moto 2014 LED is just green, the Nexus-6 seems to have a hidden multi-color LED too).
On rooted devices the LED can be turned on by writing a value to a system file:
echo <brighness> >/sys/class/leds/charging/brightness
(<brighness> is some value betweeen 1 and 255, for testing in an adb shell it needs to be issued from su)
The LED can also be activated using the LightFlow app (see thread here: http://forum.xda-developers.com/showpost.php?p=59198021&postcount=22)
Here are instructions for the Tasker app (which allows more flexible control over the LED):
1) Create a Tasker task "Led On If Screen Off"
- Task-Type "Code>Run Shell", set Use-Root to "on", command: echo 64 >/sys/class/leds/charging/brightness
- EDIT: as someone suggested here, alternately (instead of the run.shell command) you can add a Task: Alert>Set-Light>Charging and set slider to 64
- fill in the IF-section: IF %SCREEN equals off
- (the number 64 in the command is the brightness, it can technically run from 1 [dim] to 255 [battery consuming])
2) Create a task named "Led Off"
- Task-Type "Code>Run Shell", set Use-Root to "on", command: echo 0 >/sys/class/leds/charging/brightness
- EDIT: as someone suggested here, alternately (instead of the run.shell command) you can add a Task: Alert>Set-Light>Charging and set slider to 0
3) Create a Profile named "Notify Led On"
- Profile-Type "Event>UI>Notification"
- Owner Application "*" (or any you may like)
- Assign profile to perform task "Led On If Screen Off"
4) Create a Profile named "Notify Click Led Off"
- Profile-Type "Event>UI>Notification Click"
- Assign it to perform task "Led Off"
and/or
5) Create a Profile named "Screen On Led Off"
- Profile-Type "Event>UI>Display>Display On"
- Assign to perform task "Led Off"
Violá ... Tasker will turn on the LED if the display is off and a notification arrives. (Of course other triggers like "State>Battery" can also be linked to the "Led On" task).
Enjoy
Can you say why my echo <brightness> keeps coming back to 0 by itself?
fhreire said:
Can you say why my echo <brightness> keeps coming back to 0 by itself?
Click to expand...
Click to collapse
It should be something like
echo 255 >/sys/class/leds/charging/brightness
And needs to be running in root or superuser, so make sure the command is set to run as root (and you have Tasker allowed in SuperSU or similar apps).
fhreire said:
I don't have the Tasker app, I tried a cracked one to test but it didn't ask me permission for SuperSu, so I guess it's not working, innit?
Click to expand...
Click to collapse
The Use-Root flag must be set in the task.
Probably su echo 64 >/sys/class/leds/charging/brightness as a command will also work.
Or your cracked version is broken (Tasker is worth the money anyway and you can get a refund from PlayStore within a few hours if you don't like).
Otherwise see the link (in the original post) to the thread using LightFlow for the LED
We can make it blink!
shimodax said:
Here are instructions for the Tasker app (which allows more flexible control over the LED):
1) Create a Tasker task "Led On If Screen Off"
- Task-Type "Code>Run Shell"
- set Use-Root to "on"
- Command: echo 64 >/sys/class/leds/charging/brightness
- fill in the IF-section: IF %SCREEN equals off
- (the number 64 in the command is the brightness, it can technically run from 1 [dim] to 255 [battery consuming])
2) Create a task named "Led Off"
- Task-Type "Code>Run Shell"
- set Use-Root to "on"
- Command: echo 0 >/sys/class/leds/charging/brightness
3) Create a Profile named "Notify Led On"
Task-Type "Event>UI>Notification", Owner Application "*" (or any you may like) and assign it to task "Led On If Screen Off"
4) Create a Profile named "Notify Click Led Off"
Task-Type "Event>UI>Notification Click", and assign it to task "Led Off"
and/or
5) Create a Profile named "Screen On Led Off"
Task-Type "Event>UI>Display>Display On", and assign it to task "Led Off"
Violá ... Tasker will turn on the LED if the display is off and a notification arrives. (Of course other triggers like "State>Battery" can also be linked to the "Led On" task).
Click to expand...
Click to collapse
Great one! Was looking for some way to turn it on and off.
BTW, you can make it blink softly (like Moto G 2014 and others) by changing the action Led On If Screen Off to the following:
1. Task-Type "Code>Run Shell"
- set Use-Root to "on"
- Command: echo 1 >/sys/class/leds/charging/brightness
- fill in the IF-section: IF %SCREEN equals off
2. Task-Type "Code>Run Shell"
- set Use-Root to "on"
- Command: echo 25 >/sys/class/leds/charging/brightness
- fill in the IF-section: IF %SCREEN equals off
3. Task-Type "Code>Run Shell"
- set Use-Root to "on"
- Command: echo 255 >/sys/class/leds/charging/brightness
- fill in the IF-section: IF %SCREEN equals off
4. Task-Type "Code>Run Shell"
- set Use-Root to "on"
- Command: echo 25 >/sys/class/leds/charging/brightness
- fill in the IF-section: IF %SCREEN equals off
4. Task-Type "Code>Run Shell"
- set Use-Root to "on"
- Command: echo 0 >/sys/class/leds/charging/brightness
- fill in the IF-section: IF %SCREEN equals off
6. Task-Type "Task>Wait"
- 10 seconds (or the desired blinking interval)
7. Task-Type "Task>Goto"
- Type "Action number"
- Action number 1
Then, just add the following to the Led Off task:
- Task-type "Task>Stop"
- Task "Led On If Screen Off"
And it should blink until you tap the notification. My hope is that it will decrease the battery consumption to a minimum level.
Hope it helps!
shimodax said:
The Use-Root flag must be set in the task.
Probably su echo 64 >/sys/class/leds/charging/brightness as a command will also work.
Or your cracked version is broken (Tasker is worth the money anyway and you can get a refund from PlayStore within a few hours if you don't like).
Otherwise see the link (in the original post) to the thread using LightFlow for the LED
Click to expand...
Click to collapse
Just bought the app, gonna try that again, thanks.
joaoeder said:
BTW, you can make it blink softly (like Moto G 2014 and others) by changing the action Led On If Screen Off to the following:
...
Click to expand...
Click to collapse
Very cool. Something learned today . Thanks!
joaoeder said:
Then, just add the following to the Led Off task:
- Task-type "Task>Stop"
- Task "Led On If Screen Off"
Click to expand...
Click to collapse
Very cool .
I did my own version so it blinks really smooth, with fade-in and fade-out, and repeating every 5 seconds.
To ensure compatibility, install busybox!
Same as @joaoeder, but put this on Led On If Screen Off
1. Task-Type "Code>Run Shell"
- set Use-Root to "on"
- Command: (ensure that you copy everything in a single line. I recommend to copy & paste )
Code:
l=1;while [ $l -ne 32 ] ;do echo $l >/sys/class/leds/charging/brightness; l=`expr $l + 1`;sleep 0.01;done;sleep 0.5;while [ $l -ne 0 ] ;do l=`expr $l - 1`;echo $l >/sys/class/leds/charging/brightness;sleep 0.01;done
- fill in the IF-section: IF %SCREEN equals off
2. Task-Type "Task>Wait"
- 5 seconds (or the desired blinking interval)
3. Task-Type "Task>Goto"
- Type "Action number"
- Action number 1
Now the led will smoothly fade in for 1/3 second, keep on 1/2 second, and fade out for 1/3 second.
No more crappy slow and noticeable brightness steps! It's almost identical to the stock notification of most phones.
I had issues with tasker, I discovered that I had to reboot the phone each time I made changes for applying them, otherwise it just didn't work
If you want the led to be on for more time, change sleep 0.5 to whatever you want (0.5=1/2 second, 1=1second, 2=2 seconds...etc)
No need to use shell, you can use the build in taster function.
It is under Alert > Set Light, from the drop down menu select charging and use the slider to set the brightness of the Led.
I thought it was said the OS couldn't access this light, nice!
Nedle said:
No need to use shell, you can use the build in taster function.
It is under Alert > Set Light, from the drop down menu select charging and use the slider to set the brightness of the Led.
Click to expand...
Click to collapse
Awesome, didn't see that. Will edit the original post. Thanks!
Nedle said:
No need to use shell, you can use the build in taster function.
It is under Alert > Set Light, from the drop down menu select charging and use the slider to set the brightness of the Led.
Click to expand...
Click to collapse
Now that's news to me. Nice to see it has a built in way to access the led. Thanks for sharing!
Could someone show how the LED looks?
Thanks.
Can this be applied to the 2013 moto x?
Haven't had any luck with tasker yet, i cant get the prompt for root to show. gonna try lightflow and see if i have any luck with it. Do i need to disable moto display and ambient display?
EDIT: Fiddled with lightflow for a while with no luck either. Finally got tasker to show the prompt for SU but it isnt working either. Can't figure what I am doing wrong.
dabyd64 said:
I did my own version so it blinks really smooth, with fade-in and fade-out, and repeating every 5 seconds.
Click to expand...
Click to collapse
Great dude!
wasnt able to get it working on moto x 1st gen either. obviously the implementation differs from the one in the moto x 2nd gen, allthough the paths and the triggers are the same. would have been great to get a notification led....
Gesendet von meinem ghost mit Tapatalk
I can't seem to get this to work on my 2nd Gen Moto X. I can get the tasks to work just fine (turns on/off the LED) but the profiles with the notification and notification click don't work. The light doesn't come on with a notification, with screen on or off, and if I manually turn the light on through the task, I can't get it to turn off with a click on a notification. Any ideas?
akates said:
I can't seem to get this to work on my 2nd Gen Moto X. I can get the tasks to work just fine (turns on/off the LED) but the profiles with the notification and notification click don't work. The light doesn't come on with a notification, with screen on or off, and if I manually turn the light on through the task, I can't get it to turn off with a click on a notification. Any ideas?
Click to expand...
Click to collapse
Using moto display? Clicking a notification through moto display isnt registered as notification click unfortunately.
Try setting notification + display state off to turn on the led for notifications.
Good luck and cheers
Sent from my XT1092 using XDA Free mobile app
Guys, I'm having some issues with the led.
First I've rooted my phone and tried to make the led blink using tasker and Stock ROM, but I have no success.
The second time, I've flashed temasek ROM (with some led options like blink duration and speed) but didn' t worked too.
The third time I've tried with tasker and the custom ROM. No success
To sum up my situation I can't make the led blink, it turns on but still on continuosly when the screen is off.
I would like to know if someone made the led blink with success.
Sorry about bad english
Sent from my victara using XDA Free mobile app
Morning!
Personally I use the stylus quite a lot, and it always bothered me that the screen didn't turn off when I put the stylus back in the tablet. Thus, I figured out how to make that happen with Tasker.
Below you'll find a basic description of how to achieve this on your own, and also a link to my tasker profile.
Note that this requires root(Run Shell), and that Tasker is set as a Device Administrator(Screen Off).
This profile detects when the stylus status changes.
Profile: Event -> System -> Intent Received
Action: com.nvidia.intent.action.PEN_CHANGED
This task determines if the stylus is removed or inserted, and acts accordingly.
Task: Code -> Run Shell
Command: settings get system stylus_removal_status
Use Root: Checked
Store Output In: %STYLUS
If the stylus is removed, this task sets %STYLUS to 1. And if not, 0.
Task: Display -> System Lock
If: %STYLUS ~(matches) 0
Obviously there are a lot more things you can do, incl. grouping settings etc. within the Task -> If function, but I figured I'd just explain the basics here.
My profile linked below reacts to when the stylus is inserted assuming I'm not watching Netflix, and gives me 2 seconds to abort the Screen Off countdown with a scene popup button if I want to. It also contains a "safeguard" to avoid the screen turning off as soon as you wake it, which would occur if you reinserted the stylus and then turned off the screen manually by habit.
As I'm a new user, you'll have to copypaste the link, hopefully that's not too annoying.
https://drive.google.com/open?id=0B6AArOv0k9BPbGRfR0dUXzR2ek0
Hi, does anyone know how to change the power-off timeout on the Nook Simple touch? When it automatically switches off and leaves a screen saying "Your Nook has been turned off to conserve battery power" or something.
I've looked in /data/data/com.android.providers.settings/databases/settings.db but there is no setting available.
Pkill-9 said:
Hi, does anyone know how to change the power-off timeout on the Nook Simple touch? When it automatically switches off and leaves a screen saying "Your Nook has been turned off to conserve battery power" or something.
I've looked in /data/data/com.android.providers.settings/databases/settings.db but there is no setting available.
Click to expand...
Click to collapse
What do you mean by "power-off timeout"? That screen appears only when you have intentionally shut down your device by long pressing the power button and then confirming through the onscreen dialog that you want to power off the device.
Or are you talking about the forced shutdown when the device decides there is not enough battery power to stay on?
The only "timeout" I can think of is the screensaver timeout which is found in Settings.
nmyshkin said:
What do you mean by "power-off timeout"? That screen appears only when you have intentionally shut down your device by long pressing the power button and then confirming through the onscreen dialog that you want to power off the device.
Or are you talking about the forced shutdown when the device decides there is not enough battery power to stay on?
The only "timeout" I can think of is the screensaver timeout which is found in Settings.
Click to expand...
Click to collapse
My Nook will shutdown at 60% battery power, or 40%, or 20% or something, and it will say that. I remember the word in particular is 'conserve'. I think when it's run out of battery it says something different.
Is there another way to have it shutdown after a period of time? I've seen a thread about using Tasker, but you have to purchase that from the Google Play store. I'd prefer to use a script or something.
Pkill-9 said:
My Nook will shutdown at 60% battery power, or 40%, or 20% or something, and it will say that. I remember the word in particular is 'conserve'. I think when it's run out of battery it says something different.
Is there another way to have it shutdown after a period of time? I've seen a thread about using Tasker, but you have to purchase that from the Google Play store. I'd prefer to use a script or something.
Click to expand...
Click to collapse
It should not be shutting down until it's in the 20's, maybe less. Something is not right--but you knew that.
The question is, hardware or software? If it's software and you do a backup, factory reset and restore the backup, you may be right back where you started. If it's hardware, nothing you do will fix it.
A third option is to do a factory restore and rebuild your system, rather than restore a potentially corrupted backup. That way if it's not hardware, you may solve the problem.
As an afterthought, there are some "battery recalibration" apps out there--not sure if any for Eclair, though. I'm a little leery of their promises, but it might be another thing to look into.
Tasker can do many things, but I'm not sure this is one of them. There is only one version that runs on the NST. PM me for more info if you want to go that route.
I think I will make an app that does what I want. Where can I find documentation on Android 2.1 and/or information on building an app for Android 2.1? I can't find any on google, nor and the official documentation seems to only be for the newest Android versions.
Pkill-9 said:
I'd prefer to use a script or something.
Click to expand...
Click to collapse
You can prepare custom tailored file named "debuglog.sh".
Then put it into /system/bin folder.
NST's android will run it every ~10 seconds.
ucy74 said:
You can prepare custom tailored file named "debuglog.sh".
Then put it into /system/bin folder.
NST's android will run it every ~10 seconds.
Click to expand...
Click to collapse
Thanks, this is working really well.
EDIT: I did it! I used wake locks to keep the script running when suspended, here is my final script, which will shutdown the nook if it is in sleep mode for a day:
Code:
#!/system/bin/sh
# debuglog.sh is an unused path, with a service definition in /init.rc that calls this file. init.rc can't be modified because the root filesystem is created from an
# I am using debuglog.sh for my shutdown script, and if I have any other scripts I want to run in the future, I can use it for that.
wakeup_timeout=86400
wait_until_sleep() {
cat /sys/power/wait_for_fb_sleep # https://stackoverflow.com/a/11275032
}
echo shutdown-on-sleep >/sys/power/wake_lock # Prevent this process from suspending when the device is suspended: https://stackoverflow.com/a/40518240
while
do
wait_until_sleep
timeout -t $wakeup_timeout cat /sys/power/wait_for_fb_wake
if [[ $? -ne 0 ]] ; then # If the command timed out, then it reached the scheduled shutdown timeout. If the command succeeded, then the Nook was awoken from it's slu
reboot -p
fi
done
I will check that running the script doesn't significantly increase battery consumption. If not, then this should be very very helpful in extending the battery life
---------------------------------------------------------------------------
Old post:
I've created a script, but I can't seem to get the NST to wakeup when scheduled. This is the script I am using:
Code:
#!/system/bin/sh
# debuglog.sh is an unused path, with a service definition in /init.rc that calls this file. init.rc can't be modified because the root filesystem is created from an image.
# I am using debuglog.sh for my shutdown script, and if I have any other scripts I want to run in the future, I can use it for that.
wakeup_timeout=60
get_current_unix_time() {
date '+%s'
}
set_wakeup_timeout() {
#echo $wakeup_timeout > /sys/power/wakeup_timer_seconds
echo $(expr $(get_current_unix_time) + $wakeup_timeout) > /sys/class/rtc/rtc0/wakealarm
}
wait_until_sleep() {
cat /sys/power/wait_for_fb_sleep # [url]https://stackoverflow.com/a/11275032[/url]
}
wait_until_wake() {
cat /sys/power/wait_for_fb_wake #
}
set_wakeup_timeout
while
do
wait_until_sleep
went_to_sleep=$(get_current_unix_time)
scheduled_wakeup=$(expr $(get_current_unix_time) + $wakeup_timeout)
wait_until_wake
if expr $(get_current_unix_time) \> $(expr $scheduled_wakeup - 5) ; then
reboot -p
fi
done
Pkill-9 said:
I did it!
Click to expand...
Click to collapse
You can check also parameters shown via
Code:
cat /sys/class/power_supply/bq27510-0/uevent
or drain percentage directly
Code:
cat /sys/class/power_supply/bq27510-0/capacity
but remember not to drain battery completely!
nook cannot wakup easily from case like this
So after running my script for the night, the battery has gone down by 11%, so running it with a wakelock is not a viable solution.
Ideally I could have the kernel schedule wake-ups, like I was trying before, but I can't seem to do that.
Apparently /dev/alarm is used by Android to schedule wakeups, but everything I find talks about using it from an app, instead of writing to it directly from commandline.
Pkill-9 said:
...battery has gone down by 11%...
Click to expand...
Click to collapse
What service/task would You like to keep running against battery saving? Epaper driver may be power hungry, but maybe You can turn off some android services or wifi driver?
ucy74 said:
What service/task would You like to keep running against battery saving? Epaper driver may be power hungry, but maybe You can turn off some android services or wifi driver?
Click to expand...
Click to collapse
The script is what eats up battery, nothing much I can do to improve it, it's running the 'timeout cat ...' command.
I'm a little late to the thread, but I use a simple app called AutoPowerOff to control this. It doesn't seem to have any affect on battery when the system is on.
AutoPowerOff for Android - APK Download
Download AutoPowerOff apk 1.0.2 for Android. Auto power off your device to save battery life.
apkpure.com
In the app itself, you can only set the timeout to a maximum of 23 hours 59 minutes. I wanted a bit of a longer timeout, though, and found that if you edit the app's settings XML file in /data/data, you can set whatever timeout you want. I use 72 hours, which is perfect for my habits. If I go three days without using my Nook, usually it means I'm going to go a few weeks. This way, I still have a nice charged battery when I do come back.
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.