lindroids export builds a program’s app on the phone in milliseconds (A program’s own
app). Installing it normally takes Android’s installer and the user’s taps: with Termux
from Google Play, which may not open the installer, the app goes to Download and the user taps
it in the file manager, then Install, sometimes Play Protect’s questions too.
ADB is the other way in. The shell user installs apps with no installer at all, and Android 11+
can run adbd on the phone itself, Wireless debugging, which pairs with a six-digit code. Termux’s
own adb (package android-tools) pairs with it once, like a computer would, and from then on:
Setting it up, once
- It offers
pkg install android-toolsif Termux has noadb(about 7 MB). - It opens Developer options. Turn them on first if needed (Settings → About → Software information → tap Build number 7 times).
- Wireless debugging → On (needs Wi-Fi) → Pair device with pairing code.
- Keep the code on screen, with Termux beside Settings (split screen or a pop-up window), and type it into Termux: leaving the code’s dialog cancels it.
lindroids adb pair <code> <port> takes both from the
dialog without asking.
What happens on export
While Wireless debugging is on,export (and lindroids app install) installs with
adb install -r over 127.0.0.1 and disconnects. When it is off, which happens when Wi-Fi goes and
after a restart, the export says so and falls back to Android’s installer as before. Its Quick
Settings tile (Developer options → Quick settings developer tiles → Wireless debugging) turns
it on again; the pairing stays.
The ports are found on the phone only:
- mDNS: Android advertises
_adb-tls-pairing._tcpand_adb-tls-connect._tcp; Lindroids asks with a unicast-answer query. Other phones on the Wi-Fi may answer, so a port counts only if it answers on 127.0.0.1. - 127.0.0.1’s ports: 5555 and the kernel’s range for port 0 (
ip_local_port_range, normally 32768–60999), in parallel, each asked with an ADBCNXN: Wireless debugging’s adbd answersSTLS,adb tcpipanswersAUTH, an adbd without keys answersCNXN, and the pairing server (TLS) answers with a TLS alert. A scan takes about 5 s; the port found is remembered, so later exports ask it first.
adb tcpip 5555, done once from a computer, works too: the phone then asks once to allow
Termux’s key (“Allow USB debugging?”).
Why ADB
- No taps, on every Termux: the Google Play build cannot open Android’s installer at all.
- No Play Protect dialogs in the way of the installer’s (assumed; to be checked on the tablet: Play may still scan apps installed over ADB, silently).
- Google’s developer verification (2026–2027) is meant to leave ADB installs alone, while installs of apps signed by an unregistered key through the installer will need the user’s one-time “advanced flow”.
lindroids adb forget and removing Termux under Paired devices undo it.
Tested
Lab VM b15 (Bliss OS, Android 12L, x86_64, Termux 0.118 from F-Droid, 2026-11-02). It has no Wi-Fi, so no Wireless debugging; its adbd listens on 5555 with no keys, which tests the rest:
Still to test, on the tablet (Android 16, Termux from Google Play):
android-tools in Play
Termux’s repository; Wireless debugging’s adbd on 127.0.0.1; mDNS answers from Termux; pairing in
split screen; Play Protect on ADB installs; Wireless debugging off → the installer fallback.