IP / REST API for controlling Fire TV? - Fire TV Q&A, Help & Troubleshooting

There does not seem to be an official documented API to send commands to the Fire TV via IP. The interface obviously exists and is used by the Fire TV Remote app. Does anybody know how to control the Fire TV via IP?

attunezero said:
There does not seem to be an official documented API to send commands to the Fire TV via IP. The interface obviously exists and is used by the Fire TV Remote app. Does anybody know how to control the Fire TV via IP?
Click to expand...
Click to collapse
I need the same thing so I can control it via Tasker. Unfortunately, communication is encrypted and far from simple (I sniffed the traffic with IP captcher)

djsvetljo said:
I need the same thing so I can control it via Tasker. Unfortunately, communication is encrypted and far from simple (I sniffed the traffic with IP captcher)
Click to expand...
Click to collapse
Well you could try decompiling the android apk and see if you can figure out what it's doing.

rbox said:
Well you could try decompiling the android apk and see if you can figure out what it's doing.
Click to expand...
Click to collapse
Unfortunately, my programming skills end with block diagrams, Tasker at most.
---------- Post added at 04:46 PM ---------- Previous post was at 04:42 PM ----------
BTW, do you know someone that knows SMALI? I need another app that needs a very simple change - doubling the output of one function. I was able to de-compile and find the function in .java but i can't compile it back to class/.smali (a friend of my helped me on this a bit).

Hi,
I am also interested in ip control for the Fire TV. So are there any news on this topic?
Thanks,
Wolfgang

If anyone is still interested it can be controlled by sending keyevents via adb. adb debugging must be enabled on the firetv and adb must be connected then you can send commands like so:
adb shell input keyevent KEYCODE_MEDIA_PLAY_PAUSE
A list of keycodes can be found here: developer dot amazon dot com/docs/fire-tv/remote-input.html#input-event-reference
I believe you can also find commands to start apps and things too.

despian said:
If anyone is still interested it can be controlled by sending keyevents via adb. adb debugging must be enabled on the firetv and adb must be connected then you can send commands like so:
adb shell input keyevent KEYCODE_MEDIA_PLAY_PAUSE
A list of keycodes can be found here: developer dot amazon dot com/docs/fire-tv/remote-input.html#input-event-reference
I believe you can also find commands to start apps and things too.
Click to expand...
Click to collapse
Can you connect to ADB via network (wifi) ?

https://forum.xda-developers.com/fire-tv/themes-apps/windows-app-simple-adb-remote-t2898206

TimmyP said:
https://forum.xda-developers.com/fire-tv/themes-apps/windows-app-simple-adb-remote-t2898206
Click to expand...
Click to collapse
It looks like it will be hard to implement via Tasker (which is what I needed in first place). Controlling mine with Harmony and Tasker Plugin for Harmony

djsvetljo said:
Can you connect to ADB via network (wifi) ?
Click to expand...
Click to collapse
Of course.
Code:
adb connect IP_of_your_FireTV
https://forum.xda-developers.com/fi...adb-remote-t2898206/post55882391#post55882391

djsvetljo said:
Can you connect to ADB via network (wifi) ?
Click to expand...
Click to collapse
Yes, that was my point. Sorry, thought that was implied.
I wrote this shell script to make sending the commands a bit easier. I use it in OpenHAB to control my FireTV via my home automation system Maybe somebody else might find it useful.
Code:
#!/bin/bash
# script to execute a comand on a fire tv via adb
# $1 : ip or hostname and connection port of firetv e.g. Snug-FireTV:5555
# $2 : command to execute
# array of available commands
declare -A COMMANDS=(
["UP"]="19"
["DOWN"]="20"
["LEFT"]="21"
["RIGHT"]="22"
["ENTER"]="66"
["BACK"]="4"
["HOME"]="3"
["MENU"]="KEYCODE_MENU"
["PLAYPAUSE"]="85"
["PREVIOUS"]="88"
["NEXT"]="87"
["WAKE"]="KEYCODE_POWER"
)
if [[ ! -z $1 && ${COMMANDS[$2]+_} ]]; then
# check for existing connection and create new if none found
CON=$(adb devices | grep $1 -c -i)
if [ $CON -eq 0 ]; then
adb connect $1
fi
# execute command
adb -s "$1" shell input keyevent "${COMMANDS[$2]}"
fi

Related

[APP] ADB enhanced Putty (replacement for "adb shell" command)

We all know that running "adb shell" from the command line is pretty crap, and when using a latter busybox version which has coloring support it's ultimately crap. One workaround was usually to start a telnet server on the phone, and use putty to connect to that telnet server. Actually there is a more easier way to do that which also works for non rooted phones.
Actually the Android Debug Bridge has a terminal connection feature (roughly speaking), which will be enabled after you connect to the adb server in "0006shell:" mode. You can actually use the putty to connect to this interface always, by setting the following things:
- Turn off line discipline in settings
- Use RAW mode to connect to localhost:5037
- Enter "0012host:transport-usb" (without quotes)
- Enter "0006shell:" (without quotes)
Now you've got a full fledged connection to your device. The main drawback is that it's tedious to repeat the above all the time, so I've made some modifications to the putty binary that adds a new type of connection, called "Adb"
To use the enhanced putty (via USB):
- Select Adb from the connection type list
- Enter "transport-usb" in the host (or any other connection string, check the adb socket interface documentation if you need something else than connecting via usb)
- Enter 5037 as port, if it's not already set there.
- Connect and enjoy (you might also save this connection, so next time you only have to double-click on the settings)
To use this via wireless adb:
- Connect to wireless adb using a command shell: "adb connect IPORT" (substitute ip and port for the real values)
- Enter "transport-any" in the host
- Enter 5037 as port if it's not already set there
- Connect and enjoy
To use this via the android emulator:
- Enter "transport-local" in the host. Everything else is the same
If you have multiple devices (for example multiple devices connected to usb and/or wileressly)
- Enter "transport:serial-number" in the host, where you substitute "serial-number" with the serial of the device you get by using "adb devices". Everything else is the same.
DL and source: http://github.com/sztupy/adbputty/downloads
Thanks
Great job
Love to use putty.
If this do what your say it's good buy adb shell!!
i am using putty for a long time, and i just tried urs, it looks great but i failed to connect coz i'm connecting to 2 devices....
so how can i add the -s param to specify which phone i'm gonna connect?
thx
EDIT: wow!!! i removed one of my devices and connected to it now!! ctrl-U now works!!!! THANK YOU!!!
EDIT2: quick question. if i use a normal putty, where to type in 0012transport-usb and 0006shell: ? i typed them in the term but it closed after 0006shell
Thanks. It works, but any idea how to get the up and down arrow keys to work on Putty? They work on the windows adb shell.
ykk_five said:
i am using putty for a long time, and i just tried urs, it looks great but i failed to connect coz i'm connecting to 2 devices....
so how can i add the -s param to specify which phone i'm gonna connect?
thx
EDIT: wow!!! i removed one of my devices and connected to it now!! ctrl-U now works!!!! THANK YOU!!!
EDIT2: quick question. if i use a normal putty, where to type in 0012transport-usb and 0006shell: ? i typed them in the term but it closed after 0006shell
Click to expand...
Click to collapse
The complete specification is here: http://android.git.kernel.org/?p=pl...T;hb=f41986bbc79055a4feed7266cac5c1b540296daf
This is what you can use:
- transport-any (either usb or local emulator)
- transport-usb (the only usb device)
- transport-local (the only emulator)
- transport:SERIALNUMBER (the concrete device with the appropriate serial number)
so in your case you have to use the latter.
For the second question, you need to ensure that all of the things are present:
- You are using RAW mode (connecting to localhost:5037)
- Line discipline is on "Force OFF" (in the terminal settings dialog)
- You make some pause between writing the two commands
- You don't press enter/backspace or any other key while entering the commands (the easiest way is to write the commands in eg. notepad, copy them, and paste them into putty by pressing ****+RIGHT MOUSE BUTTON)
hardcore said:
Thanks. It works, but any idea how to get the up and down arrow keys to work on Putty? They work on the windows adb shell.
Click to expand...
Click to collapse
The up and down arrow keys were actually handled by cmd.exe, which is non existent in putty. Instead it's now the responsibility of the shell to do the hard work. The included sh in the phone's sotfware (toolbox sh) is mostly useless here, but if you have busybox installed, you might want to run "busybox sh" after connecting (some rooted phones have busybox's sh as default, on them it should work out of the box).
Busybox's sh can not only handle the up and down arrows, but other things like tab completion works too.
sztupy said:
The up and down arrow keys were actually handled by cmd.exe, which is non existent in putty. Instead it's now the responsibility of the shell to do the hard work. The included sh in the phone's sotfware (toolbox sh) is mostly useless here, but if you have busybox installed, you might want to run "busybox sh" after connecting (some rooted phones have busybox's sh as default, on them it should work out of the box).
Busybox's sh can not only handle the up and down arrows, but other things like tab completion works too.
Click to expand...
Click to collapse
Use the ash.
edit:
Btw, thank you for this adb-putty.
sztupy said:
The complete specification is here: http://android.git.kernel.org/?p=pl...T;hb=f41986bbc79055a4feed7266cac5c1b540296daf
This is what you can use:
- transport-any (either usb or local emulator)
- transport-usb (the only usb device)
- transport-local (the only emulator)
- transport:SERIALNUMBER (the concrete device with the appropriate serial number)
so in your case you have to use the latter.
For the second question, you need to ensure that all of the things are present:
- You are using RAW mode (connecting to localhost:5037)
- Line discipline is on "Force OFF" (in the terminal settings dialog)
- You make some pause between writing the two commands
- You don't press enter/backspace or any other key while entering the commands (the easiest way is to write the commands in eg. notepad, copy them, and paste them into putty by pressing ****+RIGHT MOUSE BUTTON)
Click to expand...
Click to collapse
thx for u reply, but all i got in the log:
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2010.10.09 13:10:54 =~=~=~=~=~=~=~=~=~=~=~=
0012transport-usb
0006shell:
FAIL0012device offline (x)
with adb turned on and working
sztupy said:
The up and down arrow keys were actually handled by cmd.exe, which is non existent in putty. Instead it's now the responsibility of the shell to do the hard work. The included sh in the phone's sotfware (toolbox sh) is mostly useless here, but if you have busybox installed, you might want to run "busybox sh" after connecting (some rooted phones have busybox's sh as default, on them it should work out of the box).
Busybox's sh can not only handle the up and down arrows, but other things like tab completion works too.
Click to expand...
Click to collapse
Yes and it will be great if busybox can handle history like linux
ADB over wireless ?
Hi, thanks for your great work
I'm using ADB Wireless
The first step is to connect first with
Code:
adb.exe connect 192.168.6.14:5555
And then the standard procedure
Is it possible for you to include these two phases directly inside Putty ?
So we just have to enter the IP address of the phone and here we go
PS : to disconnect, we have to do
Code:
adb.exe disconnect 192.168.6.14:5555
but that's not an obligation
seems to be a windows/putty problem because adb shell works wonderful on ubuntu with the default shell ...
btw. you can also easily get a sshd (dropbear) running. then you can ssh onto the device over wifi ... i can provide the binary+explanation if anybody is interested.
I'm very interested in that !
Sent from my GT-I9000 using XDA App
virus found
mathieumeuh said:
I'm very interested in that !
Sent from my GT-I9000 using XDA App
Click to expand...
Click to collapse
here is the explanation how to set it up (cyanogenmod wiki):
http://wiki.cyanogenmod.com/index.php?title=Howto:_Connect_to_Device_with_SSH
basically you have to create the keys on your pc and copy them onto the device. then you can connect via key-auth. if you want dropbear to autostart @boot you could add it to playlogos1 ...
and here are the binary's you need (including the missing dropbear-keygen) and a bash binary:
http://www.multiupload.com/B0L9FDQHPB
bash is optional of course but it's very nice to have tab-completion and the other improvements bash offers over sh. to replace sh with bash do the following:
Code:
cp bash /system/bin/
chmod 0755 /system/bin/bash
mv /system/bin/sh /system/bin/sh_OLD
ln -s /system/bin/bash /system/bin/sh
the chmod is really important. i forgot it once and then was unable to get shell access even over adb. was a pain in the ass to fix it again
jodue said:
seems to be a windows/putty problem because adb shell works wonderful on ubuntu with the default shell ...
btw. you can also easily get a sshd (dropbear) running. then you can ssh onto the device over wifi ... i can provide the binary+explanation if anybody is interested.
Click to expand...
Click to collapse
You seem to miss the point of this development. First, your method is mentioned as one of the possible workarounds in the first post. Second you need to have some kind of telnet/ssh server running on the phone, which you don't need, if using adb.
Meanwhile you don't even need a rooted phone or busybox or anything to get this thing working.
The main problem with adb shell under windows, that it uses the standard cmd.exe to run, and uses the standard cmd.exe's "readline" support, which only supports the up and down keys for history (and even that it only supports that within one session).
Putty is mainly the only good (xterm compatible) terminal emulator for windows (msys's or cygwin's rxvt is good too, but "adb shell" was programmed in a way that makes it kinda useless under rxvt too). There are two ways to fix this. One is to make adb.exe more comptible with rxvt, the other is to skip adb.exe entirelly and communicate with the adb server without it. This project utilises the latter.
But what is the advantage compared to "normal" ABD
But what is the advantage compared to "normal" ADB ?
Thank you!
DirkStorck said:
But what is the advantage compared to "normal" ABD
Click to expand...
Click to collapse
It has a real xterm compatible terminal emulator. Is you use busybox >= 1.17.1 you've got coloring, tab completion, resize events, keyboard events (applicatios like vi is working), etc.
This is the reason I recommend a faulty device: without the problems with the SGS the developments would go much slower Thank you for this putty, i have it connecting to the bash. Color coding and keys work perfectly.
Thanks for this Sztupy!
I hated using windows cmd.exe to access a linux shell

[Q] Manually Launch Fire TV Launcher?

I recently started using SPMC as my launcher and while it's really nice, I haven't figured out how to get back into the Fire TV's base settings (I'd like to pair a controller). Can I access the Fire TV's settings or maybe manually launch the Fire TV's settings or even the launcher through an adb shell am command?
Edit: I managed to pair my controller by launching the android 'Settings' app I had sideloaded a while back but I'm still curious if it's possible to launch Fire TV's default launcher via command line
furrySatan said:
I recently started using SPMC as my launcher and while it's really nice, I haven't figured out how to get back into the Fire TV's base settings (I'd like to pair a controller). Can I access the Fire TV's settings or maybe manually launch the Fire TV's settings or even the launcher through an adb shell am command?
Edit: I managed to pair my controller by launching the android 'Settings' app I had sideloaded a while back but I'm still curious if it's possible to launch Fire TV's default launcher via command line
Click to expand...
Click to collapse
Run the following to open the default home screen:
Code:
adb shell am start -n com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity
Or run the following command to load the Settings directly:
Code:
adb shell am start -n com.amazon.tv.launcher/com.amazon.tv.launcher.ui.SettingsActivity
AFTVnews.com said:
Run the following to open the default home screen:
Code:
adb shell am start -n com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity
Or run the following command to load the Settings directly:
Code:
adb shell am start -n com.amazon.tv.launcher/com.amazon.tv.launcher.ui.SettingsActivity
Click to expand...
Click to collapse
That's great thanks for the response! Your website is great by the way it's been the best resource there is since I got this thing.
Is there a way to turn on debugging on the fire tv where I can tail the log and see what it's running while I'm on it? For the sake of pulling commands if I wanted to add apps to advanced launcher or something
furrySatan said:
That's great thanks for the response! Your website is great by the way it's been the best resource there is since I got this thing.
Is there a way to turn on debugging on the fire tv where I can tail the log and see what it's running while I'm on it? For the sake of pulling commands if I wanted to add apps to advanced launcher or something
Click to expand...
Click to collapse
I'm glad you're liking the site. I've actually got to thank you. While figuring out those commands for you, I discovered a hidden debug menu. Writing up a post about it right now. Should be up shortly.
Run "adb shell logcat" to tail the log file. Use "CTRL+C" to exit.

Test Infrared

Hi there,
upon installation of a new TV and reprogramming the remote it seems that I cant control my Android TV shield anymore via Infrared.
Is there a way to test if the commands arrive?
I don't want to root my device.
In linux there was irw but I have no clue if it will work under Android .
Thanks in advance
Guy
Sounds to me like the problem lies with the Remote. If this were a Harmony Remote, then the answer would be as simple as telling you to redownload, and install the correct Shield TV Profile again.
But, for personal interest sake is this a 2015, 2017 16Gb or the Pro? 'Cause the new '17 Slim & Lite Shield TV does it like S0NY, and removed it to cut it's costs. So by that matric it couldn't work.
But, if I wanted to somehow diagnose this on a Command Line. I think I would do it something like this: (Note you will need a Laptop, or PC. Perhaps a Phablet with Android Terminal might even work)
Code:
$ adb devices
- to see if the Shield turns up. (Note: You will of course need to enable the Developer Settings, and turn ADB on first.)
Code:
$ su
- You may or may not need this but, to be S(uper)U(ser), you have to be root.
Code:
$ adb shell
- With this you now access the Shield (Or, other 'Droid type Boxen) On the command line leve!.
At which point you type this:
Code:
$ cat /proc/kmsg | grep -v -e CTS_ -e 'need set max' -e gpufre
- Which should start a running log. Now this may well be too busy, the first time you run it. 'Causing you to quickly swipe command + c to break it. But, on the second attempt it should be stable enough to show you any 'raw' inputs it receiving over the IR.

Philips ADB Commands for HDMI1-4 with Buttonmapper ?

Hello.After last update on my 65PSU with AndroidTV 9.0 , its not anymore possible to switch directly to HDMI1 or HDMI2 via IR Codes from my Remote (RCOID app Android).
I tryed with Buttonmapper and Kecodes from here : https://elementalx.org/button-mapper/android-key-codes/
But i have no luck because the important one HDMI-1 to HDMI-4 are not activated on TV....
After long search i found a thread where you can per ADB command switch to HDMI-1 HDMI-4 directly via command :
Original Thread found here : https://community.home-assistant.io/t/android-tv-hdmi/234411/27
So i installed adb remote on myphone and testet this command ....and it works like a charm with my philips TV.
Code:
adb shell am start -a android.intent.action.VIEW -d content://android.media.tv/passthrough/com.mediatek.tvinput%2F.hdmi.HDMIInputService%2FHW5 -n org.droidtv.playtv/.PlayTvActivity -f 0x10000000
HW5 = HDMI1
HW6 = HDMI2
HW7 = HDMI3 and so on....
is it possible with buttonmapper to send this ADB codes that i can remap my buttons to direct HDMI switcher buttons on my remote ?
i tryed with buttonmapper §shell
but shell doesnt work....i am linux newbeee.... perhaps someone can help to get this work....
I am searching for this as well. I am now trying via termux + termux widget add-on. I am connected to my TV over ADB in termux. I am not getting to switch to an HDMI port yet.
Switch to HDMI 1: should be possible like this but no succes yet
adb shell input keyevent KEYCODE_F6
After this the next goal is a short script that can be started from a widget icon on my phone's homescreen or even from my TV's remote control with button mapper
The android Keycodes didnt work for me.
but the code above in my 1 Post did Work via remote adb shell app on android.
its a shame that phillips deleted the option to siwtch discret hdmi1.
Has anyone found a sollution to get this working with button mapper?
adb shell input keyevent KEYCODE_F6 and
Code:
adb shell am start -a android.intent.action.VIEW -d content://android.media.tv/passthrough/com.mediatek.tvinput%2F.hdmi.HDMIInputService%2FHW5 -n org.droidtv.playtv/.PlayTvActivity -f 0x10000000
work for me from the computer.

Solution for no Root and no Accessibility Service on Fire TV 4K Mantis on Version 6.2.8.1

Hi,
I recently bought a new Fire TV 4K that came with Version 6.2.8.1 out of the Box. It also has a Serial Number containing VM in it. According to some posts here this means, that it has some efuses blown and the USB Download Mode disabled in its bootrom, which makes it impossible right now to root or downgrade it.
The reason I need to downgrade is that I need to automate some tasks on the Fire TV for example with tasker. For exmaple I need the Fire TV to switch the Input at Boot automatically. It does this only when I press the home button. Automating this with tasker however requires the Accessibility Service, which Amazon has removed in current Versions of the Firmware. So the only solution is to root it or go back to older Firmwares, and both ways seem to have been blocked by AMazon right now.
Is this the latest information or are there solutions for this device to still root it?
And are there alternative ways to automate for example Home button press without root and Acessibility Service?
And which Fire Tv Stick can still be rooted right now even with the latest Firmware installed?
Any help would be appreciated.
According to this post, only versions with "VM190 or higher" have the fuse blown.
[UNLOCK][ROOT][TWRP][UNBRICK] Fire TV Stick 4K (mantis)
NOTE: There have been multiple reports of devices with serial numbers containing VM190 or higher being shipped with DL-Mode disabled in BROM. These devices cannot be unlocked using kamakiri. These devices do not show up at all on USB when...
forum.xda-developers.com
So maybe your unit has a s/n lower then VM190.
Yeah my Serial contains *VM081* but I bought it far later than the post you mentioned. Also that post was made before Version 6.2.8.1 was released and efuses burned, which apparently does not allow downgrading anymore. And the guy who found the exploit has not posted anymore since 2019.
My understanding is that the USB Download mode being disabled and the efuses blown are two different things.
I have not yet read any comment on wether you can root a fresh out of the box device that has Version 6.2.8.1 on it.
And additionally newer devices seem to have no USB Download mode.
Is there a way to check whether my devices efuses are blown or not? And whether my device has USB Download mode before I open and short the device. RIght now I can still send back the device, but not once I have opened it. I don't wanna find out after opening the device that I can not root it.
So before I open the Fire TV, I wanna know whether it is rootable or not. Otherwise I will send it back. I wanna know wether the rooting method does also work once the device has been updated to 6.2.8.1.
ALso it would help to know wether the efuses burning only is limted to the 4K model. In that case I could get a Lite or Version 2 of the Fire TV. Unfortunately I have not found any FAQ regarding such questions.
Spamm00r said:
My understanding is that the USB Download mode being disabled and the efuses blown are two different things.
Click to expand...
Click to collapse
No, it's most likely the same thing...
Spamm00r said:
Is there a way to check whether my devices efuses are blown or not?
Click to expand...
Click to collapse
Yes, you can short the stick, connect usb and watch in lsusb. It will show no sign of the stick if the efuse is gone.
You can also connect an USB TTL UART Adapter, while doing the shorting. Then the log shows you that the boot-process goes to halt.
Spamm00r said:
So before I open the Fire TV, I wanna know whether it is rootable or not. Otherwise I will send it back. I wanna know wether the rooting method does also work once the device has been updated to 6.2.8.1.
Click to expand...
Click to collapse
The root/unlock method based on BR DL-Mode (via shorting), will not work on any 4k stick running 6.2.8.0 or later, regardless of the serial number.
The new Lite Stick, the new fTV Stick and the newest fTV 4K-Max Stick are also BR DL-Mode disabled.
So its game over for the current Fire TV Stick Models in regards to rooting right?!
This wouldn't be such a big issue if Amazon hadn't removed accessibility services, which dramatically reduces the use of a Fire Tv Stick.
I guess we will have to search for alternative routes. WHile it is probably still possible to root the device via eMMC hardware method, this is way too complex for me.
I have already a few ideas.
My plan now is to use a raspberry pi in conjunction with the Fire TV and issue the automation commands via adb from the raspberry pi.
All I need is issue the Home key at certain points. Everything else Tasker can already do without root and accessibility services.
Also Tasker contains ADB over WIFI Plugin, and only needs a one time issue of the adb tcp command after every boot. After taht you have a adb client running on the fire tv itself to do the rest for automation.
My plan is to let the raspberry issue this adb command at every boot of the fire tv and after that Tasker will be able to do the rest via adb WIFI.
I hope that works out.
For further reference and anyone else stumbling over these issues. Before buying a Fire TV, I wasn't aware of these issues, that for example Accessibility services have been removed and Rooting is impossible right now. So Right now I think the better option is to avoid any Fire TV and buy a Raspberry 4 and run Android TV on it. That way you already have root access and can do anything you want on it.
Spamm00r said:
So its game over for the current Fire TV Stick Models in regards to rooting right?!
Click to expand...
Click to collapse
That is valid for the current methods. There is still further development, but development needs time...
So it's best if you take a look into the xda forums from time to time
Spamm00r said:
So its game over for the current Fire TV Stick Models in regards to rooting right?!
This wouldn't be such a big issue if Amazon hadn't removed accessibility services, which dramatically reduces the use of a Fire Tv Stick.
I guess we will have to search for alternative routes. WHile it is probably still possible to root the device via eMMC hardware method, this is way too complex for me.
I have already a few ideas.
My plan now is to use a raspberry pi in conjunction with the Fire TV and issue the automation commands via adb from the raspberry pi.
All I need is issue the Home key at certain points. Everything else Tasker can already do without root and accessibility services.
Also Tasker contains ADB over WIFI Plugin, and only needs a one time issue of the adb tcp command after every boot. After taht you have a adb client running on the fire tv itself to do the rest for automation.
My plan is to let the raspberry issue this adb command at every boot of the fire tv and after that Tasker will be able to do the rest via adb WIFI.
I hope that works out.
For further reference and anyone else stumbling over these issues. Before buying a Fire TV, I wasn't aware of these issues, that for example Accessibility services have been removed and Rooting is impossible right now. So Right now I think the better option is to avoid any Fire TV and buy a Raspberry 4 and run Android TV on it. That way you already have root access and can do anything you want on it.
Click to expand...
Click to collapse
You don't need to issue TCP command. By default, wireless adb debugging is turned on in Fire TV stick.
Shaikh Amaan FM said:
You don't need to issue TCP command. By default, wireless adb debugging is turned on in Fire TV stick.
Click to expand...
Click to collapse
But the Tasker adb function needs it or how else can I make that Tasker function work?
Spamm00r said:
But the Tasker adb function needs it or how else can I make that Tasker function work?
Click to expand...
Click to collapse
You might already knew this that in normal Android mobile phones, with "adb tcpip 5555" command in PC, you start the wireless adb on port 5555 in phone. But when you enable ADB Debugging in Fire TV from it's settings, the wireless ADB Debugging is by default started, so you don't need to run that TCP command as the wireless debugging is already on and then Tasker will use it to get it's work done.
Shaikh Amaan FM said:
You might already knew this that in normal Android mobile phones, with "adb tcpip 5555" command in PC, you start the wireless adb on port 5555 in phone. But when you enable ADB Debugging in Fire TV from it's settings, the wireless ADB Debugging is by default started, so you don't need to run that TCP command as the wireless debugging is already on and then Tasker will use it to get it's work done.
Click to expand...
Click to collapse
Yes I agree the adb is active one the Fire Tv Stick and you can connect to it via wifi on port 5555.
But tasker still does not work with the adb function.
How did you make it work?
According to this:
https://tasker.joaoapps.com/userguide/en/help/ah_adb_wifi.html
You need to run this comamnd everytime you reboot.
Spamm00r said:
Yes I agree the adb is active one the Fire Tv Stick and you can connect to it via wifi on port 5555.
But tasker still does not work with the adb function.
How did you make it work?
According to this:
https://tasker.joaoapps.com/userguide/en/help/ah_adb_wifi.html
You need to run this comamnd everytime you reboot.
Click to expand...
Click to collapse
I am not using Tasker. But as you said above that you'll use raspberry to issue adb tcip command to the stick to turn on wireless debugging, that's not needed.
As far as I think, you'll have a profile of device boot event in Tasker and in it you'll have a ADB Wifi action which will have the button press command.
If that's the case then it should work without any issue.
In ADB WiFi action, set host to 127.0.0.1 ( Just saw that this is optional as well )
If it doesn't works let me know, I'll try installing tasker in my stick and test adb wifi in it.
How do you change volume in your volume change app without root?
Maybe I can issue the command for changing hdmi input the same way.
Shaikh Amaan FM said:
I am not using Tasker. But as you said above that you'll use raspberry to issue adb tcip command to the stick to turn on wireless debugging, that's not needed.
As far as I think, you'll have a profile of device boot event in Tasker and in it you'll have a ADB Wifi action which will have the button press command.
If that's the case then it should work without any issue.
In ADB WiFi action, set host to 127.0.0.1 ( Just saw that this is optional as well )
If it doesn't works let me know, I'll try installing tasker in my stick and test adb wifi in it.
Click to expand...
Click to collapse
Spamm00r said:
How do you change volume in your volume change app without root?
Maybe I can issue the command for changing hdmi input the same way.
Click to expand...
Click to collapse
What's the adb command to change hdmi input?
Shaikh Amaan FM said:
What's the adb command to change hdmi input?
Click to expand...
Click to collapse
There is no adb command to do that diretcly, but the Fire TV switches to HDMI source, if you press home button. SO I wanna issue Home key input via adb to make it switch the HDMI source to the Fire TV Stick.
"key_home": "adb shell input keyevent 3",
As far as I know you need to have root to issue CEC COmmands diretcly. Otherwiese you ahve to make a system method do that for you.
You probably bought one with a serial number of
G4N0VM081..... which is the new blown fuse version. You need to scour ebay for serial number
G070VM190..... or lower, then follow the current rooting guide. Make sure it's BRAND NEW and never been opened or else you're SOL since used sticks have probably been updated. New rootable sticks exists. I found half dozen on ebay a few months ago.
Spamm00r said:
There is no adb command to do that diretcly, but the Fire TV switches to HDMI source, if you press home button. SO I wanna issue Home key input via adb to make it switch the HDMI source to the Fire TV Stick.
"key_home": "adb shell input keyevent 3",
As far as I know you need to have root to issue CEC COmmands diretcly. Otherwiese you ahve to make a system method do that for you.
Click to expand...
Click to collapse
Ok so I just installed Tasker in my stick, tested adb wifi in it, it didn't worked. But I can develop an app which can execute provided adb command on every boot. It's night in my timezone, I'll develop that app tomorrow inshaallah.
That would be awesome.
Please keep the command to execute generic, as it may be useful to also execute other commands at boot. Let the user decide what command to execute.
Shaikh Amaan FM said:
Ok so I just installed Tasker in my stick, tested adb wifi in it, it didn't worked. But I can develop an app which can execute provided adb command on every boot. It's night in my timezone, I'll develop that app tomorrow inshaallah.
Click to expand...
Click to collapse
Spamm00r said:
That would be awesome.
Please keep the command to execute generic, as it may be useful to also execute other commands at boot. Let the user decide what command to execute.
Click to expand...
Click to collapse
[APP][NO ROOT] ADB on Boot | Run adb commands at boot automatically
How to use? 1. Enable ADB Debugging from Fire TV settings 2. In this app, add the adb commands that you want to execute on every boot 3. Set whether you want to display a Toast message on completion of command execution 4. Test the script if...
forum.xda-developers.com
I have to correct myself about adb wifi out of tasker not working.
ADB Wifi does work depending on the app that you are using. Local ADB shell does not work, while Remote ADB Wifi app does work.
The adb plugin for tasker does not work, but the adb wifi action from Tasker itself does work right away. In my earlier tests, other apps were just blocking adb wifi and I was confused and thought tasker's adb wifi is not working. But you have to properly close the abd wifi session with a "exit" command. Also the windows adb tool freezes and has to be killed in taskmanager. That is a source of error for testing adb on fire TV.
Also the adb wifi of tasker will not accept semicolon seperated commands. Shaikh Amaan FM's tool however does. In tasker You will have to create new task for every command and only issue one command. I don't know why, but thats the result of my troubleshooting.
Also you have to make sure that Tasker is properly bought, a trial version or a not genuine version won't work, as Tasker has signature checks implemented which silently brakes plugins without any obvious error messages.
Plugins however also do not work in Macrodroid.
So best thing is to use Remote ADB Shell app or Tasker's built in adb wifi task. Thatway you can mostly work around the fact that Fire TV is locked down, has no root and has accessibility services disabled.
So this is the solution to:
Solution for no Root and no Accessibility Service on Fire TV 4K Mantis on Version 6.2.8.1​
Thatway I'm able to make Fire TV switch input via tasker by issuing a home button press via adb.
That's the best thing you can do under these conditions that you can't have root on Fire TV right now.

Categories

Resources