Android May Soon Restrict On-Device ADB, Affecting Shizuku, libadb and Developers | Kitsumed BlogTable of ContentsEarly Warning<br>IntroductionWhat’s ADB?What’s a On-Device ADB connection?
The proposed changeThe problem<br>Why On-Device ADB Is Not Really Used by Bad ActorsScenario 1: General Android Users<br>Scenario 2: A Developer on Android 11+ Using Wireless ADB<br>Scenario 3: A Developer Using ADB over TCP/IP
Conclusion
Early Warning#<br>Before we dive in, please note that this is not an official Google announcement. Instead, this is based on a recent, ongoing feature request on Google IssueTracker , in which a comment by one of the core ADB maintainers (Google employee) talked about restricting On-Device ADB connections to protect from “bad actors”.<br>Before you stop what you are doing to head over to that IssueTracker thread, please read this carefully:<br>If you plan to visit the issue tracker just to post low-quality comments (such as “Hey, don’t do this, I need Shizuku!”), complaints about monopoly, or insults, I highly recommend that you refrain from doing so. Spamming the thread will only cause Google developers to lock the issue, ignore valuable community feedback, or stop sharing public updates about this change entirely.<br>I think a change like this could benefit Google as it goes well along their new Sideloading changes, but I do not actively believe this is what is going on here. There is a true, valid reason behind this , and I think two different approach can be taken. We will talk about it in this blog post.<br>How You Can Help :<br>If you have a unique use case: If you are directly affected and can write a detailed, constructive message explaining your workflow, providing links, or offering technical solutions/compromises, please, by all means, share your feedback in Google issue.<br>If your use case has already been mentioned: You do not need to repeat it. Instead, simply click the +1 button in the top right corner of the Google IssueTracker to let Google know you are affected, and toggle notifications to stay updated on the discussion.<br>I am hesitant to make this blog post, as I fear it may overload the few developers that work on ADB. I am unsure if I should wait more and see what happens or hold it longer and see what approach they take. Waiting too long could also be bad… As of writing this, I am unsure when/if this post will release. I saw some recent updates on assignments which were given to the main guy who previously worked on ADB, so we will see what happens.<br>Introduction#<br>Hi! I’m Kitsumed, developer of ShizuCallRecorder, a Shizuku based application. As you may have guessed by now, I would be affected by this change. Obviously, I would really like it if they do not proceed with it in a way that prevent loopback connections.<br>To talk briefly about myself, I made ShizuCallRecorder to help with some of my own disabilities. I can get by without it, but it’s much easier with it.<br>You could say I have a very unique use case, and I keep discovering other unusual ones, like this person on Reddit, who used my application to preserve the voicemail of a deceased loved one.<br>Call recording on Android is a complicated topic. There are countless user requests, an official attempt to add the feature in Android 11 that was later canceled, and many closed-source, privacy-invasive applications that use work-arounds.<br>I used to hear that many users with disabilities had to trade their privacy for an easier daily life. I guess that’s what people mean when they talk about those trade-offs.<br>Don’t even get me started on OEMs that force an audio warning such as “This call is being recorded,” when it’s in places where it’s not legally required. People often don’t react well to that, even if you explain why you’re recording the call, it gives a bad impression. To be honest, I probably wouldn’t react well to it either.<br>I’m sure most of you have a more “power-user” use of Shizuku or even use loopback ADB for developer tasks. I do those too, but I wanted to point out one of my unique use case.<br>Alright, back on the main topic. Before I explain what the proposed change is, I’m going to explain what is ADB for less technical users.<br>What’s ADB?#<br>ADB, also called A ndroid D ebug B ridge, is protocol created by Google to let developers do developer things on Android devices…<br>Basically, it grant us a high level of privileges, give us access to a lot of sensible commands to tests how the phone and application behave. Useful stuff for any developers or power-users.<br>ADB was originally designed to work over a USB connection, but later expanded how it could works:<br>USB : The original way. ADB communicates directly over a USB cable.<br>TCP/IP : Introduced as a way to run ADB over a network using an IP address and port (typically port 5555). The connection carries ADB traffic in plain text and provides a...