Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,738,303 Members 53,232 Now Online
XDA Developers Android and Mobile Development Forum

[UTILITY] Quick ADB Pusher v0.5 (Get it now!) [25-12-2012]

Tip us?
 
Goatshocker
Old
(Last edited by Goatshocker; 6th January 2013 at 05:56 PM.)
#1  
Goatshocker's Avatar
Senior Member - OP
Thanks Meter 407
Posts: 941
Join Date: Oct 2010
Default [UTILITY] Quick ADB Pusher v0.5 (Get it now!) [25-12-2012]



Background:
It all started with me often finding myself sending small files to my device, and quickly got sick of the constant enabling/disabling of USBMS on my old phone, which is quite slow with re-mounting the SD card(ZTE Blade).
I also quickly got sick of not being able to quickly transfer files from my PC to my tablets internal storage.
There are a few graphical interfaces for adb out there, but none was really what I wanted...
So I decided to attempt to code something myself, and here we are!

Info:
A graphical UI for "adb push" to quickly transfer files from your PC to any location on your Android device.
.... Thats what I planned when i started, and what the first 2 versions did...

Now it hosts a powerful File Explorer thats capable of doing everyday tasks such as copy, paste, rename, create folders, delete files and folders, as well as transfering files on its own.

Features:
The main application is capable of sending and receiving files, and installing APKs.
It also serves as the connection-manager as can connect to devices using either your USB Sync cable, or by using WLAN (req. an app on your device to enable wireless adb).
Finally, it hosts a few other functions such as reboot to recovery, reboot to bootloader and a plain reboot.

The Filebrowser is very similar to any other filebrowser you use everyday on your PC.
It can copy/cut and paste files and folders within the device, rename file and folders, create new folders, delete files and folders.

Highlights would be:
Browse the content of your device like you browse your PC's harddrives
Drag and drop files between your PC and your Android device
Move, copy, delete and rename files and folders


Limitations:
The main program does not detect case sensitive, which can end up with funny results if you push a file to "/removable/" instead of "/Removable/" for example.
ADB is only capable of sending 1 file at a time, but is capable of sending whole directories incl. subdirs.
In a future update, I will add the ability to send multiple files.

Getting started:
Everything should be self explanatory. Most of the buttons have tooltips that tells you what they do.
Basically you make sure USB Debugging is turned ON on your device, plug it into your PC and start Quick ADB Pusher.
If you are connecting using a USB Cable, the application should find it automatically.
If you're connecting through wifi, you will need to type the IP address in the dedicated field. Port only needs to be provided if you are using any other port than the standard 5555. The IP address will be saved, and you can select it from the drop-down list the next time you start the application.


Requirements:
An Android device.
Windows
.NET 3.5
USB Debugging turned ON.
Additional Recommendations:
Root
Busybox
Vulnerable Kernel or Custom ROM

Q&A
 
  • Q: My device is rooted, but the program says it cant get root access
    A: You are probably on stock rom or kernel. Most shipped roms have root-access from adb blocked.
    To check this: Open default.prop located in the root of your device ("/"). If ro.secure is set to 1, thats your issue. Note: Default.prop gets overwritten everytime you restart the device, so changing this file will do nothing.
    Theres is an app available that can fix/bypass this: http://forum.xda-developers.com/show....php?t=1687590

    Q: The cache didnt delete itself when I closed the app!
    A: You have two choices here: Either delete the cache/ folder located in the same location as the adb pusher exe, or you can just open and close the program.
    If the cache still wont delete itself, report it as a bug.

    Q: I cant connect to my device over wifi!
    A: Make sure you have an app on your device that enables wireless ADB and that its turned ON. I personally use adbWireless found on the Play Store.
    Double-check you are attempting to connect to the correct IP and port.

    Q: Whats the "Information" window good for?
    A: Its actually a left-over debug window, but can provide you with useful information should a transfer fail. If nothing else, you can use it if and when you report a bug.
    Note that the Info window only shows what the main program is doing. ADB Explorer works independently, and will not report anything to the Info window.

    Q: Why do I have to click a button to switch between push, pull and install?
    A: The program need to knows which adb command to run (adb push or adb pull), and having a button for it was the easiest way for me .
    The install option is there because you might not always want to install an .apk, but rather store it on your SD card or something. I know I do.

    Q: Why cant I send a whole folder to my device from the main program?
    A: Old implementation, use the built-in ADB Explorer instead, which allows you to send whole folders.

    Q: Whats the point in the main program, when the Explorer can do everything but better?
    A: At the moment it still controls the actual transfers as well as the connections to your device(s).
    The main program is, however, more or less untouched since v0.3, while the Explorer is constantly being updated. Therefore, the Explorer hosts more and better features.
    I am concidering removing the main form, as its rather obsolete by now.

    Q: I Have a question!
    A: Feel free to ask in this thread, and I'll answer your question as best I can.

    Q: Can I donate?
    A: No, I dont feel this program is worth "paying for" and it wouldnt feel right to receive money for it in any form.
    Hit 'thanks' and vote the thread 5stars instead

    Q: I Found a bug, how do I report it?
    A: Report it to me on this forum, either in the thread or through PM, and I'll make sure to look into it.
    Just make sure to provide as much info you can.
    And remember: I cant fix anything if I dont know about it! So dont hesitate reporting bugs.



Changelog:
  • v0.5 current version
    First of all... v0.4.1 had 6570 views on the attachement alone. Not bad...
    Added an awesome splashscreen! As those who have used this program before should know - the program takes a while to load. The splashscreen is visible during this load, so you know the program is actually starting.

    The wifi-field has been redesigned. It now saves your IP adresses so you dont have to retype them every time.
    Added an "X" button next to the wifi-field. This button clears the wifi-cache and removes all entries in the list.
    Added my name with a link to this thread, Ive seen my program hosted at a few sites with no credit whatsoever. I dont mind anyone hosting it elsewhere, in fact Im happy it gets spread, but PLEASE at least give me credit for it.
    Slight redesign
    Added tooltips to both the main application and the Filebrowser

    Filebrowser:
    Renamed "ADB Filebrowser" to "ADB Explorer". It can do so much more than just view the files on the device, so this name is more fitting. I should think of a new name for the entire application as well... "Quick ADB Pusher" isnt even half the truth anymore :P
    Added cache feature! Everytime you enter a directory youve already been in, the cache kicks in rather than asking the device for the content. Each device has its own cache (note: a wifi-connected device will have its own cache based on the IP, so if you connect to the same device using cable or another IP, the cache needs to be rebuilt).
    The cache will update as follows:
    When entering a new directory not currently present in the cache.
    When you hit the refresh button.
    When you rename a file/folder.
    When you create a new folder.
    When you paste a file/folder from the clipboard.
    When you delete a file/folder.
    When you transfer a file/folder to the device.
    The cache will NOT update when you send a file from the device to your PC
    The cache will get deleted upon application exit.

    You can now cancel the contentlisting and go back by hitting "../", Backspace shortcut-key or the Back button. Added because some directories takes ages to load on various devices, and its not so fun rolling your thumbs when all you want to do is go back to the previous dir

    Added "drag-drop" to the filebrowser - you can now dragdrop files and folders directly to the browser to send it(or install, if .apk) to your device. The cache will refresh upon completion. You can also drop files and folders FROM the browser to your PC!*
    * this might not sound so special, but it was a bitch to implement. Dragging stuff to the browser - ~50 lines of code. Dragging stuff FROM the browser - a little over 200 lines of code... C# sure has its limitations...
    Added "Grab" to the right-click menu. This will send the selected file/folder from your device to your PC.
    In short, the filebrowser can do what the main application can, so you dont have to close the browser to send/recieve a file/folder. A loading thingy will appear over the browser while a filetransfer is in progress.
    Added "Properties" to the right-click menu. This shows some info such as the size of the file, and even the total size of a folder (incl. sub dirs). If you select a folder with a lot of content/folders, it might take a while to calculate the size. Other things it show is where its mounted and what permissions the file/folder has. NOTE: Requires Busybox, and root for files and folders only accessible by root (duh!)
    Added 3 warnings upon opening the browser: One to inform you if your device isnt rooted, one to warn you busybox is missing and one to warn you if your device is rooted, but ADB was unable to acquire it. None of these warnings will show if adb acquires root and busybox is present.
    Added a textarea showing the used space on the device, based on the mounted partition (such as /data, /sdcard, etc). So dont be scared if the number jumps around while youre browsing - it just means youve entered a different partition. Click to switch between used and free space. Requires Busybox
    The browser now remembers your last location and will not start from "/" everytime you open it. Memory is lost upon main program exit and when you select a different device.
    Added "View file" (prev. unfunctional "Open" menu item) to the right-click menu. This allows you to view smaller files (up to 10MB) without permanentally save them on your PC. I have blocked larger files because the time it takes to transfer those files isnt worth it for just "a quick look". My devices transfers a 10MB files between 2 and 5 seconds(depending on device) - which I think is ok, so I set the limit there.

    Tweaked and tuned to make the browser act somewhat normal for devices without root/busybox. Devices without root/busybox will miss out on quite a lot though And before anyone asks - No, I do not plan on making this program able to root your devices. There are plenty of tools for that already.

    Fixed the shortcutkeys that only worked when they wanted to. In addition, several more shortcuts have been added.
    List of currently supported shortcuts:
    ctrl+x: Cut file/folder
    ctrl+c: Copy file/folder
    ctrl+v: Paste file/folder
    ctrl+s: Grab the selected file/folder
    shift+delete: Delete the seleceted file/folder
    shift+n: Create a new folder
    F1: View file
    F2: Rename file/folder
    You can also use the arrowkeys to navigate, similar as in explorer. cut/copy/paste only works within the ADB Explorer.

    Added Forward and Back buttons. Works the same way ordinary back/forward buttons do. Also changed icon for Refresh
    Added a Toolbar, containing more buttons such as "view file", "download", "upload", "delete"...
    Added 2 eastereggs , one is easy to find. The other is well hidden, and actually serves a purpose Well actually, the latter isnt really an easteregg, but it should be hard enough for you mortals to find


    Known issues:
    You friends might rage and throw their IPhones at you when they see this
    ------
    HTC Sync REALLY doesnt like ADB, so close that crap before starting this app, or better yet - uninstall it!
    It seems HTC Sync is trying to start its own adb server, and is very persistant in doing so.
    This results in Quick ADB Pusher and HTC Sync having a fight for their life on who is going to start the server.
    ------
    If you install an .apk, then try to send something else, the program will try to install that as well. This is because I was retarded and forgot to add one check.
    Solution: Close the filebrowser, untick "install apk". Will be fixed in the next version, I promise!



    Version History:
     
    • v0.4.1 - 6570 views on the attachement alone. Not bad...
      Fixed filebrowser not working on some devices, I hope. Please test this for me as the browser has always worked fine for me on all my devices.
      Changed apk install method to use AndroidLib's method. It now tells you if the installation was successful or not.

      ... Some minor things I cant remember.
      Note, the "Open" option in the filebrowser is just a placeholder for now, its not a bug that it doesnt work, it isnt ment to work.

      v0.4
      Fixed bug where files and folders containing "_(" threw a syntax error.
      Added file browser for device (see Seperate notes).
      Added wireless ADB support.
      Added Pull-file mode.
      Re-designed the UI.
      Moved the info-view to 3rd tab. Im moving away from it more and more.
      A lot of the text and button-text will now change depending on your current choices. Ex. the Send-button now switches between Send, Pull and Install.
      A truckload of code rewriting and optimizations.
      Added an additional check for Root remounting, which should fix rare cases where remounting fails (If your device cant be remounted as root, please report it along with your device, rom etc)
      Added "Install APK" You can now install APKs directly through the program.
      Added reboot options in the Advanced tab
      Added device info in the Advanced tab (The temp seems to be reported in C * 10, so I report it as C / 10, let me know if it doesnt look right for your device, and dont forget to tell me what device/rom you're using)

      Filebrowser Features:
      Browse and select files.
      Context menu (right-click menu).
      Copy or move(cut) files/folders within the device.
      rename files/folders on the device.
      delete files/folders on the device. Warning: Deleting the wrong files might brick your device! Double-check that you really want to delete the file before doing so!
      create new folders on the device.
      icons for certain formats (more to be added).
      progressbar for directory loading progress.
      'clipboard' icon to remind you what you currently have selected for copy/cut.
      Notes:
      The filebrowser is in its early stage. I have bugtested it as much as I can and it works flawless with my 3 devices.
      The speed of listing directoiess/files greatly differs with device. My TF101 lists the contents about twice as fast as my ZTE Blade, theres not all that much I can do about it, as I dont have the time right now.
      When pasting a file in a location where a file with the same name already exists, the program will currently simply overwrite the file. I havnt had time to add a check for it yet (ETA: Next version).
      ---To be added:
      Direct interacting/editing of files, such as text files etc.
      cache-feature, to reduce the frequency of grabbing the dir. contents from the device (which will help speed up changing paths).
      A "file exists" check when pasting, allowing you to chose to overwrite or rename the old file.



      v0.3
      Fixed program freeze when no device was connected.
      Added device selection, so it should work with multiple devices connected. please test this for me
      Rewrote most of the program to make use of AndroidLib.dll
      Removed the console(debug) tab, as it served little to no use now
      Added an 'Advanced' tab for future use
      Cleaned up a lot of garbage code
      Fixed system not mounting as R/W
      Other minor changes and fixes

      v0.2
      First public release

      v0.1
      very first version I wrote, which was buggy and often froze and god knows all...
      Trust me, it was terrible. It worked and did what it set out to do but... It was terrible...

The latest Version has been tested and bugfixed on the following devices:
ZTE Blade with Swedish Spring 5, connected through USB Cable
ASUS Transformer TF101 with Team EOS Nightly build 28, connected through WIFI
HTC One S with stock 4.0.3, no root, no busybox. USB Cable
HTC One S with stock 4.0.4, root, no busybox. USB Cable
HTC One S with stock 4.0.4, root, busybox. USB Cable.



-------------------
Suggestions for improvements, feedback etc are more than welcome

Thanks to:
regaw_leinad - for writing the very handy AndroidLib found here

Dont forget to hit 'thanks' if you like my application. Every thanks I get brings a smile to my face

Download:
If the attachment doesnt work, try this mirror (select version and hit ctrl+s, or file -> download)
Attached Files
File Type: zip Quick-ADB-Pusher_v0.5.zip - [Click for QR Code] (1.13 MB, 13387 views)
Quick ADB Pusher v0.5 (discontinued)
--------------------------------------------------------------------
Phone(ancient junk): ZTE Blade some CM11 build
Tablet 7": Novo 7 Basic running stock HC 3.2.1
Tablet 10": ASUS Transformer TF101 16GB running Team EOS nightly (build 26)

Phone(new): HTC One S S4 running Dark Jelly S CM10 build23
Phone(junk): Xperia P running resurrection remix or Honami MW
Phone(Newest): Galaxy S4 Mini running slimKat
-----
ლ(ಠ益ಠლ) Y U NO THANK ME? ლ(ಠ益ಠლ)
The Following 147 Users Say Thank You to Goatshocker For This Useful Post: [ Click to Expand ]
 
arnab321
Old
#2  
arnab321's Avatar
Senior Member
Thanks Meter 168
Posts: 409
Join Date: Jul 2011
i think making a batch file was easier
 
regaw_leinad
Old
#3  
regaw_leinad's Avatar
Recognized Contributor / Recognized Developer
Thanks Meter 3622
Posts: 3,662
Join Date: Jan 2010
Location: Seattle, WA
Hey, cool app. There does however seem to be a problem with XDA's attachment feature, and it only downloads about 1k of the zip, then says complete. Also, if you plan on extending this a little more, check out my .NET Android Library named... well AndroidLib. It will help you out a bunch with the coding of the features you want to add.
Device: HTC One (AT&T)
Recovery:TWRP 2.6.3.0 | Bootloader: S-OFF
ROM: Stock



My Development Threads

Watch my programming tutorials on YouTube - BetterCoder
I'm also a professional musician - YouTube - SoundCloud


Please don't post just to say "Thanks" - There's a button for that . Be sure to use it!
The Following 3 Users Say Thank You to regaw_leinad For This Useful Post: [ Click to Expand ]
 
Goatshocker
Old
#4  
Goatshocker's Avatar
Senior Member - OP
Thanks Meter 407
Posts: 941
Join Date: Oct 2010
Quote:
Originally Posted by regaw_leinad View Post
Hey, cool app. There does however seem to be a problem with XDA's attachment feature, and it only downloads about 1k of the zip, then says complete. Also, if you plan on extending this a little more, check out my .NET Android Library named... well AndroidLib. It will help you out a bunch with the coding of the features you want to add.
Thanks for the heads up.
I placed it on google docs, hopefully it works better
Linky

If it doesnt, perhaps you could give me a tip as to where to upload it. I used to have my own server so never really used any other file-sharing method

Quote:
Originally Posted by regaw_leinad View Post
Also, if you plan on extending this a little more, check out my .NET Android Library named... well AndroidLib. It will help you out a bunch with the coding of the features you want to add.

O nice, Ill definitely check that out Thanks.
Quick ADB Pusher v0.5 (discontinued)
--------------------------------------------------------------------
Phone(ancient junk): ZTE Blade some CM11 build
Tablet 7": Novo 7 Basic running stock HC 3.2.1
Tablet 10": ASUS Transformer TF101 16GB running Team EOS nightly (build 26)

Phone(new): HTC One S S4 running Dark Jelly S CM10 build23
Phone(junk): Xperia P running resurrection remix or Honami MW
Phone(Newest): Galaxy S4 Mini running slimKat
-----
ლ(ಠ益ಠლ) Y U NO THANK ME? ლ(ಠ益ಠლ)
The Following 3 Users Say Thank You to Goatshocker For This Useful Post: [ Click to Expand ]
 
regaw_leinad
Old
(Last edited by regaw_leinad; 15th April 2012 at 08:33 AM.)
#5  
regaw_leinad's Avatar
Recognized Contributor / Recognized Developer
Thanks Meter 3622
Posts: 3,662
Join Date: Jan 2010
Location: Seattle, WA
Quote:
Originally Posted by Goatshocker View Post
Thanks for the heads up.
I placed it on google docs, hopefully it works better
Linky

If it doesnt, perhaps you could give me a tip as to where to upload it. I used to have my own server so never really used any other file-sharing method

O nice, Ill definitely check that out Thanks.
Yup, the new link works great! Unfortunately, when I don't already have an adb server running and hit the 'Check ADB Status' button, the form freezes and the process needs to be killed to close the program. Works fine when adb.exe is already running though.

---------- Post added at 12:26 AM ---------- Previous post was at 12:17 AM ----------

Killing adb.exe while it's frozen fixes the issue I pointed out, probably means there is an error in your
Code:
Select Code
Process
code

EDIT:
Stalls on process.WaitForExit() when debugging
Device: HTC One (AT&T)
Recovery:TWRP 2.6.3.0 | Bootloader: S-OFF
ROM: Stock



My Development Threads

Watch my programming tutorials on YouTube - BetterCoder
I'm also a professional musician - YouTube - SoundCloud


Please don't post just to say "Thanks" - There's a button for that . Be sure to use it!
 
Goatshocker
Old
#6  
Goatshocker's Avatar
Senior Member - OP
Thanks Meter 407
Posts: 941
Join Date: Oct 2010
Quote:
Originally Posted by regaw_leinad View Post
Yup, the new link works great! Unfortunately, when I don't already have an adb server running and hit the 'Check ADB Status' button, the form freezes and the process needs to be killed to close the program. Works fine when adb.exe is already running though.

---------- Post added at 12:26 AM ---------- Previous post was at 12:17 AM ----------

Killing adb.exe while it's frozen fixes the issue I pointed out, probably means there is an error in your
Code:
Select Code
Process
code

EDIT:
Stalls on process.WaitForExit() when debugging

Thanks for the report,it seems to happen when theres no device connected. Silly me have only even tried the app with a device connected hehe.
I'll try to fix it later today
Quick ADB Pusher v0.5 (discontinued)
--------------------------------------------------------------------
Phone(ancient junk): ZTE Blade some CM11 build
Tablet 7": Novo 7 Basic running stock HC 3.2.1
Tablet 10": ASUS Transformer TF101 16GB running Team EOS nightly (build 26)

Phone(new): HTC One S S4 running Dark Jelly S CM10 build23
Phone(junk): Xperia P running resurrection remix or Honami MW
Phone(Newest): Galaxy S4 Mini running slimKat
-----
ლ(ಠ益ಠლ) Y U NO THANK ME? ლ(ಠ益ಠლ)
The Following 2 Users Say Thank You to Goatshocker For This Useful Post: [ Click to Expand ]
 
regaw_leinad
Old
#7  
regaw_leinad's Avatar
Recognized Contributor / Recognized Developer
Thanks Meter 3622
Posts: 3,662
Join Date: Jan 2010
Location: Seattle, WA
Quote:
Originally Posted by Goatshocker View Post
Thanks for the report,it seems to happen when theres no device connected. Silly me have only even tried the app with a device connected hehe.
I'll try to fix it later today
ah, you're calling
Code:
Select Code
adb get-state
that gets the state of the device connected.

My .NET Android library handles everything adb wise, it even uses it's own adb binary, so the user doesn't have to have the sdk for it to work. let me know if you're going to reference it with your app, and I'll put your project in AndroidLib's post of "Projects using AndroidLib"
Device: HTC One (AT&T)
Recovery:TWRP 2.6.3.0 | Bootloader: S-OFF
ROM: Stock



My Development Threads

Watch my programming tutorials on YouTube - BetterCoder
I'm also a professional musician - YouTube - SoundCloud


Please don't post just to say "Thanks" - There's a button for that . Be sure to use it!
 
Goatshocker
Old
#8  
Goatshocker's Avatar
Senior Member - OP
Thanks Meter 407
Posts: 941
Join Date: Oct 2010
Quote:
Originally Posted by regaw_leinad View Post
ah, you're calling
Code:
Select Code
adb get-state
that gets the state of the device connected.

My .NET Android library handles everything adb wise, it even uses it's own adb binary, so the user doesn't have to have the sdk for it to work. let me know if you're going to reference it with your app, and I'll put your project in AndroidLib's post of "Projects using AndroidLib"

Yep, I assumed that would work since it works fine if you do it directly in cmd. But guess not adb start-server didnt work either...
I think I'll leave the bug for now and start looking into your lib instead.
Quick ADB Pusher v0.5 (discontinued)
--------------------------------------------------------------------
Phone(ancient junk): ZTE Blade some CM11 build
Tablet 7": Novo 7 Basic running stock HC 3.2.1
Tablet 10": ASUS Transformer TF101 16GB running Team EOS nightly (build 26)

Phone(new): HTC One S S4 running Dark Jelly S CM10 build23
Phone(junk): Xperia P running resurrection remix or Honami MW
Phone(Newest): Galaxy S4 Mini running slimKat
-----
ლ(ಠ益ಠლ) Y U NO THANK ME? ლ(ಠ益ಠლ)
The Following 2 Users Say Thank You to Goatshocker For This Useful Post: [ Click to Expand ]
 
Plumillon
Old
#9  
Junior Member
Thanks Meter 9
Posts: 26
Join Date: Mar 2012
Really nice app

Do you plan to develop a Linux version ?
 
Catnap
Old
#10  
Catnap's Avatar
Senior Member
Thanks Meter 453
Posts: 952
Join Date: Sep 2010
Great idea, thanks =)

<- wat

If you're reading this, congrats. You are better at reading than most of these forums.

The Following 2 Users Say Thank You to Catnap For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes