FORUMS
Remove All Ads from XDA

[TOOL] ADB-Overlay [1.15.46.1]

706 posts
Thanks Meter: 667
 
By k1ll3r8e, Senior Member on 13th April 2019, 10:08 PM
Post Reply Email Thread
Heyho together,
after my P9-Lite and P10-Lite toolkit i thought, it's time to build a more generic version. Here it is, the ADB-Overlay!

The main point of this project is to serve a GUI for ADB. Currently, there is a File-Explorer, Remote-Desktop, Shell interface and APK installer implemented. You can also READ the contacts if your device is rooted and has sqlite3 installed. But a picture tells more as 1000 words... So here is a preview of what you'll get.

ADB-Overlay

But anyways, i'm not responsible for any damage done to your device! For example, if you delete some files/folders on root lvl etc.

Component Info

Remote-Desktop:
Left-Click = Touch
Right-Click = Swipe with duration
The keyboard is nearly fully supported, i have written a kind of WPF -> Android key-mapper. So even combos like SHIFT+A-Z, SHIFT+0-9, ALT+A-Z and ALT+0-9 should work. The base for the key-mapping is a 102 keys keyboard with en-GB or de-DE layout. If you have another setup, some keys may on other positions.
The screenshots will be created under "ADB-Overlay\Screenshots\Screenshot.yyyy-MM-dd_HHmmss.(bmp | gif | jpg | png | tiff | wmp)".
-
If the device is booted in the recovery, the Remote-Desktop is only a viewer, because the recoveries doesn't support "input tap x y" nor "input keyevent XXX".

Shell:
The input box supports CTRL-A-Z, so you'll have the ability to send for example CTRL+C to stop a remote process. If you want use Copy & Paste onto the input box, use the Right-Click menu.

Tested OS
Win Vista | 7 | 8 | 8.1 | 10 (32Bit/64Bit in VM-Ware)
Win 7 | 8 | 8.1 | 10 (64Bit Native)

Tested Devices
Android Emulator some Versions (min. 2.x) in AVD
Android x86
HTC Sensation -/ XE (non-/rooted)
HTC One M9 (non-/rooted)
Huawei P9 Lite (VNS-L21, 22, 23, 31, etc.) (non-/rooted)
Huawei P10 Lite (WAS-LX1A, etc.) (non-/rooted)
Huawei Mate 9 (THX to @Tecalote)
Huawei Mate 10 Lite (THX to @Chisetdel31260)
Huawei P9 (EVA-al10) (THX to @reynard1)
Sony Xperia X (THX to @FoxTheLegend)
Pixel 4 (THX to @squabbi)

Requirements
Android: min. 2.x
Platform: x86/x64 (Windows)
Frameworks: min. .NET 4.6
(Installed ADB/Fastboot driver)

Download
Mirror: See attachments
Mirror #1: My FTP [USR:PW=ADB-Overlay]
Mirror #2: GoogleDrive
Mirror #3: Dropbox

DO NOT MIRROR MY FILES! DO NOT COPY MY THREADS!
Attached Thumbnails
Click image for larger version

Name:	AO_remotedesktop.png
Views:	468
Size:	173.0 KB
ID:	4742080   Click image for larger version

Name:	AO_shell.png
Views:	480
Size:	75.6 KB
ID:	4742081   Click image for larger version

Name:	AO_contacts.png
Views:	478
Size:	115.0 KB
ID:	4742082   Click image for larger version

Name:	AO_android.png
Views:	450
Size:	109.6 KB
ID:	4742086   Click image for larger version

Name:	AO_ftp_update.png
Views:	434
Size:	84.2 KB
ID:	4742087   Click image for larger version

Name:	AO_batterymonitor.png
Views:	348
Size:	20.2 KB
ID:	4751643   Click image for larger version

Name:	AO_apkmanager.png
Views:	332
Size:	103.9 KB
ID:	4767401   Click image for larger version

Name:	AO_apkinstaller.png
Views:	330
Size:	16.4 KB
ID:	4767402   Click image for larger version

Name:	AO_update.png
Views:	282
Size:	10.5 KB
ID:	4771381  
Attached Files
File Type: zip 2019-07-24.1417.zip - [Click for QR Code] (1.88 MB, 62 views)
File Type: zip 2019-12-11.2010.zip - [Click for QR Code] (1.89 MB, 4 views)
File Type: zip 2019-12-14.2315.zip - [Click for QR Code] (1.89 MB, 2 views)
File Type: zip 2019-12-18.0203.zip - [Click for QR Code] (1.89 MB, 14 views)
File Type: zip 2019-12-30.2325.zip - [Click for QR Code] (1.89 MB, 52 views)
File Type: zip 2020-01-31.1442.zip - [Click for QR Code] (1.90 MB, 98 views)
File Type: zip 2020-02-12.2235.zip - [Click for QR Code] (1.90 MB, 30 views)
The Following 5 Users Say Thank You to k1ll3r8e For This Useful Post: [ View ] Gift k1ll3r8e Ad-Free
13th April 2019, 10:09 PM |#3  
k1ll3r8e's Avatar
OP Senior Member
Flag Delmenhorst
Thanks Meter: 667
 
Donate to Me
More
Changelog
DD.MM.YYYY | (A) = Added | (C) = Changed | (D) = Deleted | (F) = Fixed | (R) = Recoded | (U) Updated
----------------------------------------------------------------------------------------------------------------------------------------------------
12.02.2020 [1.15.46.1]
(F) The re-connection bug on the FTP-View. (Which also caused the updater to fail.)
(F) The (2 sec) freezes after copy/delete/tar.
(C) The info bar, added the modify date.

31.01.2020 [1.14.46.0]
(F/A) The timestamps for access, changed, modify.
(C) The "Properties Window", added the mentioned fields and resized the height a bit.
(A) Create File on the FTP-View.

30.12.2019 [1.13.46.0]
(F) The FTP TLS/SSL problem, now all procedures (implicit/explicit) should work without problems. (I tested this the last days with multiple servers, also the proxy's socks4/a|5 should now work with TLS/SSL.)
(U) All 3 explorers, they relay now on an shared generic base explorer which implements most of the features for all 3 views. So it's guaranteed that all views will behave the same.
(U) All 3 explorer views, changed the spacing's and the "edit textbox" (on rename) a bit, so that they look a bit more like the default explorer.
(A) IComparable<T> and IEquatable<T> to all List-/TreeViewItems so you get a pre-sort during item parsing. (I thought it would work a bit nicer, but hey, now it's implemented^^)
(R) Optimized the item (file/folder) parser for both Android & FTP.

18.12.2019 [1.12.46.1]
(F) The broken SDK-Updater, where you saw in the log file a "BindingException".
(F) The "SocketException" on app close. Reason for this was, that i disposed the "DeviceMonitor" after i killed the adb-server, but the monitor tried to check in some cases (10 sec refresh rate) for changes, after the server was already down.
(A) The "remount" option for mounts to the properties window. (You'll get also a little warning, each time you attempt to remount a mount point.)
(C) Resized the properties and the updater windows a bit.

.-Older changes-.

17.12.2019 [1.11.46.0]
(F) The remote desktop for 16-Bit devices.
(R) Root detection
(R) Mount detection (added support for Android 2.x)
(R) The properties view, as mentioned, there is now a more valuable overview.

14.12.2019 [1.10.46.0]
(A) A version banner to the title bar.
(R) Nearly the whole caching logic inside the local ,Android and FTP explorer.
(R) The mount ([Device]) overview, now you'll see all mounts returned from "mount" and the assigned "df" data, if available. (The next build will include a more valuable overview in the PropertiesWindow. Like the mount options etc.)
(R) The remote desktop, i moved the "color correction" inside the pixel-buffer copy process. This will save a lot of time and boost the FPS in my TWRP up to 80++ per sec.. (That was so much, that .Net even couldn't dispose the sockets so fast as i requested a new one... This ended in an waiting queue overflow... So i decided to limit the FPS to 30-40 this is enough to have a clean view.) - Also NOTE: BOOTED IN ANDROID, WILL DECREASE THE FPS TO 2-3 DEPENDING ON THE RESOLUTION OF YOUR DEVICE! THE ONLY SOLUTION FOR THIS IS, START ADB WITH ROOT RIGHTS. (I added a internal switch, which will detect if adb runs as root, if so, i don't relay on the frame-buffer-service of adb. Instead, i use the bare metal (/sys/class/graphics/fb0/) to get the correct buffer values and then i read directly from "/dev/graphics/fb0".) AGAIN, NOTE: THIS WILL NOT RAISE THE FPS UP TO 80++, BUT THE FPS WILL INCREASE UP TO 15-25.

11.12.2019 [1.9.46.1] (HotFix)
(A) The mistakenly removed overwrite protection on item rename. (Android)
(R) The Copy & Delete view, the media-scanner, if activated, will now only run once at the end of an copy or delete action.
(R) Sym-/Directory/File detection, there was in rare cases a wrong detection where a SymDirectory was treated as an SymFile.
(F) The "Create New Textfile" action. (Android)

10.12.2019 [1.9.46.0]
(F) An ArgumentNullException which was raised during "mount" parsing. (On the "device" view.)
(F) The renaming issue, where you got, "The element couldn't be renamed!", if the name hasn't changed.
(A) Windows shortcuts to the TreeView of the Windows explorer. (Even the original one hasn't that feature )
(A) Hiding the ".lnk" extension on any Windows shortcut.
(A) Internal auto updates to the remote explorers (Android/FTP). So you have a kind of "pseudo" FileSystemWatcher.
(A) The re-sorting of the items after an rename action.
(D) Some code duplication. (Saved all together ~12 kb)
(R) Unnecessary refreshes and replaced them with internal cache logic's.

02.12.2019 [1.8.46.0]
(F) An ObjectDisposedException which was sometimes raised after symlink parsing and/or file transfers.
(C) The channeling on the ADBSocket, from an ConcurrentDictionary to an simple array with locks, this increased the transfer speed.
(U) The dlls to the latest versions.

24.07.2019 [1.7.46.0]
(R) The config files, both, the config.xml and the config.ftp.xml got an structure update. The old/current config files will be migrated to the latest version. So there should be no data loss in any way.
(A) A version banner to the Android and FTP view
(C) The adb directory from "ADB-Overlay\adb" to "ADB-Overlay\platform-tools"
(A) The SDK-Updater
(A) Auto-SDK-Update - If activated, this will check once every 24h for an update, but only on startup of the ADB-Overlay. (NO Tasks or something)
Info
The updater will only check "https://dl.google.com/android/repository/repository-11.xml". This XML gets downloaded and parsed, if the "platform-tools" version is newer as the used one, you'll get an popup which offers the download for the latest version.
The Auto-SDK-Update is by default disabled.

28.06.2019 [1.6.46.0]
(F) A memory leak which occurred by removing a device (Android View -> Closing an tab)
(F) A memory leak which occurred by removing a server (FTP View -> Closing an tab)
(R) Improved the directory parsing speed
(A) A progress bar to the copy window (green during transfer and on completion | red on failure or cancellation)

04.06.2019 [1.5.46.0]
(C) The versioning:
1 = Major
5 = Minor
46 = Framework Version (4.6)
0 = Hotfix
(A) A few speed improvements to the Remote-Desktop.
(A) The updater/-menu
(A) Auto-Update - If activated, this will check once every 24h for an update, but only on startup of the ADB-Overlay. (NO Tasks or something)
Info
The updater will only check my FTP for a ".version" file. This gets downloaded and parsed, if the version is newer as the used one, you'll get an popup which offers the download for the latest version. (NO logs and NO telemetry!)
The Auto-Update is by default disabled.

28.05.2019 [0.0.0.5]
(A) The "APK Manager" to the Android -> Tools menu
(A) {<-} & {->} buttons to the addressbar
(A) The "Install" option to the remote explorer -> ListViewItem context menu (only shown if the item is a apk)
(R) Added the missing options to the APK Installer (e.g. Downgrade, Test-Package, etc.)
(R) Optimized the "symlink" parsing

01.05.2019 [0.0.0.4]
(F) An exception which was raised after you tried to open any "Tool" on an disconnected device.
(A) A Battery Monitor to the Android -> Tools menu

29.04.2019 [0.0.0.3]
(A) Remote-Viewer when booted in the recovery
(A) A screenshot format selector (bmp | gif | jpg | png | tiff | wmp) to the Remote-Desktop
(A) A color correction switch to the Remote-Desktop
(A) Links to the German forum post

20.04.2019 [0.0.0.2]
(F) An issue during item renaming - Reason was maybe the switch from .NET 4 to .NET 4.6, seems the UI updates on textboxes are no longer only on focus got/lost, instead they are now after any change.
(A) Contextmenu (Listview) -> New -> Text Document
(A) Replacements for "New Directory", "Group (New)", "Server (New)" to the german language, so you get now after such an action the correct "Neuer Ordner", "Neue Gruppe", "Neuer Server".
(C) The FTP Copy/Delete action, you can now close the control connection and leave only those windows open until they are done. Both, the Copy and Delete action using now their own connection which is no longer bound to the control connection.
(C) Moved the "Keep Alive" checkbox (FTP -> Servermanager -> Account) to FTP -> Servermanager -> Connection

13.04.2019 [0.0.0.1]
Initial release
The Following 2 Users Say Thank You to k1ll3r8e For This Useful Post: [ View ] Gift k1ll3r8e Ad-Free
15th April 2019, 07:28 PM |#4  
Senior Member
Flag toulouse
Thanks Meter: 342
 
More
Great job. my huawei mate 10 lite is recognized. currently my smartphone is on rom original stock rne - l21c432b340 emui 8.0 not rooted. and my PC is a windows 7 64.
The Following 2 Users Say Thank You to Chisetdel31260 For This Useful Post: [ View ] Gift Chisetdel31260 Ad-Free
2nd June 2019, 09:27 AM |#5  
FoxTheLegend's Avatar
Senior Member
Flag Athens
Thanks Meter: 110
 
More
Works for my Xperia X - and thanks for your help!
The Following 2 Users Say Thank You to FoxTheLegend For This Useful Post: [ View ] Gift FoxTheLegend Ad-Free
8th January 2020, 07:57 AM |#6  
squabbi's Avatar
Senior Member
Flag Sydney
Thanks Meter: 1,604
 
Donate to Me
More
I'm flattered to be in your contacts screenshot I was still using your prototype you had sent to me years ago!
Works very well on my Pixel 4!
The Following User Says Thank You to squabbi For This Useful Post: [ View ] Gift squabbi Ad-Free
8th January 2020, 08:31 AM |#7  
k1ll3r8e's Avatar
OP Senior Member
Flag Delmenhorst
Thanks Meter: 667
 
Donate to Me
More
Quote:
Originally Posted by squabbi

I'm flattered to be in your contacts screenshot I was still using your prototype you had sent to me years ago!
Works very well on my Pixel 4!

Hey Bro
long time not seen. Hehe yeah the good old Multi-Explorer ;p - Still using it my self, it's more or less my playground before i implement things in this tool.

If you want and have some spare time we can modify this beauty. I also reworked nearly the whole AndroidCtrl.dll, there you have now solid filestreams, strongly typed FilesystemInfos (Like the one from the .NET fw) and lots of other handy stuff. Like framebuffer access in Android and recovery mode. I also implemented a ADBridge class which is an instanced wrapper for the 2 static ADB classes (binary/socket).

Best Regards,
Sebastian
The Following 2 Users Say Thank You to k1ll3r8e For This Useful Post: [ View ] Gift k1ll3r8e Ad-Free
13th January 2020, 05:58 PM |#8  
reynard1's Avatar
Senior Member
Flag Urmia
Thanks Meter: 23
 
More
this is what im looking for a while

Thank you very much

here is some suggestion
1.better ui
2.edit build prop in the realtime

btw my phone is Huawei P9(eva-al10) rooted android 8.0 work very well
The Following User Says Thank You to reynard1 For This Useful Post: [ View ] Gift reynard1 Ad-Free
23rd January 2020, 01:46 AM |#9  
squabbi's Avatar
Senior Member
Flag Sydney
Thanks Meter: 1,604
 
Donate to Me
More
Quote:
Originally Posted by k1ll3r8e

Hey Bro
long time not seen. Hehe yeah the good old Multi-Explorer ;p - Still using it my self, it's more or less my playground before i implement things in this tool.

If you want and have some spare time we can modify this beauty. I also reworked nearly the whole AndroidCtrl.dll, there you have now solid filestreams, strongly typed FilesystemInfos (Like the one from the .NET fw) and lots of other handy stuff. Like framebuffer access in Android and recovery mode. I also implemented a ADBridge class which is an instanced wrapper for the 2 static ADB classes (binary/socket).

Best Regards,
Sebastian

Sounds great! I'm looking to get back into toolkit making later this year, I'm keen to see the improvments to your library!
The Following User Says Thank You to squabbi For This Useful Post: [ View ] Gift squabbi Ad-Free
28th January 2020, 09:47 PM |#10  
Junior Member
Flag paris
Thanks Meter: 5
 
More
Great job. we can navigate and copy files efficiently.
Only one thing is missing. Why not keep file timestamp for last access and modifie dates? or let us choose the option to keep it or not.
The Following User Says Thank You to skyrail01 For This Useful Post: [ View ] Gift skyrail01 Ad-Free
29th January 2020, 11:47 AM |#11  
k1ll3r8e's Avatar
OP Senior Member
Flag Delmenhorst
Thanks Meter: 667
 
Donate to Me
More
Quote:
Originally Posted by skyrail01

Great job. we can navigate and copy files efficiently.
Only one thing is missing. Why not keep file timestamp for last access and modifie dates? or let us choose the option to keep it or not.

Heyho,
which Android version are you using and on which action (pull/push) does the timestamps get lost?
Normally i preserve the timestamps but on some Android versions the "timestamp" field in the ADB-Protocol is ignored.

Maybe i can set the timestamps on an other way, but therefore i need to know the version.

Regards,
Sebastian

PS:
Some code where i set the timestamps

Upload
Code:
 public void Close(DateTime fileCreationTime)
        {
            if (_ch?.IsConnected ?? false)
            {
                if (CanWrite)
                {
                    int o = 0, w;
                    byte[] d = new byte[8];
                    d.SetUInt32LE((UInt32)SyncCmd.DONE, 0);
                    d.SetUInt32LE(ToUnixTime(fileCreationTime), 4);
                    //...
                }
                _ch.Close();
            }
        }
Download
Code:
//...
                using (FileStream dfs = destination.Open(FileMode.Create, FileAccess.Write))
                {
                    using (AFileStream sfs = OpenRead())
                    {
                        sfs.CopyTo(dfs, DMAX, msg, cancellationToken);
                        ct = sfs.CreationTime;
                    }
                }
//...
            if (msg.State == TransferState.Done)
            {
                destination.CreationTime = ct;
                transferEventHandler?.Invoke(Client.ID, new FileTransferEventArgs(Client.ID, msg));
                return true;
            }
//...
The Following User Says Thank You to k1ll3r8e For This Useful Post: [ View ] Gift k1ll3r8e Ad-Free
Post Reply Subscribe to Thread

Tags
adb, explorer, remotedesktop, shell

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes