My ADB GUI App

Flakie’s ADB GUI App

Version 2.1 released 23-Jan-2021

I manage lots of 4K devices for friends (and friends of friends) and family who are less techically minded.
Mostly setting up the alternative launcher and installing apps that are not available from the Amazon Appstore.
Although occasionally a visit is necessary I mostly do this remotely with ADB.
Getting fed up with manually typing the ADB commands and numerous typos I decided to write a simple ADB app to do this.
I used C# to do this using Microsoft Visual Studio 2019.

I included code in the my app to use the scrcpy remote control app.

After a few weeks of learning to code in C# (and with a lot of help on the stackoverflow site), Flakie’s ADB GUI, was born.
The app has been a great success for me and what used to take me hours is now achieved in a few minutes.
There is even an option to save a config file for each device you connect to (IP address, port, settings etc).
Version 2.1 has been released (a bug fix to the v2.0 release).
Version 2 has a a new look and an experimental ADB Shell feature (for manually entering ADB and ADB Shell commands). I say experimental but it works well for most simple commands.
It also has an integration with ngrok (an app that I have configured to access remote ADB devices, through the Internet, without using any port forwarding on a router).
This integration is optional and you can still use port forwarding (or any other remote method) if preferred, or just use on your LAN.
I am working on version 3 and there is a small writeup of the new features and a screenshot of my test version below (so you can get a feel of what it will look like). I aim to have it released in the Summer, 2021.

To really take advantage of my app you should also download the scrcpy app.

Scrcpy ADB Remote Control App

No install is needed for Flakie ADB GUI or scrcpy. Unzip all the files in the scrcpy zip and place in a folder on your PC (I use c:\scrcpy but any folder is ok). For Flakie ADB GUI, Just unzip the exe into the same folder you unzipped scrcpy to (if using scrcpy, else put it in any folder you like).

Version 2.1 has been released. This is primarily a bugfix release.

Version 2.1: Flakie’s ADB GUI App v2.1
The changelog is here:

Version 2.0 is archived: Flakie ADB GUI v2.0
Old version 1 is archived: Flakie’s ADB GUI App v1

ADB Shell Function Limitations

The adb shell feature is experimental (not all functions will currently work):
The following command/switches are not supported and will be stripped out if typed:

logcat (e.g. adb logcat) to view device log will not work.
Use ‘adb bugreport path\file’ instead (e.g. ‘adb bugreport c:\scrcpy\bugreport’) in the new ADB Shell option to save to a zip file.
-R (e.g. adb shell ls -R) to list subdirectories recursively will not work.
su currently causes gui to hang so this has been blocked from being entered (working on it).

Others commands may cause the UI to hang if they pull lots of viewable text data.

New – Version 2.1.0.0 (Released January 23 2021)

Changes in Version 2.1.0.0

  1. Colour scheme changed from grey to blue and white.
  2. Window size increased slightly (to make room for new and future functions).
  3. Some items have been repositioned (to make room for new and future functions).
  4. Ability to maximise and change window size has been removed.
  5. Option to connect to ADB with an ngrok URL (free account only/no custom/subdomains) has been added.
  6. Ability to run custom ADB Shell commands (experimental and with some limitations) has been added.
  7. Video recording with scrcpy has been added. Videos will be saved in a video subfolder of the scrcpy folder (e.g. c:\scrcpy\video).
    Video recorded with scrcpy can set file name and type (mp4 or mkv).
    Date and time is also appended to file name.
  8. The scrcpy window will show IP address and port, or ngrok URL.
  9. Version info has been added to menu option.
  10. Connect to ADB on start has been removed as it caused some performace issues.
  11. Clicking on either of the Load Defaults on Start, Don’t Prompt to Exit or Enable Tooltips will automatically save that setting, as well as any other settings and configration (IP address, port, scrcpy screen resolution etc).

Bug Fixes in Version 2.1.0.0

All discovered and reported bug fixes have been fixed.
New functions may have added new bugs, especially in the ADB Shell feature, (I have fixed all I found). Please report any discovered.
Bugfix for the us region (USA) in ngrok fixed.

Flakie ADB GUI Version 3 – Proposed Release Date: Summer 2021

Version 2 of Flakie ADB GUI app has just been released and I am already working on version 3.
Version 3 also has a few new features.

1. Make ngrok work with paid accounts and custom domains.
2. Extract an apk from you device (and have the option to save it with any file name).
2. Disable an apk on your device (including system apps with some limitations).
3. Enable an apk on your device.
4. List any disabled apk’s on your device.
5. Checkboxes to specify the location of ADB (and scrcpy).
a) Clicking the Env checkbox will attempt to use the environment variable for ADB and automatically save it for future use.
b) Clicking the scrcpy checkbox will attempt to find ADB and scrcpy in the folder you launched the app from and automatically save it for future use. This will be the recommended and most compatible method. If you use the Env option, there is always going to be a possibilty it will not be compatible with scrcpy (not an issue if you do not want to use scrcpy). Of course you can always save the scrcpy version of ADB in the Env variable.

This list is not set in stone and all the featues may not make it to the release and additonal features may be added.

Here is a preview image of how it will most likely look (this is from my test version):

Comments have now been disabled on all pages.
There is new a new forum.
If you would like to make a comment, give feedback or ask for help or advice, please join the forum and post there.
It requires me to approve the registration (which I will be quick to do), but once done you will have full access to post messages and attachments.
Thanks 🙂

35 thoughts on “My ADB GUI App”

  1. Hello,
    Thank you Sir for a Fantastic all in one toolbox.
    Please could you incorporate an option which enables the toolbox to extract a apk from Example: an app installed on the Amazon stick fireTv4 to my computer.
    I know abdlink can perform this feature if you type in certain cmd.
    Example:
    Install the app on your Fire TV as you normally would through the Amazon Appstore.
    Connect to your Fire TV via adblink
    open command terminal
    Run this command to list all of your installed apps:
    pm list packages -3 -f
    If you need to transfer a system app, use this command instead to see all apps: pm list packages -f
    Locate the app you want to transfer in the printed list and copy its file path; the part between the colon (:) and the equal sign (=)
    Run the command: terminal-exit-shell
    Copy the app’s APK file to your computer with the following command:
    adb pull /data/app/com.mojang.minecraftpe-1.apk /Users/Downloads
    Note: Be sure to replace /data/app/com.example.apk with the app location you copied in step 5, and replace /Users/Downloads with the path to a directory on your computer where you can temporarily store the app file.
    I hope you can incorporate this feature into your next revision Sir and I can only thank you for making my life so much easier with your Amazing! toolbox.. BRAVO!
    Best Regards,

    1. Glad you like the app. The ability to extract an APK will exist in the next version (in a couple of months). I have just put up an image of the new v2 version on this page.

      1. Hello,
        That`s Awesome Mate! Really looking forward to the Next revision of your toolbox with the extraction Feature.
        Thank you again for all your work and support.
        Best Regards,

      2. I have tried many times to connect this to my Nvidia Shield with techdocuk instructions and still no connection, any ideals why it won’t connect?

        1. Not sure if this will help: SHIELD can do adb over wifi or ethernet. Enable developer options (settings – dp – about – click on build 7 times) then in developer options there is a specific option to enable adb over network. You don’t need to turn on adb over usb, just the network option.
          I also read this: Settings > Developer options > Debugging – turn on USB debugging, then you can turn on Network debugging.

  2. Hello FLAKIE Great program thanks for your work. Can you explain how to remote control a box or tv outside my home.
    Grettings and happy newyear from Denmark.

    1. Happy new year. Tech doctor is to do a review that may cover this. But in short you need to enable port forwarding on the remote router (the one the remote device is connected through). All routers vary but it will be something like forward external port 5555 to internal port 5555 on the internal IP address of the device (e.g. 192.168.1.2). Better still if you can specify the public IP address of the connecting computer (make it a bit more secure) but not all routers can do this. If you have more than one device at the same remote location just change the external port (to something like 5556) but still forward to port 5555 internally (and of course use the internal IP addresss of the second device).

      1. Tried to remote in via my private VPN (openvpn) but didn’t have any success. My laptop for example 10.1.0.2 and my firestick addressed at 10.1.0.3 port 5555. Firewall is open. All i get is timeout 10060. Connects fine locally.

  3. Fantastic app…works well for my firetv sticks, however, not for my Chromecast with Google Tv. So, how can we make it work Google Tv and also outside my home network?

    Thank you Flakie

    1. Cheers 🙂 For an outside network you need to setup the remote router for port forwarding (see my answer to another comment). Not sure about the Chromecast/Google TV. I do not have one so unable to test.

      1. thanks for your reply…the google tv is now up and running after a several attempts

  4. When attempting to gain remote access. I keep getting this error.
    C:\scrcpy-win64-v1.16\scrcpy-server: 1 file pushed, 0 skipped. 4.0 MB/s (33622 bytes in 0.008s)
    adb.exe: error: more than one device/emulator
    ERROR: “adb reverse” returned with value 1
    WARN: ‘adb reverse’ failed, fallback to ‘adb forward’
    27183
    [server] INFO: Device: Amazon AFTMM (Android 7.1.2)
    INFO: Renderer: direct3d
    INFO: Initial texture: 640×360

  5. I’m using it with a shield and it works great. You have to put it in devoloper mode to turn on ADB dedugging as that’s in the devoloper menu.

  6. Hi and thank you for your tool and your work, my respect!

    Is it possible to use this tool to transfer ordinary files (not apk’s, let’s say text or media files) from my PC to remote android device’s internal memory?

    Thanks,

    1. Cheers 🙂 Yes it is possible. If you open a scrcpy remote control session you can drag and drop any file onto the remote control window and they will be copied to the sdcard folder. Similarly if you drag and drop an apk it will be installed. All this happens silently with no feedback directly. But if you look at the ‘Scrcpy Output’ window in the GUI it is all logged there.

    1. 1/64 engines (Sangfor Engine Zero) detects malware in FlakieADBGUI.zip and 2/64 in scrcpy-win64-v1.17.zip (Sangfor Engine Zero and Ikarus). Both are false positives.

  7. Hi Flakie,

    Your tool is amazing. Have been looking for something like this to help sort remote device over the internet. I haven’t figured out how to do the port forwarding yet for my friends but a quick workaround that has been working so far for me is using Teamviewer on my friends computer then just running the tool from there. Works perfectly so far.

    1. Thanks:
      Port forwrding is not too difficult. Log into their router. Find the port forward option. Forward port 5555 internal and external. Forward to the IP address of their device (something like 192.168.1.10 etc). If the router has an option to enter the IP address of the connecting device, then that would be your routers Internet address (most routers don’t have this option though). But unless you have a static IP I would allow it from all addresses. No one can get access to the device unless he authroizes the connection on the actual device. V2 of my app will be out in a few weeks that has a few bug fixes and a few more features. v3 by the summer will have an option to connect to remote devices (using SSH) without using port forwading but it will involve quite a complicated setup (no easy way to make this happen).

    1. You can already push any file by running scrcpy and then drag/drop a file over the scrcpy window. They will be copied to sdcard folder. If you do this with an apk it will be installed. Pull is in the next release in a few weeks or so.

  8. it is working on my android tv… only to reboot it not getting remote access… or anything else…help me please

      1. flakie ADBgui successfully able to reboot my smart tv…
        but then
        this error come when i click on remote access…

        C:\Users\mypc\OneDrive\Desktop\flak\scrcpy-server: 1 file pushed, 0 skipped. 0.5 MB/s (34930 bytes in 0.062s)
        adb.exe: error: closed
        ERROR: “adb reverse” returned with value 1
        WARN: ‘adb reverse’ failed, fallback to ‘adb forward’
        27183
        Aborted

        1. Unusual. Looks like your device does not support adb reverse or forward.
          What version of Android is it running?

          You could close Flakie ADB and try to run it from a command prompt.
          CD to the directory where adb and scrcpy are located.

          Type:
          adb kill-server
          Then press Return/Enter

          adb connect device-ip
          (where device-ip is your devices local IP address).
          Then press Return/Enter

          Then type:
          scrcpy
          Then press Return/Enter

          If you get the same error it is probably and issue with the Android version on your device, possibly an old version of Android (scrcpy only works on android 5 and above), or a bug in the actual firmware/rom on the device.

  9. still not working 🙁 remote access showing error

    INFO: scrcpy 1.17
    C:\Users\mypc\OneDrive\Desktop\flakie\scrcpy-server: 1 file pushed, 0 skipped. 30.3 MB/s (34930 bytes in 0.001s)
    adb.exe: error: closed
    ERROR: “adb reverse” returned with value 1
    WARN: ‘adb reverse’ failed, fallback to ‘adb forward’
    27183
    Aborted

    1. Maybe later today or tommorrow. Have a little bit of debugging still to do and my dev machine died. Rebuilding with new drive now but takes a while.

  10. Hi Flakie could you give me the instructions to use ngrok to get remote access to the firestick thanks

Comments are closed.