OnscreenClock v0.5.0k and ADBoverEthernet v0.8.6

a few weeks ago, ADBoverEthernet was removed from the Google Play store due to a payments policy violation. As you may know, only Google is allowed to make profit off your app, so you may not provide alternative ways of payment within the app. Since my app only provides Google’s In-App payment and still got removed, apparently it’s also not allowed to even mention other possibilities. I removed the mention of my paypal and link to my donation page on this blog. So everything should be good now. 🙂 I also updated the OnScreenClock app as it shares the donation code with ADBoverEthernet.

It took me a few iterations to get the new apps released as Google forces you to upgrade the target sdk to at least 26 (= Oreo) these days. With this upgrade comes extra limitations on background processes. ADBoverEthernet used a service to launch shell commands. I changed that to use the new WorkManager api.

Changelog

ADB over ethernet v0.8.6 2019-04-24

  • show app version
  • make output window scrollable (in case of exceptions)
  • fix NPE crash when back button is pressed before webview is fully loaded
  • fix crash opening website on TV device that does not advertise itself as TV
  • store compliance
  • fix NPE’s when user revokes overlay permission while configuring the clock

OnScreenClock v0.5.0k 2019-04-18

  • trying to fix overlay permission trouble
  • bumped min sdk version from 15 -> 16
  • bumped target sdk version from 23 -> 26
  • fix crash on Android Oreo and higher when launching clock service at boot time
  • fix NPE’s when user revokes overlay permission while configuring the clock
  • fix admob crash

ADB over Ethernet v0.8.3

So I finally managed to release a new version of the ADBoverEthernet app. I noticed the ip detection stopped working on Marshmallow and higher. Rather than using command-line script-fu, I now use the official android api’s to query network interfaces and stuff. 🙂 I don’t recall why I didn’t use those in the first place, but in its current state, it definitely seems to work on all tested devices.

A nice-to-have is the new “autostart” feature. Check the box to enable the ethernet adb at boot time. This also explains the new permission RECEIVE_BOOT_COMPLETED.

v0.8.3  2017-04-28 
================== 
+ autostart at boot option (requires NEW permission RECEIVE_BOOT_COMPLETED) 
* use better ip detection logic (fixes ip detection on marshmallow and higher) 
* fix NPE when root access is denied

ADB over Ethernet v0.6

v0.6  2015-07-22
================
+ added "support me" button. Ad loading is on-demand, 
  maintaining a fast ad-free experience during normal usage.

v0.5  2015-06-22
================
* also check root access on resume (nullpointer exc 
  fix on non-rooted devices)

v0.4  2015-06-17
================
+ detect ip at every resume instead of only at startup
* better handle network transitions:
  - detect multiple ip's
  - filter invalid ip

v0.3  2015-06-15
================
- use webview to show help since Android TV has no browser 
  (requires extra internet permission)
- nicer icon for tablets
- dark theme easier on the eyes

v0.2  2015-05-23
================
check for root before running commands to avoid app crash 
on non-rooted devices

v0.1  2015-05-21
================
initial release

ADB over Ethernet

You say: “what, another adb app?!” I have my reasons. 🙂

While developing an Android TV app on my nexus player, I noticed that besides the annoying thing of constantly having to switch input on my monitor (my secondary monitor is broken), it’s also quite cumbersome to switch the microUSB cable at least once during a dev session. I use the microUSB connection to hook up a usb ethernet adapter. So when I want to debug, I have to switch the OTG cable for a regular one to enable ADB. Using the usb connection you can configure the device to enable ADB over ethernet, meaning you no longer need the usb cable but can connect to the adb daemon on the device over tcpip.

There are a dozen of existing apps for this purpose. Unfortunately, most of them are not android TV friendly. For starters, there are none in the android TV store but this is mostly an inconvenience. Secondly, they don’t offer dpad/controller navigation which renders them unusable. Thirdly, When I did find one app that offered navigation (although invisible), it required to use the wireless connection, while I have a wired connection.

Since it is only running a few commands as root, I decided to quickly mash up my own app. It offers clear button focus on android TV and is controller friendly. It tries to detect which network interface is currently in use. It is also available now in the play TV store.

Of course, the very first time you need to allow the rsa key of the connecting computer.

ADBoverEthernet on Google Play store
ADBoverEthernet on Google Play store