Hi.
I didn't want to start this in the JellyTime dev thread and take it off-topic, and figured a separate thread would be more useful to anyone searching for this.
Aim: Access the internet on my DHD using my Linux PC's internet connection.
Set-up: Ubuntu 12.04, Desire HD (European), JellyTime R21.
Process/progress so far:
I found a script here... I modified it a little, so it looks like this:
Code:
#!/bin/bash
adb shell 'echo 6 > /sys/devices/platform/msm_hsusb/usb_function_switch'
sleep 1
adb shell ifconfig usb0 192.168.99.5 netmask 255.255.255.0 up
sleep 1
adb shell setprop net.dns1 8.8.8.8
get_ip ()
{
ifconfig usb0 | grep inet | awk '{print $2}' | sed 's/addr://' | grep .
}
echo "waiting for IP on computer usb0"
while [[ `get_ip` < 192 ]];do sleep 2; done
ip=`get_ip`
echo "IP adress is $ip "
adb shell route add default gw $ip dev usb0
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
If I set my device to "USB tether" mode, running (as su) "ifconfig usb0 up" works fine, but running the above script generates:
Code:
/system/bin/sh: can't create /sys/devices/platform/msm_hsusb/usb_function_switch: No such file or directory
waiting for IP on computer usb0
connect.sh: 14: connect.sh: cannot open 192: No such file
connect.sh: 14: connect.sh: [[: not found
IP adress is 192.168.42.245
No such process
Is the problem that usb_function_switch is not present in Cyanogenmod? If so, I guess randomblame (the JellyTIme dev) would have to add this to his DHD port of CM10. I think it has been added for the HTC Hero.
Incidentally, I also tried using this app. I followed the instructions, and can ping my DHD from the PC, but pressing the start button throws the message "No tetherable USB interface!".
Any tips and advice (even if it's just telling me it's not possible, and that I should give up now) would be appreciated.
Thanks.
EDIT (P.S.): If we can come to the conclusion that this is something to do with the ROM (e.g. usb_function_switch) then I will create an issue for this in the ROM issue tracker... but I didn't want to do that immediately in case it is just me missing something obvious.
Well, even if you create the usb_function_switch file, the ROM still doesn't support Internet pass-through, so putting "6" in it won't do anything. You can put it on the issue tracker, but I have not yet seen a non-Sense ROM have that feature.
bananagranola said:
Well, even if you create the usb_function_switch file, the ROM still doesn't support Internet pass-through, so putting "6" in it won't do anything. You can put it on the issue tracker, but I have not yet seen a non-Sense ROM have that feature.
Click to expand...
Click to collapse
Really? It supports USB tethering... I was pretty sure that was all that was needed... See this.
lawrencew said:
Really? It supports USB tethering... I was pretty sure that was all that was needed... See this.
Click to expand...
Click to collapse
First of all, I'm not sure if that site you're quoting is for the Desire or the Desire HD. Second, USB tethering allows the computer to use the phone's internet (which is supported); internet pass-through is the other way around. Third, I could be wrong about JellyTime supporting internet pass-through; where did you see that?
bananagranola said:
First of all, I'm not sure if that site you're quoting is for the Desire or the Desire HD. Second, USB tethering allows the computer to use the phone's internet (which is supported); internet pass-through is the other way around. Third, I could be wrong about JellyTime supporting internet pass-through; where did you see that?
Click to expand...
Click to collapse
I was under the impression that passthrough uses the same connection as tether, but with slightly different config.
Could definitely use that...the reverse tether would be great in remote area's with spotty connections as well as in buildings like hospitals.
lawrencew said:
I was under the impression that passthrough uses the same connection as tether, but with slightly different config.
Click to expand...
Click to collapse
If that's true, that's really interesting.
Well, we have to find out how it works because i want to use JB but i can't because it doesn't has Reverse Tether. Sense Roms are my only Option and i hate that. If someone gets the solution it would be nice if you make a tutorial for that.
Found a solution. Search the forum for Reverse Tethering 2.30 .
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
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.
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.