• PSA: How to mirror Android onto your PC using scrcpy & adb over Wi-Fi

    From Maria Sophia@mariasophia@comprehension.com to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Sat May 9 21:02:40 2026
    From Newsgroup: comp.mobile.android

    PSA:
    How to mirror modern Android onto your PC using scrcpy & adb over Wi-Fi
    (Works on Android 11 and up)

    Windows or Linux, this mirrors your phone on your PC monitor two feet tall. (The keyboard, mouse, clipboard, speakers all mirror Android over Wi-Fi).

    1. Connect your phone to the LAN
    2. Longpress the Wireless Debugging tile at the top of your homescreen
    3. Note the "IP address & Port", for example
    a. IP address (e.g., 192.168.1.2)
    b. Connection Port (e.g., 46003)
    3. Tap "Pair device with pairing code" to get another port & pairing code
    a. IP address (e.g., 192.168.1.2)
    b. Pairing Port (e.g., 40005)
    c. Pairing code (e.g., 450824)
    4. Pair & connect:
    adb pair 192.168.1.2:40005 450824
    adb connect 192.168.1.2:46003
    5. Run scrcpy without leaving an unusable console behind:
    Windows: scrcpy-noconsole.vbs (see below)
    Linux: mirror (see below)

    6. That mirrors Android on your monitor while using the PC mouse, keyboard,
    speakers & clipboard to control the device full-height on your monitor.

    For Linux, this mirrors Android thereafter without the console locking up:
    alias mirror ='scrcpy --keyboard=sdk --always-on-top &'

    This is the default Windows scrcpy-noconsole.vbs shipped with scrcpy.
    strCommand = "cmd /c scrcpy.exe"
    For Each Arg In WScript.Arguments
    strCommand = strCommand & " """ & replace(Arg, """", """""""""") & """"
    Next
    CreateObject("Wscript.Shell").Run strCommand, 0, false

    I modified it slightly to reduce one step when using the Android keyboard.
    ' strCommand = "cmd /c scrcpy.exe"
    strCommand = "cmd /c scrcpy.exe --keyboard=sdk --always-on-top"
    For Each Arg In WScript.Arguments
    strCommand = strCommand & " """ & replace(Arg, """", """""""""") & """"
    Next
    CreateObject("Wscript.Shell").Run strCommand, 0, false

    There is minor one-time setup, such as turning on Developer Options in the phone to enable "USB debugging" & "Wireless debugging" & adding the wireless-debugging tile which you do only once in the life of the phone.

    Note once you have paired a device, you usually only need the adb connect command in the future, especially with a static IP address.
    adb connect
    scrcpy-noconsole.vbs (for Windows)
    mirror (for Linux

    There are, of course, a billion options, but this is a quickie for all.
    And there is the old-school way of using adb connect 192.168.1.2:5555
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Maria Sophia@mariasophia@comprehension.com to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Sun May 10 20:01:23 2026
    From Newsgroup: comp.mobile.android

    Maria Sophia wrote:
    There are, of course, a billion options, but this is a quickie for all.
    And there is the old-school way of using adb connect 192.168.1.2:5555

    If you're tapping on your phone while at your desk, you're not efficient.

    There are three ways to connect your phone to your PC to control it from
    the PC (& which can makes the phone as tall & as wide as your monitor is).

    1. Wi-Fi
    2. USB
    3. Hybrid USB + Wi-Fi

    We covered the Wi-Fi steps prior, which work only on Android 11+.

    The USB method is the simplest (and most reliable) overall.
    a. Connect the phone to the PC via USB
    b. adb devices
    c. scrcpy --always-on-top --full-screen --stay-awake --keyboard=sdk

    For all Android versions, including older Android, there's a half-and-half
    a. Connect the phone to the PC via USB
    b. adb tcpip 5555
    c. adb connect 192.168.1.2:5555
    d. scrcpy --always-on-top --full-screen --stay-awake --keyboard=sdk

    In my humblest of opinions, if you're at your PC, there's no reason to
    touch the phone in order to do whatever it is that you want to do with it.

    Note there are a billion scrcpy options, so those are just examples.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Maria Sophia@mariasophia@comprehension.com to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Mon May 11 20:34:18 2026
    From Newsgroup: comp.mobile.android

    Maria Sophia wrote:
    There are three ways to connect your phone to your PC to control it from
    the PC (& which can makes the phone as tall & as wide as your monitor is).

    One very nice feature of this PC to Android setup is for automatic archival
    of APKs on the PC & automatic installation from the PC to Android.

    Here's the flow that I use for universal APKs (one package for all phones).

    1. I often download an APK using the PC web browser & save to a USB drive.
    2. Most sites will provide a universal APK (such as F-Droid or Github).
    3. From the file explorer, when you slide the APK on top of the Android
    mirror image, it automatically runs "adb install" to install that APK.
    <https://i.postimg.cc/wvsbcNBz/scrcpy05.jpg>

    Note the quick efficiency as you never need to physically copy the APK.
    It's automatically archived, and installation is as simple as sliding it.

    However.... Google is getting more & more like Apple... in that...

    The google play repo is serving almost exclusively the PITA split APKs.

    Apparently, Google wants you to use their bundletool to install split APKs
    <https://github.com/google/bundletool/releases>
    <https://github.com/google/bundletool/releases/download/1.18.3/bundletool-all-1.18.3.jar>
    Name: bundletool-all-1.18.3.jar
    Size: 32520401 bytes (31 MiB)
    SHA256: A099CFA1543F55593BC2ED16A70A7C67FE54B1747BB7301F37FDFD6D91028E29

    bundletool install-apks --apks=myapp.apks

    While you can unzip a split APK and stream over adb to install it
    adb install-multiple base.apk config*.apk
    what's simpler in most cases is just sliding it over the same way.

    However, since it's a split APK, it goes into /sdcard/Downloads and,
    from there, you can use SAI or Muntashirakon App Manager to install.

    Note: I haven't used all the methods above because I use a simple approach.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Roger Mills@mills37.fslife@gmail.com to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Tue May 12 12:09:58 2026
    From Newsgroup: comp.mobile.android

    On 10/05/2026 04:02, Maria Sophia wrote:
    PSA:
    How to mirror modern Android onto your PC using scrcpy & adb over Wi-Fi (Works on Android 11 and up)

    Windows or Linux, this mirrors your phone on your PC monitor two feet tall. (The keyboard, mouse, clipboard, speakers all mirror Android over Wi-Fi).

    1. Connect your phone to the LAN
    2. Longpress the Wireless Debugging tile at the top of your homescreen
    3. Note the "IP address & Port", for example
    a. IP address (e.g., 192.168.1.2)
    b. Connection Port (e.g., 46003)
    3. Tap "Pair device with pairing code" to get another port & pairing code
    a. IP address (e.g., 192.168.1.2)
    b. Pairing Port (e.g., 40005)
    c. Pairing code (e.g., 450824)
    4. Pair & connect:
    adb pair 192.168.1.2:40005 450824
    adb connect 192.168.1.2:46003
    5. Run scrcpy without leaving an unusable console behind:
    Windows: scrcpy-noconsole.vbs (see below)
    Linux: mirror (see below)

    6. That mirrors Android on your monitor while using the PC mouse, keyboard,
    speakers & clipboard to control the device full-height on your monitor.

    For Linux, this mirrors Android thereafter without the console locking up:
    alias mirror ='scrcpy --keyboard=sdk --always-on-top &'

    This is the default Windows scrcpy-noconsole.vbs shipped with scrcpy.
    strCommand = "cmd /c scrcpy.exe"
    For Each Arg In WScript.Arguments
    strCommand = strCommand & " """ & replace(Arg, """", """""""""") & """"
    Next
    CreateObject("Wscript.Shell").Run strCommand, 0, false

    I modified it slightly to reduce one step when using the Android keyboard.
    ' strCommand = "cmd /c scrcpy.exe"
    strCommand = "cmd /c scrcpy.exe --keyboard=sdk --always-on-top"
    For Each Arg In WScript.Arguments
    strCommand = strCommand & " """ & replace(Arg, """", """""""""") & """"
    Next
    CreateObject("Wscript.Shell").Run strCommand, 0, false

    There is minor one-time setup, such as turning on Developer Options in the phone to enable "USB debugging" & "Wireless debugging" & adding the wireless-debugging tile which you do only once in the life of the phone.

    Note once you have paired a device, you usually only need the adb connect command in the future, especially with a static IP address.
    adb connect
    scrcpy-noconsole.vbs (for Windows)
    mirror (for Linux

    There are, of course, a billion options, but this is a quickie for all.
    And there is the old-school way of using adb connect 192.168.1.2:5555

    Help - I'm lost!

    I can get as far as #3 and can get IP address, port and pairing code

    But I don't understand #4 - Pair and connect
    Where are the adb pair and adb connect commands entered - on the phone
    (if so where?) or on the PC (if so where). My PC doesn't seem to
    understand the command 'adb' when entered at a command prompt!
    --
    Cheers,
    Roger
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Kerr-Mudd, John@admin@127.0.0.1 to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Tue May 12 13:00:47 2026
    From Newsgroup: comp.mobile.android

    On Sun, 10 May 2026 20:01:23 -0600
    Maria Sophia <mariasophia@comprehension.com> wrote:

    Maria Sophia wrote:
    There are, of course, a billion options, but this is a quickie for all.
    And there is the old-school way of using adb connect 192.168.1.2:5555

    If you're tapping on your phone while at your desk, you're not efficient.

    There are three ways to connect your phone to your PC to control it from
    the PC (& which can makes the phone as tall & as wide as your monitor is).

    1. Wi-Fi
    2. USB
    3. Hybrid USB + Wi-Fi

    We covered the Wi-Fi steps prior, which work only on Android 11+.

    The USB method is the simplest (and most reliable) overall.
    a. Connect the phone to the PC via USB

    a.1. find the USB driver. discover it needs a newer os than you have.
    cry.
    discover it keeps trying to load something that it can't find
    when you try to charge the phone from your PC EVERY TIME
    DNAMHIKT.



    b. adb devices
    c. scrcpy --always-on-top --full-screen --stay-awake --keyboard=sdk

    For all Android versions, including older Android, there's a half-and-half
    a. Connect the phone to the PC via USB
    b. adb tcpip 5555
    c. adb connect 192.168.1.2:5555
    d. scrcpy --always-on-top --full-screen --stay-awake --keyboard=sdk

    In my humblest of opinions, if you're at your PC, there's no reason to
    touch the phone in order to do whatever it is that you want to do with it.

    Note there are a billion scrcpy options, so those are just examples.
    --
    Bah, and indeed Humbug.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Maria Sophia@mariasophia@comprehension.com to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Tue May 12 09:03:51 2026
    From Newsgroup: comp.mobile.android

    Roger Mills wrote:
    I can get as far as #3 and can get IP address, port and pairing code

    But I don't understand #4 - Pair and connect
    Where are the adb pair and adb connect commands entered - on the phone
    (if so where?) or on the PC (if so where). My PC doesn't seem to
    understand the command 'adb' when entered at a command prompt!

    Hi Roger,

    Thanks for trying to connect your phone to your PC because it's wonderful
    to be able to completely control your phone over USB or Wi-Fi from a PC.

    While I used adb since my first Android phone, I've been using scrcpy
    mirroring since Android 8, so I forget that a simple setup is required
    if someone is starting from scratch to PC mirror Android over Wi-Fi.

    While adb has been on the PC since Android 1.0, the wireless debugging capability only started in Android 11, which means most of us cut our teeth
    on the simpler USB adb connections before graduating to the Wi-Fi method.

    If you've never used adb before, my heartfelt suggestion is to first get
    used to adb (and screen copy) by tethering your phone by USB to your PC.
    a. My recommendation is first to get USB tethering to work
    b. Then, I recommend you get adb to work from the PC to the phone
    c. After that, I recommend you get screen copy to work on the PC

    Those are trivial setup steps which you do once in the phone's lifetime.

    The first thing you need to do is install the open source adb on your PC.
    *How to install ADB on Windows, macOS, and Linux*
    <https://www.xda-developers.com/install-adb-windows-macos-linux/>

    Note that you do NOT need the entire Android Studio SDK toolkit (which contains the adb executable). You only need the very small adb directory.

    Then, the connection steps are this simple:
    1. On the phone, turn developer options on & connect by USB to your PC
    2. On the PC, run "adb devices"
    3. That should report that the PC adb connected to your phone over USB

    If the phone doesn't "talk" to the PC over USB, then do a bit of debugging.
    *Resolve USB connection issues*
    <https://developer.android.com/studio/run/device>

    Once the phone is talking to the PC, it's time to turn Developer options
    on, on the phone, which is trivial and you do it once per phone lifetime.

    Almost everyone I know turns Developer options on the instant they get
    a new Android device, but if you need instructions, here is a link.
    *Configure on-device developer options*
    <https://developer.android.com/studio/debug/dev-options>

    While adb runs on Android (where it's called "local" adb, or ladb), the concept is to run adb on your PC (Linux/Mac/Windows) to work the phone.

    Once you get used to running adb on the PC over USB to control your phone, then you're ready for the screen copy step, to mirror your phone on the PC.
    <https://github.com/Genymobile/scrcpy>

    While screen copy is one of the greatest efficiency tools on the planet, there's so much to it that you'll want to practice mirroring for a while.

    Luckily, scrcpy simply piggybacks off of the adb stuff you did above:
    1. Connect the phone by USB to the PC
    2. adb devices (this establishes the adb connection)
    3. scrcpy (this mirrors the phone onto your PC)

    It's that simple when you've gotten through the shallow learning curve.
    At that point, you completely control the phone from the PC over USB.

    Once you are comfortable mirroring the phone onto your PC, at that point
    you are ready to cut the cord and run adb wirelessly over your LAN.
    *How to use wireless ADB on your Android phone or tablet*
    <https://www.androidpolice.com/use-wireless-adb-android-phone/>

    The pairing, at that point, is just the simple steps I outlined prior:
    1. On the phone, get the pairing port & code & the connection port
    2. adb pair 192.168.1.2:40005 450824 (your port, code & IP will vary)
    3. adb connect 192.168.1.2:46003 (your port & IP will vary)

    Here are the five-minute instructions for setting that up. <https://www.reddit.com/r/androiddev/comments/163adkt/how_to_create_an_adb_completely_wirelessly_in_5/>

    If you have issues, just ask as almost everyone I know who has Android completely controls their phone from the PC using adb over USB or Wi-Fi.
    --
    The nice thing about Usenet are the good ideas from kind helpful people.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Maria Sophia@mariasophia@comprehension.com to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Tue May 12 09:15:34 2026
    From Newsgroup: comp.mobile.android

    Kerr-Mudd, John wrote:
    The USB method is the simplest (and most reliable) overall.
    a. Connect the phone to the PC via USB

    a.1. find the USB driver. discover it needs a newer os than you have.
    cry.
    discover it keeps trying to load something that it can't find
    when you try to charge the phone from your PC EVERY TIME
    DNAMHIKT.


    Hi Kerr-Mudd, John

    Even trivial tasks, if they're new to people who lack troubleshooting
    skills, become hard for them, so I've kindly snapped these screenshots to
    help others mirror their Android onto their PC for full control over Wi-Fi.

    <https://i.postimg.cc/hjj3tFR9/scrcpy34.jpg> Manage Android from Windows
    <https://i.postimg.cc/pr8NPNKs/scrcpy33.jpg> sndcpy is the default now
    <https://i.postimg.cc/zGNNXftK/scrcpy32.jpg> ADB port errors creep up
    <https://i.postimg.cc/KvTvtMS8/scrcpy31.jpg> HNS stop/start solution
    <https://i.postimg.cc/WbpYsfqg/scrcpy30.jpg> Windows Update is the problem
    <https://i.postimg.cc/Hs1ZZ5H0/scrcpy29.jpg> net stop hns & net start hns
    <https://i.postimg.cc/pdyTjwnT/scrcpy28.jpg> Android assigns random ports
    <https://i.postimg.cc/25XrGW9R/scrcpy27.jpg> Nobody can find locked ports
    <https://i.postimg.cc/Dz1rcpDX/scrcpy26.jpg> Windows Update locks ports
    <https://i.postimg.cc/tgvzsMRm/scrcpy25.jpg> Connect over Wi-Fi sans USB
    <https://i.postimg.cc/Hnw59ZHm/scrcpy24.jpg> Compare Vysor to scrcpy
    <https://i.postimg.cc/mrz6gJpC/scrcpy23.jpg> Android SMS/MMS on Windows
    <https://i.postimg.cc/c4Wq5x9j/scrcpy22.jpg> Vysor IP address option
    <https://i.postimg.cc/9FJMKYch/scrcpy21.jpg> Windows Drive: === Android
    <https://i.postimg.cc/Y9jbTtcN/scrcpy20.jpg> Start /b as a CMD works! :)
    <https://i.postimg.cc/3R6nTz7s/scrcpy19.jpg> Start /b TARGET fails :(
    <https://i.postimg.cc/Y93b1z0n/scrcpy18.jpg> Free Automation APKs
    <https://i.postimg.cc/bvRXdbxg/scrcpy17.jpg> AutoIT & IFFT & Automate
    <https://i.postimg.cc/5NrK7jtg/scrcpy16.jpg> powershell hide-console trick
    <https://i.postimg.cc/g2yNftw0/scrcpy15.jpg> Trick to pin batch shortcut
    <https://i.postimg.cc/XqZsmVFM/scrcpy14.jpg> AppPath & shortcut TARGET
    <https://i.postimg.cc/CxXH6N2r/scrcpy13.jpg> No scrcpy console window!
    <https://i.postimg.cc/yYKNnHxD/scrcpy12.jpg> REG test of showwin.lnk
    <https://i.postimg.cc/7LWJhWxq/scrcpy11.jpg> Shortcut test of showwin.lnk
    <https://i.postimg.cc/fyWw2nXh/scrcpy10.jpg> The console came up :(
    <https://i.postimg.cc/66Gn2t2g/scrcpy09.jpg> REG test of showwin.bat
    <https://i.postimg.cc/nV6K0Cfn/scrcpy08.jpg> CMD test of showwin.bat
    <https://i.postimg.cc/hjkVFyqJ/scrcpy07.jpg> Android mnt as drive letter
    <https://i.postimg.cc/Sx1hgWmY/scrcpy06.jpg> Press two hardware buttons
    <https://i.postimg.cc/wvsbcNBz/scrcpy05.jpg> Drag APK from Windows
    <https://i.postimg.cc/Y00vx4yp/scrcpy04.jpg> Extraneous cmd window (&)
    <https://i.postimg.cc/Vvrq0K0m/scrcpy03.jpg> The efficient setup explained
    <https://i.postimg.cc/tTmdgKTB/scrcpy02.jpg> An efficient program setup
    <https://i.postimg.cc/N0G1TXcZ/scrcpy01.jpg> Mirror Android on any PC

    If people wish to mirror their iOS devices, I just as kindly snapped these screenshots of controlling the iOS device (less so) from the PC with Vysor.

    <https://i.postimg.cc/xdSMtBkn/vysor36.jpg> scrcpy vs Vysor resolution
    <https://i.postimg.cc/TYvqdxCT/vysor35.jpg> iOS & Android PC mirroring
    <https://i.postimg.cc/k5gv0yw8/vysor34.jpg> Apple iOS & Android mirroring
    <https://i.postimg.cc/Njg6Xx3V/vysor33.jpg> Preparing Vysor on device
    <https://i.postimg.cc/xjz3V8Gs/vysor32.jpg> ScrCpy vs Vysor PC mirror
    <https://i.postimg.cc/k4K8dZqv/vysor31.jpg> Random MAC address is static
    <https://i.postimg.cc/nchSVcmS/vysor30.jpg> Static/Reserved IP address
    <https://i.postimg.cc/XqrD5Hqm/vysor29.jpg> Removing Apple iTunes crap
    <https://i.postimg.cc/KYbVWDp3/vysor28.jpg> Nuking Apple shitware 1 by 1
    <https://i.postimg.cc/MGbkZFfY/vysor27.jpg> The bloatware is everywhere
    <https://i.postimg.cc/hP6R2xqV/vysor26.jpg> iTunes crapware won't install
    <https://i.postimg.cc/fTy57WSY/vysor25.jpg> Best iOS drivers installed
    <https://i.postimg.cc/3wmtyL46/vysor24.jpg> Apple Device working properly
    <https://i.postimg.cc/tCvS8nGr/vysor23.jpg> iPad is connected to Win10
    <https://i.postimg.cc/Kz7pW9mL/vysor22.jpg> Apple Win10 iOS drivers suck
    <https://i.postimg.cc/QdVPMkqG/vysor21.jpg> Apple iPad on Win10 over USB
    <https://i.postimg.cc/J7cSYhhg/vysor20.jpg> Classic Apple error 2502
    <https://i.postimg.cc/yxP5DL5B/vysor19.jpg> Classic Apple error 2503
    <https://i.postimg.cc/V6X28fWJ/vysor18.jpg> Apple Mobile Device Support
    <https://i.postimg.cc/ZqB1wF9F/vysor17.jpg> Install Apple AMDS engine
    <https://i.postimg.cc/Jzdf3dhz/vysor16.jpg> Classic Apple Error Code 2503
    <https://i.postimg.cc/c4TyCJyY/vysor15.jpg> Apple Mobile Device Support
    <https://i.postimg.cc/SRhF22xL/vysor14.jpg> Connect over the Internet
    <https://i.postimg.cc/bv4jPFXB/vysor13.jpg> Vysor Camera virtual webcam
    <https://i.postimg.cc/XvPnJY5x/vysor10.jpg> Vysor Windows Virtual Camera
    <https://i.postimg.cc/wxL9qHjc/vysor11.jpg> Vysor searches for Android/iOS
    <https://i.postimg.cc/2S2zsw8s/vysor09.jpg> Classic Apple Error code 2503
    <https://i.postimg.cc/sg6r6gTy/vysor12.jpg> Vysor easily finds Android
    <https://i.postimg.cc/yYCYcxbb/vysor08.jpg> Apple Mobile Device Support
    <https://i.postimg.cc/Y2WCvYbF/vysor07.jpg> iOS requires Apple AMDS kluge
    <https://i.postimg.cc/ydJYXZKw/vysor06.jpg> Remote mirror over the net
    <https://i.postimg.cc/d0V03fxQ/vysor05.jpg> Vysor Internet mirroring
    <https://i.postimg.cc/XY3qSqKC/vysor04.jpg> Vysor ADB USB setup switches
    <https://i.postimg.cc/v8gc5pHc/vysor03.jpg> Vysor remote sharing
    <https://i.postimg.cc/V6TPYG3h/vysor02.jpg> Vysor console operation
    <https://i.postimg.cc/QNwjsCDM/vysor01.jpg> Vysor Android/iOS PC mirroring

    As always, I've invested the energy into kindly helping other people.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Wed May 13 04:37:04 2026
    From Newsgroup: comp.mobile.android

    On Tue, 12 May 2026 13:00:47 +0100, Kerr-Mudd, John wrote:

    a.1. find the USB driver. discover it needs a newer os than you have.
    cry.

    DoesnrCOt your OS have a proper USB stack built-in?
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Paul@nospam@needed.invalid to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Wed May 13 05:08:35 2026
    From Newsgroup: comp.mobile.android

    On Wed, 5/13/2026 12:37 AM, Lawrence DrCOOliveiro wrote:
    On Tue, 12 May 2026 13:00:47 +0100, Kerr-Mudd, John wrote:

    a.1. find the USB driver. discover it needs a newer os than you have.
    cry.

    DoesnrCOt your OS have a proper USB stack built-in?


    Does every USB device follow standards ?
    The answer is NO. There is at least one device
    family that "just did what it felt like".

    USB also has two code points for "custom". It's
    always had that. If such a device shows up, then
    the driver must be included by the company selling it.

    The other drivers are Class drivers and include a
    set of quirks. Both Linux and Windows do that. Gather up all
    the crappy, close to standard devices, any behavioral
    quirks are captured in code. If your eTron or Fresco host
    misbehaves, there is code for that. You will notice for
    some of the SmartPhones, the manufacturer didn't even
    get their hands dirty, and MCCI wrote the driver under
    contract. MCCI even wrote the driver for some of the
    Asmedia chips (various USB hosts, who knows, even the
    USB4 stuff might be like that now).

    The smartphone is a USB OTG interface, capable of acting
    as a host or as a peripheral. What I've been able to
    ascertain by looking at the drivers, is they look
    like they might be for that purpose, for dealing with
    an OTG device. It's a framework driver of some sort
    (a wrapper to be used by a developer to package their goods),
    and likely in WinXP era, those drivers were there
    for a reason, now they might be getting close to being
    Intel-style "null" drivers (add a text string to your
    Device Manager display).

    A person using UsbTreeView may be able to look
    at the config space of their SmartPhone and tell
    you more. I don't have a SmartPhone so cannot comment
    further on what is in there.

    https://www.uwe-sieber.de/usbtreeview_e.html

    To give some idea of the <cough> status of Microsoft Windows,
    Microsoft rewrote the Bluetooth stack from scratch. This
    was at least partially intended to flush third party Bluetooth
    stacks out of the system. For example, TCP/IP over Bluetooth,
    might not have been working two or three years ago, but it works
    now (you can do ICS over it). You no longer have to use the
    FTP-like protocol of Fsquirt to transfer a file (which is a
    cross-platform thing). I can have a 75KB/sec networking stack
    over Bluetooth now. That's an example of a protocol stack that
    has grown over a fair number of years. The progress was
    relatively slow.

    At the current time, Microsoft is "containerizing" drivers,
    the OS is three dimensional, you can have drivers crashing
    now, you can't even tell it is happening (there is no
    "kernel panic"). Only by looking at a log can you see
    "something has a problem". RealTek NICs are handled this
    way, and NVidia video drivers too.

    Since the NVidia driver was claimed to cause 30% of the BSODs,
    that's why it was one of the first to be containerized. And that number,
    might be from 10-15 years ago, rather than being the number for
    today.

    At the same time, driver installers which are exploit surfaces,
    are being pruned out by Windows Defender. Defender for example,
    told me to remove an Asus AISuite driver (which would be an older one,
    and it was only there because the Asus installer did not remove it
    on package removal). I removed that by hand no problem. That has the
    equivalent of a "GiveIO.sys" type driver, I thought that had changed
    to an ACPI method at one point, which was supposed to improve the safety of it. A recent "victim" was the "pssmount driver" of Macrium, which got
    identified as a risk (that driver should be used when Macrium mounts
    an .mrimg file for random access of the files inside).

    Two of the print driver ecosystems are frameworks now. Manufacturers
    "fit" their printers into the framework, it's supposed to make
    it easier to handle new printers, without "300MB of a zillion
    custom .dll and .sys", with malformed registry entries inserted
    by HP. Some of that has been cleaned up.

    There are multiple fronts in the driver space, and people
    are still doing useful work on the subject.

    Paul

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Maria Sophia@mariasophia@comprehension.com to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Wed May 13 12:25:58 2026
    From Newsgroup: comp.mobile.android

    Paul wrote:
    USB also has two code points for "custom". It's
    always had that. If such a device shows up, then
    the driver must be included by the company selling it.

    Speaking of USB drivers included by the company selling it...

    Today, for another thread, I looked for pending updates on my non-ESU
    Windows 10 machine, and noticed Samsung update USB drivers, for example.

    PS C:\Windows\system32> Get-WindowsUpdate

    ComputerName Status KB Size Title
    ------------ ------ -- ---- -----
    C ------- KB2267602 1GB Security Intelligence Update for Microsoft Defende...
    C ------- 22KB Microsoft - Other hardware - Microsoft Wireless Ro...
    C ------- 25KB Western Digital Technologies - WDC_SAM - 4.55.25.661
    C ------- 1MB Qualcomm Atheros Communications Inc. - Net - 10.0....
    C ------- 5MB SAMSUNG Electronics Co., Ltd. - AndroidUsbDeviceC...
    C ------- 5MB SAMSUNG Electronics Co., Ltd. - USB - 2.21.0.0
    C ------- 5MB SAMSUNG Electronics Co., Ltd. - Modem - 2.21.0.0
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Kerr-Mudd, John@admin@127.0.0.1 to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Wed May 13 19:31:30 2026
    From Newsgroup: comp.mobile.android

    On Wed, 13 May 2026 05:08:35 -0400
    Paul <nospam@needed.invalid> wrote:

    On Wed, 5/13/2026 12:37 AM, Lawrence DrCOOliveiro wrote:
    On Tue, 12 May 2026 13:00:47 +0100, Kerr-Mudd, John wrote:

    a.1. find the USB driver. discover it needs a newer os than you have.
    cry.

    DoesnrCOt your OS have a proper USB stack built-in?


    Does every USB device follow standards ?
    The answer is NO. There is at least one device
    family that "just did what it felt like".

    USB also has two code points for "custom". It's
    always had that. If such a device shows up, then
    the driver must be included by the company selling it.

    The other drivers are Class drivers and include a
    set of quirks. Both Linux and Windows do that. Gather up all
    the crappy, close to standard devices, any behavioral
    quirks are captured in code. If your eTron or Fresco host
    misbehaves, there is code for that. You will notice for
    some of the SmartPhones, the manufacturer didn't even
    get their hands dirty, and MCCI wrote the driver under
    contract. MCCI even wrote the driver for some of the
    Asmedia chips (various USB hosts, who knows, even the
    USB4 stuff might be like that now).

    The smartphone is a USB OTG interface, capable of acting
    as a host or as a peripheral. What I've been able to
    ascertain by looking at the drivers, is they look
    like they might be for that purpose, for dealing with
    an OTG device. It's a framework driver of some sort
    (a wrapper to be used by a developer to package their goods),
    and likely in WinXP era, those drivers were there
    for a reason, now they might be getting close to being
    Intel-style "null" drivers (add a text string to your
    Device Manager display).

    A person using UsbTreeView may be able to look
    at the config space of their SmartPhone and tell
    you more. I don't have a SmartPhone so cannot comment
    further on what is in there.

    https://www.uwe-sieber.de/usbtreeview_e.html


    Thanks, Paul
    I get

    +++++++++++++++++ Device Information ++++++++++++++++++
    Device Description : CDC Abstract Control Model (ACM)
    Kernel Name (PDO) : \Device\0000009a
    Device ID : USB\VID_04E8&PID_6860&MODEM\6&18FC6CAE&3&0001 Hardware IDs : USB\Vid_04e8&Pid_6860&Rev_0400&Modem USB \Vid_04e8&Pid_6860&Modem USB\SAMSUNG_MOBILE&Modem USB\SAMSUNG_MOBILE&MI_01 USB\Vid_04E8&Pid_6860&MI_01 USB
    \Vid_04E8&Pid_6860&Class_02&SubClass_02&Prot_01 USB \SAMSUNG_MOBILE&Class_02&SubClass_02&Prot_01 Driver KeyName : - Legacy BusType : PNPBus Class : Modem Class
    GUID : {4D36E96D-E325-11CE-BFC1-08002BE10318} (GUID_DEVCLASS_MODEM) Enumerator : USB Location
    Info : - Address : 2 Manufacturer
    Info : - Capabilities : 0x00 (-)
    Status : 0x01802400 (DN_HAS_PROBLEM, DN_DISABLEABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER) Problem Code : 1 (CM_PROB_NOT_CONFIGURED) EnhancedPowerMgmtEnabled : 0
    Power State : D3 (supported: D0, D3, wake from D0, wake from
    D3)

    with a yellow ! ("The required section was not found in the INF)
    clicking "reinstall driver" gets me back to the start

    also

    +++++++++++++++++ Device Information ++++++++++++++++++
    Device Description : SAMSUNG Mobile MTP Device
    Device Path 1 : \\? \USB#Vid_04e8&Pid_6860&MS_COMP_MTP&SAMSUNG_Android#6&18fc6cae&3&0000# {14480d3f-7a47-4a75-aaef-b14f56397153} Device Path 2 : \\? \USB#Vid_04e8&Pid_6860&MS_COMP_MTP&SAMSUNG_Android#6&18fc6cae&3&0000# {6ac27878-a6fa-4155-ba85-f98f491d4f33} (GUID_DEVINTERFACE_WPD) Device Path
    3 : \\? \USB#Vid_04e8&Pid_6860&MS_COMP_MTP&SAMSUNG_Android#6&18fc6cae&3&0000# {f33fdc04-d1ac-4e8e-9a30-19bbd4b108ae} (GUID_DEVINTERFACE_WPD_AUDIO)
    Kernel Name : \Device\0000009c Device ID : USB \VID_04E8&PID_6860&MS_COMP_MTP&SAMSUNG_ANDROID\6&18FC6CAE&3&0000 Hardware
    IDs : USB
    \Vid_04e8&Pid_6860&Rev_0400&MS_COMP_MTP&SAMSUNG_Android USB \Vid_04e8&Pid_6860&MS_COMP_MTP&SAMSUNG_Android USB \SAMSUNG_MOBILE&MS_COMP_MTP&SAMSUNG_Android USB\SAMSUNG_MOBILE&MI_00 USB \Vid_04E8&Pid_6860&MI_00 USB
    \Vid_04E8&Pid_6860&Class_06&SubClass_01&Prot_01 USB \SAMSUNG_MOBILE&Class_06&SubClass_01&Prot_01 Driver KeyName : {EEC5AD98-8080-425F-922A-DABF3DE3F69A}\0000 (GUID_DEVCLASS_WPD)
    Driver : System32\Drivers\wpdusb.sys (Version:
    5.2.3790.3646 Date: 2004-09-22 Company: Microsoft Corporation) Driver
    Inf : C:\WINDOWS\inf\oem72.inf Legacy BusType :
    PNPBus Class : WPD Class GUID : {EEC5AD98-8080-425F-922A-DABF3DE3F69A} (GUID_DEVCLASS_WPD)
    Service : WpdUsb Enumerator : USB Location
    Info : - Address : 2 Manufacturer
    Info : SAMSUNG Electronics Co., Ltd. Capabilities :
    0x84 (Removable, SurpriseRemovalOK) Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE,
    DN_NT_ENUMERATOR, DN_NT_DRIVER) EnhancedPowerMgmtEnabled : 0 Power
    State : D0 (supported: D0, D3, wake from D0, wake from D3)


    Which sort of implies it's doing something, but I don't get to view the
    files on the mobile from the Windows (XP) Explorer.

    NB FU to XP group only.
    --
    Bah, and indeed Humbug.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Wed May 13 21:23:00 2026
    From Newsgroup: comp.mobile.android

    On Wed, 13 May 2026 05:08:35 -0400, Paul wrote:

    On Wed, 5/13/2026 12:37 AM, Lawrence DrCOOliveiro wrote:

    On Tue, 12 May 2026 13:00:47 +0100, Kerr-Mudd, John wrote:

    a.1. find the USB driver. discover it needs a newer os than you have.
    cry.

    DoesnrCOt your OS have a proper USB stack built-in?

    Does every USB device follow standards ? The answer is NO. There is
    at least one device family that "just did what it felt like".

    Still, we are talking about Android phones. When I was first learning
    about Android development over a decade ago, I discovered that
    Microsoft Windows needs a special USB driver to connect the developer
    tools to an Android phone, while Linux does not.

    It appears that is still true today.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Hank Rogers@Hank@nospam.invalid to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Wed May 13 17:33:39 2026
    From Newsgroup: comp.mobile.android

    Lawrence DrCOOliveiro wrote on 5/13/2026 4:23 PM:
    On Wed, 13 May 2026 05:08:35 -0400, Paul wrote:

    On Wed, 5/13/2026 12:37 AM, Lawrence DrCOOliveiro wrote:

    On Tue, 12 May 2026 13:00:47 +0100, Kerr-Mudd, John wrote:

    a.1. find the USB driver. discover it needs a newer os than you have.
    cry.

    DoesnrCOt your OS have a proper USB stack built-in?

    Does every USB device follow standards ? The answer is NO. There is
    at least one device family that "just did what it felt like".

    Still, we are talking about Android phones. When I was first learning
    about Android development over a decade ago, I discovered that
    Microsoft Windows needs a special USB driver to connect the developer
    tools to an Android phone, while Linux does not.

    It appears that is still true today.


    Yes. Linux is absolutely perfect for 99.999% of all people.

    It should be the default operating system on all devices capable or
    running it.

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Paul@nospam@needed.invalid to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Wed May 13 22:53:58 2026
    From Newsgroup: comp.mobile.android

    On Wed, 5/13/2026 5:23 PM, Lawrence DrCOOliveiro wrote:
    On Wed, 13 May 2026 05:08:35 -0400, Paul wrote:

    On Wed, 5/13/2026 12:37 AM, Lawrence DrCOOliveiro wrote:

    On Tue, 12 May 2026 13:00:47 +0100, Kerr-Mudd, John wrote:

    a.1. find the USB driver. discover it needs a newer os than you have.
    cry.

    DoesnrCOt your OS have a proper USB stack built-in?

    Does every USB device follow standards ? The answer is NO. There is
    at least one device family that "just did what it felt like".

    Still, we are talking about Android phones. When I was first learning
    about Android development over a decade ago, I discovered that
    Microsoft Windows needs a special USB driver to connect the developer
    tools to an Android phone, while Linux does not.

    It appears that is still true today.


    In the WinXP era, the MTP driver "arrived" with a certain version
    of Windows Media Player. You could only get the WMP 12 or whatever
    it was, by running a "Genuine Check" before the download would start.
    Since, even today, I still don't have any MTP hardware here,
    I am not able to check any of these details. My digital camera
    is USB Mass Storage, and switches to dumb mode during a file dump.

    Today, they don't do that. WMP is called WMP Legacy now, and if I
    have a Midi file to play, WMP Legacy plays it. And as far as I know,
    no modern downloads are gated by a "Genuine Check" any more.

    We would need to find an article about how the stack is constructed
    for such things. Notice that the enthusiast sites, the staff writers
    just aren't the same as they used to be.

    You'd be better off using an AI to hunt for the details, if you
    were actually interested in the answer. The feedback I get most
    of the time, is people don't like me pasting in AI material
    (as if it would bite them or something).

    *******

    Here is the answer, generated on the Big Machine (CPU, no GPU for inference). This is the first real query, not done on CoPilot. Machine is air-gapped
    during run, answer comes over on a USB stick.

    The "Too Long" "Didn't Read" is this. The phone declares itself
    as Class 0xFF, and only the (custom) Android SDK and adb bus driver
    can solve the 0xFF layer. Microsoft is under no requirement to be including
    a "convenience function" for ANYONES custom USB hardware. Once you go custom, you ship a driver for each and every OS you hope to support. The rest of it seems for the most part to be Class drivers. And/Or, that WinUSB framework thing. Which might well be in-box by now, but in a WinXP era would
    have to be shipped by the phone maker (the license would allow them
    to ship the framework driver, on their dime in terms of downloads).
    And in the WinXP era, that's different than the MTP driver.
    The MTP driver (which is not an MTPfs and does not offer a drive
    letter in File Explorer) would now be a Class driver.

    ******* OpenAI answer (some 58GB or so model) *******

    Below is a "from-the-ground-up" description of the whole Windows side of an AndroidrC>-->rC>PC ADB connection, together with the matching pieces that live on the phone.
    I break it into three layers:

    | Layer | What you see on the PC (Windows) | What lives on the Android device |
    |-------|--------------------------------------------------------------------------|------------------------------------------------------------------|
    | 1 | USB **host controller** driver (EHCI/UHCI/XHCI) + generic USB hub driver | USB **gadget controller** (dwc2, DWC3, etc.) in the kernel |
    | 2 | Windows **USB bus driver stack** -rC> usbport.sys , usbhub.sys ,
    and the **function-specific client driver** ( winusb.sys ) | Android **USB composite framework** ( configfs / android_usb.c ) |
    that builds a *composite* USB device made of several functions
    (MTP, RNDIS, ADB, ...) |
    | 3 | UserrCamode **ADB transport**
    ( adb.exe , adb.exe --> adb.dll --> WinUSB API) | Android **ADB function** ( function_adb.c ) that implements |
    the vendorrCaspecific USB interface and forwards packets
    to the adbd daemon |

    Below is a step-by-step walk-through of each layer, the exact descriptors that are exchanged, and the driver files that Windows loads.

    ## (1) USB Host Controller & Hub (Windows kernel)

    | Component | File / Driver | Role |
    |-----------------------------------------------|----------------------------------------------------------------|---------------------------------------------------|
    | **Host controller** (EHCI/UHCI/XHCI) | usbport.sys (generic), plus vendorrCaspecific mini-port driver
    ( ehci.sys , uhci.sys , xusb.sys ) | Implements the PCI/PCIe host-controller interface |
    and talks to the physical USB port. |
    | **Root hub** | Part of the same mini-port driver | Exposes a virtual hub (portrC>0) that
    Windows enumerates as "USB Root Hub". |
    | **External hubs** (if you plug through a hub) | usbhub.sys | Manages downstream ports,
    forwards enumeration requests. |

    When you connect the phone, the host controller detects a new device on one of its ports and notifies
    the USB bus driver ( usbport.sys ). The bus driver creates a **device object** for the phone
    (e.g., USB\VID_18D1&PID_4EE7 ) and starts the enumeration process.

    ---
    ## (2) Windows USB Bus Driver Stack + Function-Specific Client

    ### 2.1 Enumeration - Descriptors that Android presents

    Android phones expose a **composite** device. The first configuration descriptor contains several interfaces;
    each interface has its own class/subclass/protocol fields.

    Typical descriptors for a phone that supports *MTP* and *ADB* (the exact numbers vary by OEM, but
    the pattern is the same):

    | Interface | bInterfaceClass | bInterfaceSubClass | bInterfaceProtocol | Typical Usage |
    |------------------|----------------------------|----------------------------|--------------------|------------------------------------|
    | MTP / PTP | 0x06 (Imaging) | 0x01 (Still Image Capture) | 0x01 (PTP) | File transfer via Windows Explorer |
    | RNDIS (optional) | 0xEF (Miscellaneous) | 0x02 (Common Class) | 0x01 (RNDIS) | Ethernet-over-USB |
    | **ADB** | **0xFF (Vendor-Specific)** | **0x42** | **0x1** | Debug bridge |

    The ADB interface is the only one that matters for adb.exe . It uses:

    * **Two bulk endpoints** - EPrC>IN (device --> host) and EPrC>OUT (host --> device).
    *Typical endpoint numbers*: 0x01 (OUT), 0x81 (IN).
    * **MaxPacketSize**: 512rC>bytes for fullrCaspeed, 1024rC>bytes for highrCaspeed.

    Because the class is 0xFF , Windows does **not** have a builtrCain driver that will bind automatically.
    Instead the Android SDK ships an INF file ( android_winusb.inf ) that tells Windows to associate
    this interface with the generic **WinUSB** client driver.

    ### 2.2 Driver binding on Windows

    1. **INF file** - android_winusb.inf (installed by the "Google USB Driver" package).

    %SingleAdbInterface% = WINUSB, USB\VID_18D1&PID_4EE7&MI_01

    The INF matches on the vendor ID ( 0x18D1 for GooglerCaowned devices; OEMs use their own VID) and the interface number (MI_XX).

    2. **Client driver** - winusb.sys .
    WinUSB is a generic "function-client" driver that exposes the bulk endpoints to user mode
    through the **WinUSB API** ( WinUsb_* functions).

    3. **Device stack after binding**

    +---------------------------+
    | User-mode ADB client |
    | (adb.exe --> adb.dll) |
    +------------+--------------+
    |
    v
    +---------------------------+
    | WinUSB client driver |
    | winusb.sys |
    +------------+--------------+
    |
    v
    +---------------------------+
    | USB bus driver stack |
    | usbhub.sys, usbport.sys |
    +------------+--------------+
    |
    v
    +---------------------------+
    | Host-controller mini-port|
    | (ehci/uhci/xhci) |
    +---------------------------+

    When the INF is installed, Windows creates a **device interface** of
    class GUID {88BAE032-5A81-49F0-BC3D-A4FF138216D6} (the WinUSB "Device Interface").
    adb.exe opens this interface with CreateFile("\\\\.\\usb#vid_18d1&pid_4ee7#...")
    and then calls WinUsb_Initialize , WinUsb_ReadPipe , WinUsb_WritePipe .

    ### 2.3 Optional "CompositerCadriver" (for MTP/PTP)

    If you also want Windows Explorer to see the phone as a media device, the same composite device contains an **MTP** interface whose class/subclass/protocol are recognized
    by the built-in **Windows Portable Devices (WPD)** driver ( wpdusb.sys ). That driver binds
    in parallel with WinUSB; both drivers share the same physical USB device but own different interfaces.

    ---
    ## (3) UserrCamode ADB Transport on Windows

    | Component | File / Library | What it does |
    |-----------------------------|------------------------------------|---------------------------------------------------------------|
    | adb.exe (client) | Part of Android SDK platform-tools | Parses command line, opens a **transport** to the device. |
    | adb.dll (or built-in code) | Linked into adb.exe | Implements the *ADB protocol* on top of the WinUSB I/O calls. |
    | WinUsb_* API | winusb.sys + setupapi.dll | Sends/receives raw USB bulk packets. |

    **Protocol flow**

    1. **Connect** - adb.exe opens the WinUSB handle, then sends an *ADB "host-connect"* packet (0x4e 0x58 ...) on the OUT bulk pipe.
    2. **Handshake** - The device replies with a *"device-online"* banner ( "OKAY" + version).
    3. **Command packets** - Each ADB command is framed as: <len(4)> <command> .
    The payload (e.g., shell:logcat ) travels over the bulk pipes in both directions.
    4. **Multiplexing** - When multiple devices are attached, each gets its own WinUSB handle;
    adb.exe enumerates them via the device interface GUID.

    If you run adb devices , the client asks the WinUSB driver for the list of opened interfaces and prints their serial numbers (which the phone provides through the *ADB function*).

    ---
    ## AndroidrCaside Stack - How the Phone Presents that Interface

    | Layer | Kernel component | What it does |
    |--------------------------------|------------------------------------------|-----------------------------------------------------|
    | **a. USB Gadget controller** | dwc2 or dwc3 driver (e.g., dwc3.0 ) | Exposes a *USB device* on the physical connector;
    registers as usb_gadget . |
    | **b. Composite framework** | configfs
    ( /sys/kernel/config/usb_gadget/... )
    + android_usb.c | Builds a **composite gadget** with several functions
    (MTP, RNDIS, ADB). Each function is represented by a
    directory under /config/ and gets its own
    interface number. |
    | **c. ADB function** | function_adb.c ( adb.c ) | Registers a **vendorrCaspecific USB function**:
    classrC>0xFF, subclassrC>0x42, protocolrC>0x01;
    creates two bulk endpoints (maxpacket 512/1024).
    It implements the *USB endpoint callbacks* that copy
    data between the hostrCOs bulk pipe and an
    internal kernel FIFO. |
    | **d. Userspace daemon** | adbd (in /system/bin/adbd ) | Listens on a kernel socket ( /dev/android_adb )
    created by the ADB function; when WinUSB writes data,
    the function driver pushes it into this socket, where
    adbd reads it, parses the ADB protocol, and spawns
    services (shell, logcat, sync, etc.) |
    | **e. Optional mode switching** | "PTP", "MTP", "RNDIS", "Charging only" | The Android UI ( Settings --> Developer options
    --> USB configuration ) writes to
    /sys/class/android_usb/android0/functions to change
    the list of active functions. When you select
    *"ADB only"* the composite contains just the
    ADB function; when you select *"MTP + ADB"* both
    interfaces are present, etc. |

    ### How the modes appear on Windows

    | Android UI selection | Interfaces exported |
    |----------------------|---------------------------------------------------------------------------------------|
    | **Charging only** | No USB functions --> Windows sees a simple USB Device (unknown); no driver installed. |
    | **MTP** | Imaging interface (classrC>0x06). Windows loads wpdusb.sys . |
    | **PTP** | Same as MTP, different subclass/protocol. |
    | **RNDIS** | Miscellaneous class; Windows loads the RNDIS driver ( rndismp.sys ). |
    | **ADB only** | Single vendor-specific interface --> WinUSB via android_winusb.inf . |
    | **MTP + ADB**,
    **RNDIS + ADB**,
    etc. | Composite: multiple interfaces, each bound to
    its appropriate client driver (WPD, RNDIS, WinUSB). |

    When the function list changes, the kernel's USB gadget core sends a *"configuration change"* event down
    to the host; Windows re-enumerates the device and may load/unload drivers accordingly. This is why you
    sometimes see "Device disconnecting..." in Device Manager when you switch the phone's USB mode.

    ---
    ## TL;DR rCo The complete driver stack (Windows side)

    +----------------------------------------------------------------+
    | User-mode ADB client (adb.exe) |
    | rooroC WinUSB API (WinUsb_*) --> winusb.sys | +-------------------+--------------------------------------------+
    |
    v +----------------------------------------------------------------+
    | USB Bus Driver Stack |
    | usbhub.sys <-- usbport.sys (EHCI/UHCI/XHCI mini-port driver) | +-------------------+--------------------------------------------+
    |
    v +----------------------------------------------------------------+
    | Host Controller hardware (PCIe EHCI / XHCI) | +----------------------------------------------------------------+

    Device object created by the bus driver:
    USB\VID_18D1&PID_4EE7&MI_01 <-- matches android_winusb.inf --> binds to winusb.sys


    And on the phone:

    dwc3 (USB gadget controller)
    rooroC configfs composite framework
    roLroC function_adb (class 0xFF, subclass 0x42, protocol 0x01)
    roe rooroC bulk EP IN/OUT --> kernel FIFO --> /dev/android_adb socket
    roLroC function_mtp ...
    rooroC function_rndis ...
    adbd daemon <-- reads/writes from /dev/android_adb and implements the ADB protocol

    That is the precise technical picture of how an Android phone presents
    an **ADB** interface to a Windows PC, what drivers are loaded on each
    side, and how the different USB "modes" are realised by adding or
    removing functions in the composite gadget.

    ******* END: OpenAI answer (some 58GB or so model) *******

    Runtime, about four minutes or so. Indicator at the bottom
    of the window said "Low reasoning", which might be why the
    answer came back quickly. The machine might not be big enough
    for any other flavor or reasoning :-)

    Paul
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Maria Sophia@mariasophia@comprehension.com to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Thu May 14 15:26:32 2026
    From Newsgroup: comp.mobile.android

    Paul wrote:
    +----------------------------------------------------------------+
    | User-mode ADB client (adb.exe) |
    | aC WinUSB API (WinUsb_*) --> winusb.sys |
    +-------------------+--------------------------------------------+
    |
    v +----------------------------------------------------------------+
    | USB Bus Driver Stack |
    | usbhub.sys <-- usbport.sys (EHCI/UHCI/XHCI mini-port driver) |
    +-------------------+--------------------------------------------+
    |
    v +----------------------------------------------------------------+
    | Host Controller hardware (PCIe EHCI / XHCI) |
    +----------------------------------------------------------------+

    Device object created by the bus driver:
    USB\VID_18D1&PID_4EE7&MI_01 <-- matches android_winusb.inf --> binds to winusb.sys


    And on the phone:

    dwc3 (USB gadget controller)
    aC configfs composite framework
    aC function_adb (class 0xFF, subclass 0x42, protocol 0x01)
    U aC bulk EP IN/OUT --> kernel FIFO --> /dev/android_adb socket
    aC function_mtp ...
    aC function_rndis ...
    adbd daemon <-- reads/writes from /dev/android_adb and implements the ADB protocol

    That is the precise technical picture of how an Android phone presents
    an **ADB** interface to a Windows PC, what drivers are loaded on each
    side, and how the different USB "modes" are realised by adding or
    removing functions in the composite gadget.


    Hi Paul,

    Being an empirical person, I don't understand a damn word of what AI/LLM
    wrote above, but what I do know is I controlling the phone over the LAN.
    adb pair 192.168.1.4:42487 985415
    adb connect 192.168.1.4:35093
    scrcpy-noconsole.vbs

    That last step displays my phone onto the PC two feet tall, but is extra.
    You only use it if you want to graphically control the phone from the PC.

    I can push/pull any files I want to back & forth over Wi-Fi using adb:
    adb pull "/storage/0000-0001/DCIM/Camera/file.jpg" "C:\tmp\file.jpg"

    While adb can easily copy the entire DCIM directory, for example:
    adb pull "/storage/0000-0001/DCIM/Camera/" "C:\tmp

    Unfortunately adb sucks at wildcards.
    for /f "tokens=*" %i in ('adb shell "ls /storage/0000-0001/DCIM/Camera/20260514_*.jpg"') do adb pull "%i" "C:\tmp\20260514"

    On the other hand, if it's an APK, then scrcpy will install it simply
    by us sliding it over from the PC file manager to the mirror image.

    If it's a split APK, then it ends up on the phone's download folder.
    Then we can install it from the PC by tapping on it in the mirror.

    However, we can also install split apks using adb -multiple:
    adb install-multiple base.apk config.arm64_v8a.apk config.xxhdpi.apk

    All this "just works" for me, although I must have had a learning curve
    when I first started connecting Android to Windows a decade or so ago.

    Here are some screenshots of adb working on the PC with Android over
    both Wi-Fi and over USB, with and without Scrcpy & Vysor mirroring.
    <https://i.postimg.cc/9M0Tqzm6/adb01.jpg> Wireless debugging option
    <https://i.postimg.cc/hPVtkTXK/adb02.jpg> Boot turns W/L debug off
    <https://i.postimg.cc/Dyy7rWYd/adb03.jpg> Activity requires permission
    <https://i.postimg.cc/wTfg06CK/adb04.jpg> WiFi Calling on/off Activity
    <https://i.postimg.cc/Gm4rfWR4/adb05.jpg> Some Activities fail to run
    <https://i.postimg.cc/3xz7Qtrn/adb06.jpg> Run Activity from Termux
    <https://i.postimg.cc/W3vvhtkZ/adb07.jpg> Activity = Bad Component Name
    <https://i.postimg.cc/9X1hQmF4/adb08.jpg> Starting Intent with -n
    <https://i.postimg.cc/zB5sqMsS/adb09.jpg> Same Intent different name
    <https://i.postimg.cc/rwb9Mrr8/adb10.jpg> WiFi settings overview
    <https://i.postimg.cc/xTqWjL47/adb11.jpg> WiFi control history
    <https://i.postimg.cc/R0x8TyZ5/adb12.jpg> Using an Activity Inspector
    <https://i.postimg.cc/d0dcz022/adb13.jpg> Adb using -a for wifi Intents
    <https://i.postimg.cc/sxn4F1WS/adb14.jpg> Wi-Fi Calling Activity
    <https://i.postimg.cc/ZK9B82gP/adb15.jpg> adb pair [IP][Port] [code]
    <https://i.postimg.cc/SRRXtvKh/adb16.jpg> Android 12 Wireless Pairing
    <https://i.postimg.cc/CLWZmJT3/adb17.jpg> Allow wireless debugging
    <https://i.postimg.cc/rmBHmvtV/adb18.jpg> Windows adb vysor & scrcpy
    <https://i.postimg.cc/CLyK8z9v/adb20.jpg> Both vysor & scrcpy use adb
    <https://i.postimg.cc/qRhkhTwV/adb21.jpg> Android Wireless-debugging tile
    <https://i.postimg.cc/zfLp8b2v/adb22.jpg> Windows Ctrl-Z,bg workaround
    <https://i.postimg.cc/85FwbwfX/adb23.jpg> USB needed before Android 11
    <https://i.postimg.cc/SRBWNrJ3/adb24.jpg> Android 12 needs no USB
    <https://i.postimg.cc/6p90PBGv/adb25.jpg> C:\> set ANDROID_ADB_SERVER_PORT
    <https://i.postimg.cc/YjBWwCPw/adb26.jpg> setprop service.adb.tcp.port #
    <https://i.postimg.cc/L4bDbk6z/adb27.jpg> scrcpy --tcpip=[IP]:[PORT]
    <https://i.postimg.cc/zDCTY9NS/adb28.jpg> multiple adb connections
    <https://i.postimg.cc/R0BXTMCy/adb29.jpg> multiple pairing connections
    <https://i.postimg.cc/DZV4tcYM/adb30.jpg> Windows pairing debuggers
    <https://i.postimg.cc/436FCYFX/adb31.jpg> Local adb runs on Android
    <https://i.postimg.cc/7YLhtcZL/adb32.jpg> ladb eliminates the PC
    <https://i.postimg.cc/9MSg3sjj/adb33.jpg> Long and short serial formats
    --
    The nice thing about Usenet are the good ideas from kind helpful people.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Thu May 14 22:39:17 2026
    From Newsgroup: comp.mobile.android

    On Wed, 13 May 2026 22:53:58 -0400, Paul wrote:

    On Wed, 5/13/2026 5:23 PM, Lawrence DrCOOliveiro wrote:

    On Wed, 13 May 2026 05:08:35 -0400, Paul wrote:

    On Wed, 5/13/2026 12:37 AM, Lawrence DrCOOliveiro wrote:

    On Tue, 12 May 2026 13:00:47 +0100, Kerr-Mudd, John wrote:

    a.1. find the USB driver. discover it needs a newer os than you
    have. cry.

    DoesnrCOt your OS have a proper USB stack built-in?

    Does every USB device follow standards ? The answer is NO. There
    is at least one device family that "just did what it felt like".

    Still, we are talking about Android phones. When I was first
    learning about Android development over a decade ago, I discovered
    that Microsoft Windows needs a special USB driver to connect the
    developer tools to an Android phone, while Linux does not.

    It appears that is still true today.

    In the WinXP era, the MTP driver "arrived" with a certain version of
    Windows Media Player.

    This is not about rCLthe WinXP erarCY, nor about MTP.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Paul@nospam@needed.invalid to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Thu May 14 20:21:42 2026
    From Newsgroup: comp.mobile.android

    On Thu, 5/14/2026 6:39 PM, Lawrence DrCOOliveiro wrote:
    On Wed, 13 May 2026 22:53:58 -0400, Paul wrote:

    On Wed, 5/13/2026 5:23 PM, Lawrence DrCOOliveiro wrote:

    On Wed, 13 May 2026 05:08:35 -0400, Paul wrote:

    On Wed, 5/13/2026 12:37 AM, Lawrence DrCOOliveiro wrote:

    On Tue, 12 May 2026 13:00:47 +0100, Kerr-Mudd, John wrote:

    a.1. find the USB driver. discover it needs a newer os than you
    have. cry.

    DoesnrCOt your OS have a proper USB stack built-in?

    Does every USB device follow standards ? The answer is NO. There
    is at least one device family that "just did what it felt like".

    Still, we are talking about Android phones. When I was first
    learning about Android development over a decade ago, I discovered
    that Microsoft Windows needs a special USB driver to connect the
    developer tools to an Android phone, while Linux does not.

    It appears that is still true today.

    In the WinXP era, the MTP driver "arrived" with a certain version of
    Windows Media Player.

    This is not about rCLthe WinXP erarCY, nor about MTP.


    That's an example of the perversion of driver availability.

    It doesn't work like that today. MTP is not handled that way today.
    You can plug an MTP device (like a camera), into a USB port and
    copy pictures from it, over MTP.

    And the config space reporting 0xFF class is CUSTOM,
    which is why Microsoft does not provide a Class driver,
    because the device has no Class.

    If the manufacturers submit their driver to WHQL and
    the driver passes inspection, then it can be served
    from catalog.update.microsoft.com .

    But as near as I can determine, the "adb" level of the
    protocol stack, is enabled by the SDK that is available.
    And that's how the 0XFF stage is satisfied. The other
    levels, the modem or rndis levels of the composite device,
    those can be satisfied by either an in-box driver or
    via a catalog.update.microsoft.com driver.

    Paul
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Frank Slootweg@this@ddress.is.invalid to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Fri May 15 15:48:02 2026
    From Newsgroup: comp.mobile.android

    Lawrence D?Oliveiro <ldo@nz.invalid> wrote:
    On Wed, 13 May 2026 05:08:35 -0400, Paul wrote:

    On Wed, 5/13/2026 12:37 AM, Lawrence D?Oliveiro wrote:

    On Tue, 12 May 2026 13:00:47 +0100, Kerr-Mudd, John wrote:

    a.1. find the USB driver. discover it needs a newer os than you have.
    cry.

    Doesn?t your OS have a proper USB stack built-in?

    John was (implicitly) talking about Windows *XP*! See the
    'Followup-To: alt.comp.os.windows-xp' in his May 13 response.

    Does every USB device follow standards ? The answer is NO. There is
    at least one device family that "just did what it felt like".

    Still, we are talking about Android phones. When I was first learning
    about Android development over a decade ago, I discovered that
    Microsoft Windows needs a special USB driver to connect the developer
    tools to an Android phone, while Linux does not.

    It appears that is still true today.

    Nope, it isn't! While it isn't "over a decade ago", I did some adb
    work in June 2019 on Windows 8.1 and I didn't need "a special USB
    driver".

    (My notes specifically say that I did not install the device drivers
    which were part of the "15 seconds ADB Installer" package (<https://xdaforums.com/t/official-tool-windows-adb-fastboot-and-drivers-15-seconds-adb-installer-v1-4-3.2588979/>)).
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Paul@nospam@needed.invalid to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Fri May 15 17:21:39 2026
    From Newsgroup: comp.mobile.android

    On Fri, 5/15/2026 11:48 AM, Frank Slootweg wrote:
    Lawrence D?Oliveiro <ldo@nz.invalid> wrote:
    On Wed, 13 May 2026 05:08:35 -0400, Paul wrote:

    On Wed, 5/13/2026 12:37 AM, Lawrence D?Oliveiro wrote:

    On Tue, 12 May 2026 13:00:47 +0100, Kerr-Mudd, John wrote:

    a.1. find the USB driver. discover it needs a newer os than you have. >>>>> cry.

    Doesn?t your OS have a proper USB stack built-in?

    John was (implicitly) talking about Windows *XP*! See the
    'Followup-To: alt.comp.os.windows-xp' in his May 13 response.

    Does every USB device follow standards ? The answer is NO. There is
    at least one device family that "just did what it felt like".

    Still, we are talking about Android phones. When I was first learning
    about Android development over a decade ago, I discovered that
    Microsoft Windows needs a special USB driver to connect the developer
    tools to an Android phone, while Linux does not.

    It appears that is still true today.

    Nope, it isn't! While it isn't "over a decade ago", I did some adb
    work in June 2019 on Windows 8.1 and I didn't need "a special USB
    driver".

    (My notes specifically say that I did not install the device drivers
    which were part of the "15 seconds ADB Installer" package (<https://xdaforums.com/t/official-tool-windows-adb-fastboot-and-drivers-15-seconds-adb-installer-v1-4-3.2588979/>)).


    A person doing this work, should be able to examine their Device Manager entries, and at least make a start at determining what "drivers" are present.
    I don't have the kit here, to work up a demo.

    Paul
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Maria Sophia@mariasophia@comprehension.com to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Sun May 17 11:13:16 2026
    From Newsgroup: comp.mobile.android

    Since I control the Android from the PC, I also control the packages which
    are installed or removed from the phone, using the PC keyboard to do it.

    However... I removed one too many packages last week.

    Given it seems many people may be afraid of debloating, for fear of
    removing something important or useful and they won't be able to recover, here's just one example of me debloating one SYSTEM package too far.

    I removed about 400 Android SYSTEM packages (see list below).

    One of them was com.samsung.android.app.clockpack
    adb shell pm uninstall --user 0 com.samsung.android.app.clockpack

    What happened was when my screen blanked and I re-opened it, I used to get
    a big fat clock, but now I get nothing but the homescreen (I have no PIN).

    Yet, to bring it back, all I had to do was put it back, since system
    packages usually can't be fully removed in an unrootable USA Samsung.
    adb shell pm install-existing com.samsung.android.app.clockpack

    Voila!
    The clock is back.

    It's that easy.

    Below is a list of over 400 SYSTEM packages that I removed in debloating. (Having to put back just one of them isn't too bad of a penalty to pay.)

    adb shell pm list packages -s -u
    package:com.sec.android.RilServiceModeApp
    package:com.samsung.oda.service
    package:com.sec.android.provider.emergencymode package:com.google.android.overlay.modules.permissioncontroller.forframework package:com.sec.android.iaft package:com.samsung.android.app.telephonyui.esimclient package:com.samsung.android.vtcamerasettings
    package:com.samsung.android.dsms
    package:com.android.dreams.phototable
    package:com.samsung.android.mcfds
    package:com.samsung.android.smartface.overlay package:com.samsung.android.knox.kpecore package:com.samsung.internal.systemui.navbar.sec_gestural_no_hint package:com.android.companiondevicemanager
    package:com.android.cts.priv.ctsshim
    package:com.samsung.android.app.spage
    package:com.samsung.android.lool
    package:com.samsung.android.app.settings.bixby package:com.android.providers.downloads
    package:com.sec.android.app.parser
    package:com.android.bluetoothmidiservice
    package:com.facebook.appmanager package:com.google.android.printservice.recommendation package:com.samsung.android.app.galaxyfinder
    package:com.sec.facatfunction
    package:com.google.android.captiveportallogin package:com.google.android.networkstack
    package:com.android.keychain
    package:com.google.android.overlay.gmsconfig.asi package:com.sec.android.app.DataCreate
    package:com.samsung.ipservice
    package:com.sprint.ms.cdm
    package:com.android.shell
    package:com.samsung.android.accessibility.talkback package:com.google.android.ondevicepersonalization.services package:com.sec.android.app.magnifier
    package:com.android.bookmarkprovider package:com.samsung.android.wifi.softapwpathree.resources package:com.samsung.android.app.contacts package:com.samsung.android.samsungpass
    package:com.osp.app.signin
    package:com.android.sharedstoragebackup
    package:com.android.providers.media
    package:com.android.providers.calendar package:com.android.providers.blockednumber package:com.google.android.documentsui package:com.samsung.android.knox.attestation
    package:com.knox.vpn.proxyhandler
    package:com.samsung.android.smartcallprovider
    package:com.sec.bcservice
    package:com.android.proxyhandler
    package:com.samsung.app.newtrim package:com.google.android.overlay.modules.permissioncontroller package:com.android.emergency
    package:com.google.android.gms.location.history package:com.samsung.android.peripheral.framework package:com.sec.android.app.setupwizardlegalprovider package:com.google.android.gm
    package:com.android.carrierdefaultapp
    package:com.samsung.android.mdx
    package:com.android.backupconfirm
    package:com.samsung.android.mdm
    package:com.google.android.apps.tachyon
    package:com.hiya.star
    package:com.android.mtp
    package:com.sec.android.app.personalization package:com.android.theme.font.notoserifsource package:com.samsung.android.smartface package:com.samsung.android.providers.contacts package:com.samsung.android.bbc.bbcagent package:com.samsung.android.shortcutbackupservice package:com.diotek.sec.lookup.dictionary
    package:com.samsung.android.mcfserver
    package:com.android.wallpapercropper
    package:com.samsung.accessibility
    package:com.samsung.android.app.parentalcare package:com.google.android.overlay.gmsconfig.geotz package:com.android.internal.systemui.navbar.gestural package:com.sec.sprextension
    package:com.android.settings.intelligence package:com.sec.android.app.factorykeystring package:com.samsung.internal.systemui.navbar.sec_gestural package:com.samsung.android.knox.pushmanager package:com.sec.android.app.bluetoothagent package:com.samsung.android.app.watchmanagerstub package:com.google.android.webview
    package:com.google.android.sdksandbox package:com.google.android.cellbroadcastservice package:com.android.internal.systemui.navbar.threebutton package:com.android.egg
    package:com.samsung.android.wifi.softap.resources package:com.samsung.android.aircommandmanager package:com.samsung.android.networkstack package:com.google.android.overlay.modules.modulemetadata.forframework package:com.samsung.android.callbgprovider package:com.sec.android.easyMover.Agent
    package:com.samsung.android.container
    package:com.sec.epdg
    package:com.samsung.android.bluelightfilter package:com.samsung.android.smartsuggestions
    package:com.sprint.ce.updater
    package:com.samsung.android.wcmurlsnetworkstack package:com.google.android.packageinstaller
    package:com.android.se
    package:com.samsung.android.app.clockpack
    package:com.sec.hiddenmenu
    package:com.sec.location.nfwlocationprivacy
    package:com.android.stk
    package:com.samsung.android.mdx.quickboard package:com.sec.android.app.hwmoduletest
    package:com.android.bips
    package:com.google.android.partnersetup package:com.google.android.projection.gearhead package:com.sprint.ms.smf.services
    package:com.mediatek.systemuiresoverlay package:com.sec.android.emergencylauncher package:com.google.android.apps.carrier.carrierwifi package:com.sec.android.easyonehand package:com.samsung.android.setting.multisound package:com.samsung.android.networkstack.tethering.overlay package:com.google.android.feedback
    package:com.sec.unifiedwfc
    package:com.samsung.android.app.taskedge package:com.sec.android.smartfpsadjuster package:com.samsung.android.dck.timesync package:com.sec.android.widgetapp.easymodecontactswidget package:com.sec.android.provider.badge
    package:com.sec.android.app.camera
    package:com.samsung.android.honeyboard
    package:com.samsung.safetyinformation package:com.android.providers.downloads.ui
    package:com.android.ons package:com.google.android.networkstack.tethering.overlay package:com.google.android.nearby.halfsheet package:com.sec.android.app.setupwizard package:com.samsung.android.allshare.service.fileshare package:com.samsung.sec.android.application.csc package:com.google.android.setupwizard
    package:com.sec.mhs.smarttethering
    package:com.android.wifi.resources
    package:com.sprint.w.installer
    package:com.samsung.cmfa.AuthTouch
    package:com.android.simappdialog
    package:com.android.wallpaper.livepicker package:com.samsung.android.dynamiclock package:com.android.internal.display.cutout.emulation.waterfall package:com.sec.app.RilErrorNotifier package:com.samsung.android.privacydashboard package:com.google.android.overlay.modules.ext.services
    package:com.sec.phone
    package:com.samsung.android.location
    package:com.android.traceur
    package:com.samsung.android.app.routines
    package:com.samsung.android.dialer package:com.samsung.android.samsungpassautofill
    package:com.samsung.ims.smk
    package:com.android.location.fused
    package:com.sec.android.app.wlantest package:com.google.android.googlequicksearchbox package:com.google.android.modulemetadata
    package:com.sec.hearingadjust
    package:com.samsung.android.knox.containercore package:com.google.android.ext.services package:com.google.android.configupdater
    package:com.samsung.android.forest
    package:com.sec.factory.cameralyzer
    package:com.samsung.android.messaging package:com.google.android.gms.supervision
    package:com.samsung.ssu
    package:com.samsung.android.smartmirroring
    package:com.samsung.android.authfw
    package:com.samsung.android.ipsgeofence package:com.android.internal.display.cutout.emulation.corner package:com.google.android.gms
    package:com.sec.android.app.soundalive
    package:com.tmobile.pr.mytmobile
    package:com.android.printspooler package:com.samsung.android.service.peoplestripe package:com.samsung.adaptivebrightnessgo
    package:com.samsung.klmsagent
    package:com.facebook.system
    package:com.google.mainline.telemetry
    package:com.samsung.android.hdmapp
    package:com.samsung.android.ardrawing
    package:com.sec.android.app.billing
    package:com.samsung.android.mdx.kit
    package:com.samsung.android.app.dofviewer package:com.samsung.android.da.daagent
    package:com.test.LTEfunctionality
    package:com.android.externalstorage
    package:com.samsung.unifiedtp
    package:com.samsung.android.cmfa.framework
    package:com.android.server.telecom package:com.google.audio.hearing.visualization.accessibility.scribe package:com.samsung.android.wifi.resources package:com.google.android.providers.media.module package:com.samsung.android.svcagent
    package:com.sec.android.gallery3d package:com.samsung.android.widget.pictureframe
    package:com.sec.imslogger
    package:com.sec.automation
    package:com.mediatek.MtkSettingsResOverlay package:com.sec.android.app.servicemodeapp
    package:com.sec.omadmspr
    package:com.samsung.android.calendar
    package:com.wssyncmldm
    package:com.sec.enterprise.mdm.services.simpin package:com.samsung.android.inputshare
    package:com.android.calllogbackup
    package:com.samsung.android.providers.factory package:com.google.android.overlay.modules.cellbroadcastreceiver package:com.sec.android.app.samsungapps package:com.samsung.android.app.appsedge
    package:com.sec.android.diagmonagent
    package:com.sec.android.autodoodle.service package:com.sec.providers.assisteddialing
    package:com.android.dreams.basic
    package:com.android.mms.service package:com.google.android.cellbroadcastreceiver package:com.snap.camerakit.plugin.v1 package:com.samsung.sec.android.teegris.tui_service
    package:com.sec.imsservice
    package:com.samsung.android.net.wifi.wifiguider package:com.samsung.android.app.sharelive package:com.samsung.android.localeoverlaymanager package:com.google.android.adservices.api
    package:com.samsung.android.spayfw
    package:com.samsung.android.themestore
    package:com.android.inputdevices
    package:com.samsung.android.incallui package:com.samsung.android.allshare.service.mediashare package:com.mediatek.FrameworkResOverlayExt
    package:com.sec.sve
    package:com.google.android.onetimeinitializer package:com.google.android.permissioncontroller
    package:com.android.apps.tag
    package:com.samsung.InputEventApp package:com.mediatek.SettingsProviderResOverlay package:com.samsung.android.sdk.handwriting
    package:com.sec.android.sdhms
    package:com.mediatek.apmonitor package:com.google.android.overlay.modules.documentsui package:com.mtk.android.networkstack.tethering.overlay package:com.samsung.android.networkdiagnostic
    package:com.mediatek
    package:com.android.managedprovisioning package:com.mtk.android.networkstack.tethering.inprocess.overlay package:com.sec.android.app.launcher
    package:com.samsung.advp.imssettings package:com.samsung.android.biometrics.app.setting package:com.mediatek.mdmlsample package:com.samsung.android.ConnectivityUxOverlay
    package:com.android.nfc
    package:com.google.android.gsf
    package:com.samsung.knox.securefolder package:com.android.internal.display.cutout.emulation.double package:com.mediatek.frameworkresoverlay
    package:com.sec.epdgtestapp
    package:com.google.android.syncadapters.calendar package:com.samsung.android.cidmanager package:com.google.android.overlay.modules.cellbroadcastservice package:com.samsung.android.scloud
    package:com.android.systemui
    package:com.google.ar.core
    package:com.microsoft.skydrive
    package:com.samsung.android.game.gametools
    package:com.samsung.android.mtp
    package:com.samsung.android.beaconmanager package:com.samsung.android.appseparation package:com.google.mainline.adservices package:com.samsung.android.app.cocktailbarservice package:com.samsung.android.privateshare package:com.monotype.android.font.samsungone
    package:com.samsung.android.video
    package:com.samsung.android.audiomirroring
    package:com.wsomacp
    package:com.android.wallpaperbackup
    package:com.samsung.android.app.soundpicker package:com.samsung.clipboardsaveservice package:com.samsung.android.app.omcagent
    package:com.android.localtransport
    package:com.samsung.SMT
    package:android
    package:com.samsung.cmh
    package:com.mediatek.cellbroadcastuiresoverlay package:com.samsung.android.app.clipboardedge package:com.samsung.android.aware.service
    package:com.tmobile.echolocate
    package:com.sec.android.CcInfo
    package:com.android.pacprocessor
    package:com.sec.android.app.sbrowser package:com.google.android.safetycenter.resources package:com.samsung.android.app.reminder
    package:com.sec.factory.camera
    package:com.sec.enterprise.knox.cloudmdm.smdms package:com.android.internal.display.cutout.emulation.hole package:com.android.settings package:com.android.internal.systemui.navbar.gestural_narrow_back package:com.android.internal.display.cutout.emulation.tall package:com.google.android.networkstack.tethering package:android.autoinstalls.config.samsung package:com.android.cameraextensions
    package:com.sec.android.app.SecSetupWizard
    package:com.sec.location.nsflp2
    package:com.samsung.android.app.telephonyui
    package:com.android.carrierconfig package:com.samsung.android.keycustomizationinfobackupservice package:com.android.internal.systemui.navbar.gestural_wide_back package:com.android.internal.systemui.onehanded.gestural package:com.samsung.android.scs
    package:com.google.android.ext.shared package:com.samsung.android.wifi.h2e.resources
    package:com.android.chrome
    package:com.facebook.services
    package:com.google.android.apps.maps
    package:com.sec.android.app.myfiles package:com.samsung.android.provider.filterprovider package:com.sec.android.app.ve.vebgm
    package:com.samsung.android.app.dressroom
    package:com.google.android.as
    package:com.samsung.android.samsungpositioning package:android.auto_generated_rro_product__ package:com.mtk.google.android.networkstack.tethering.overlay package:com.samsung.android.server.wifi.mobilewips package:com.samsung.android.emergency
    package:com.ironsrc.aura.tmo
    package:com.samsung.android.smartswitchassistant package:com.samsung.android.knox.analytics.uploader package:com.samsung.android.wallpaper.res
    package:com.samsung.android.dqagent
    package:com.samsung.android.arzone
    package:com.samsung.android.fmm
    package:com.microsoft.appmanager
    package:com.android.certinstaller
    package:com.samsung.aasaservice
    package:com.samsung.android.secsoundpicker
    package:com.android.wifi.dialog
    package:com.sec.android.app.safetyassurance package:com.google.android.apps.restore package:com.sec.android.app.chromecustomizations package:com.android.providers.telephony
    package:com.samsung.android.easysetup
    package:com.samsung.android.stickercenter
    package:com.sec.spp.push
    package:com.tmobile.pr.adapt
    package:com.android.providers.settings
    package:com.samsung.faceservice
    package:com.android.phone package:com.android.internal.systemui.navbar.gestural_extra_wide_back package:com.sec.android.app.quicktool
    package:com.google.android.as.oss
    package:com.monotype.android.font.foundation
    package:com.android.vpndialogs
    package:com.android.uwb.resources package:com.google.android.overlay.gmsconfig.photos package:com.google.android.tts
    package:com.sec.android.app.clockpackage
    package:com.mediatek.batterywarning
    package:com.android.htmlviewer
    package:com.samsung.android.app.updatecenter
    package:com.android.vending
    package:com.samsung.android.sdm.config
    package:com.sec.android.daemonapp
    package:com.samsung.android.themecenter package:com.google.android.overlay.modules.captiveportallogin.forframework package:com.samsung.android.aremoji
    package:com.google.android.apps.turbo
    package:com.samsung.android.mobileservice package:com.samsung.android.wifi.p2paware.resources
    package:com.sec.usbsettings
    package:com.google.android.overlay.gmsconfig.gsa package:com.samsung.android.service.stplatform package:com.sec.vsim.ericssonnsds.webapp package:com.android.providers.userdictionary package:com.google.android.overlay.gmsconfig.common package:com.android.cts.ctsshim
    package:com.android.bluetooth
    package:com.samsung.storyservice
    package:com.samsung.android.mateagent
    package:com.android.storagemanager package:com.samsung.internal.systemui.navbar.gestural_no_hint package:com.samsung.android.game.gos package:com.samsung.android.app.smartcapture
    package:com.skms.android.agent
    package:com.samsung.android.ConnectivityOverlay
    package:com.sec.android.soagent
    package:com.samsung.android.fast
    package:com.android.providers.partnerbookmarks
    package:com.amazon.appmanager
    package:com.samsung.android.kidsinstaller
    package:com.mediatek.gbaservice
    package:com.samsung.android.mdecservice
    package:com.mediatek.entitlement.fcm
    package:com.android.dynsystem
    package:com.samsung.android.game.gamehome package:com.samsung.android.providers.media package:com.samsung.android.rubin.app
    package:com.android.hotspot2.osulogin
    package:com.samsung.android.kgclient package:com.google.android.connectivity.resources package:com.sec.android.mimage.photoretouching package:com.google.android.youtube
    package:com.samsung.android.gru
    package:com.samsung.android.scpm
    --
    Every Usenet post should strive to add palpable additional value
    so that we can all delight in dissemination of useful knowledge.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Sun May 17 22:35:20 2026
    From Newsgroup: comp.mobile.android

    On Sun, 17 May 2026 11:13:16 -0600, Maria Sophia wrote:

    Yet, to bring it back, all I had to do was put it back, since system
    packages usually can't be fully removed in an unrootable USA
    Samsung.

    ItrCOs easy enough to back up the .apk files before messing around.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Maria Sophia@mariasophia@comprehension.com to comp.mobile.android,alt.comp.os.windows-10,alt.os.linux on Mon May 18 02:33:26 2026
    From Newsgroup: comp.mobile.android

    Lawrence D'Oliveiro wrote:
    On Sun, 17 May 2026 11:13:16 -0600, Maria Sophia wrote:

    Yet, to bring it back, all I had to do was put it back, since system
    packages usually can't be fully removed in an unrootable USA
    Samsung.

    It's easy enough to back up the .apk files before messing around.

    Hi Lawrence,

    I agree. But (IMHO) most people don't know what we know (AFAICT).
    So most people can't do it. At least not for Google Play Store apps.

    There's so much I could write about those statements that it would take me weeks to finish, so I'm going to just cover the main points about them.

    The first point is I have backed up every APK I've ever installed, so, I
    fully agree with you on the logic of backing up every app ever installed.
    <https://i.postimg.cc/c4PrjSwx/aurora19.jpg>

    Having said that, I wonder how many people out there know how to back up
    APKs? Especially those, like me, who don't have a Google Account set up.
    <https://i.postimg.cc/Bnyr9fP1/account01.jpg>

    The easiest way to back up an APK from the Google Play Store repository is
    to NOT delete it when it is initially installed (e.g., via open source
    google play store app settings such as this one to NOT delete the APK).
    <https://i.postimg.cc/V6tyDpNd/aurora17.jpg>

    The next easiest way is to save the apk (including split apks) after you install them (but then you need to know how to re-install split APKs).
    <https://i.postimg.cc/x19DxMBc/muntashirakon.jpg>

    However, today I was programming an EPS32 where I needed an app that I downloaded off the Google Play Store BEFORE installing it, without having
    an account on the Google Play Store, using a FOSS Google Play Store app.
    <https://play.google.com/store/apps/details?id=org.connectbot>

    Notice I received the split APKs from the Google Play Store repository
    without having a Google Account saving the APK before installing it,
    which is automatically done for me just by using the right programs.
    <https://i.postimg.cc/s2qjyWB9/manual-install.jpg>

    I'd wager one out of a million people know how to do what I just did.
    It's easy to do. But you have to know a lot just to know how to do it.
    --- Synchronet 3.22a-Linux NewsLink 1.2