Related
I'm not sure how this will be taken by the people here. Everyone seems really helpful when other people ask questions or need help so I may be surprised, but after rooting my Incredible last night and then trying to look into boot animations, removing bloatware and other things I was left with some feelings that took the joy out of being rooted and I wanted to share them.
Laugh if you will, insult if you feel it's necessary. I'm old enough to be able to handle it but beyond all of that I just wanted to say that the "rooting community" are a brilliant bunch of people. The things that you guys do boggles my mind. Since I only just registered I'm forbidden to post links, but if you're so inclined to go read it here it is.
ishootpixels.tumblr.com/
EDIT: I'd also like to add that my wife's netbook is running XP and not Vista. I forgot that we downgraded it (or upgraded however you want to look at it). I've gone back and changed my blog post.
If you would like some help getting where you want to be, PM me and I would be glad to help. I am far from an expert, but after scouring these forums endlessly, I am quite familiar with the process.
@mtag1029 Thanks. I guess my first problem is that whenever I type in "adb" anything, I get that "adb is not recognized as an internal or external command, operable program or batch file."
I've used this method to connect the phone to the netbook...
1. Boot into Clockworkmod recovery by powering off the phone and pressing and holding the volume down and power button until the screen lights up.
2. At the menu press volume down to select Recovery, then press power.
3. At the Clockworkmod main menu select partitions menu, then select mount /system
4. On the computer click Start > Run, and type CMD to open a command prompt.
5. In the command prompt type cd\sdk\tools
6. At the command prompt type adb shell. Now you’re in the phone’s OS.
and I get as far as step 6 before I can't go any further which is where I get that message. Right now I'm trying to install a boot animation and sound but I'll also need to be able to get beyond this in order to remove the bloatware. What am I doing wrong?
And THANK YOU again for the help. I'm almost to the point of returning it to stock so I'll at least be able to get Froyo whenever it's released OTA, but I've come so far at this point I'd hate to throw it all away and go back to stock.
IShootPixels said:
5. In the command prompt type cd\sdk\tools
6. At the command prompt type adb shell. Now you’re in the phone’s OS.
Click to expand...
Click to collapse
Assuming your sdk folder is in the root of the C drive (i.e. C:\sdk\), the command in step 5 is wrong -- it's supposed to be:
Code:
cd \sdk\tools
with a space. That should get you into the C:\sdk\tools directory, where adb is.
Not sure if the lack of spacing was just a typo, but if not, there ya go Let me know how it works
edit: Just tried cd\sdk\tools, actually works, I thought there had to be a space, but maybe not. I guess the next step would be to make sure there's an adb.exe in your tools folder?
I created a file folder under Local Disk C called "sdk" and inside that I created another folder "tools". I couldn't find folders that were already named this so I created them myself. That may be wrong so it wouldn't surprise me if that's my first mistake.
Beyond that, when I get into running command lines I have gotten to where it looks like this...
C:\sdk\tools>
No spaces. I'm taking a pic and trying to attach it if my noob status on the forums will allow me.
I don't have the exe file. I didn't need it to root the phone. I don't know where to even get it.
IShootPixels said:
I created a file folder under Local Disk C called "sdk" and inside that I created another folder "tools". I couldn't find folders that were already named this so I created them myself. That may be wrong so it wouldn't surprise me if that's my first mistake.
Click to expand...
Click to collapse
If you just made the folders, there's nothing in them -- if you go to the tools directory and type "dir", there probably won't be any files unless you extracted some in there.
From the how 2 adb thread by dreamersipaq:
1) Setting up ADB
ADB stands for Android Development Bridge. It is used by Android developers for programming. For us, it is used to hack into our phones . For our purposes, just know that it is like the cmd (command prompt) that allows us to send commands to our phone. This is extremely useful when we're in the custom recovery
Download the Android SDK from Google: http://developer.android.com/sdk/index.html
Unzip to your desktop
Take the "android-sdk-_**-windows" folder and move it to the root of your hard drive (C:\)
** will change, it is revision of SDK, like "r6"
****The below is not necessary, but is useful sometimes if you just want to run "adb shell" from anywhere without going into the sdk directory****
Right click on My Computer and click properties
Select the Advanced Tab or Advanced System Setting (Vista/Windows 7)
Select Environment Variables...
Press New
For Variable Name type: adb
For Variable Value type: C:\android-sdk-_**-windows\tools
****End of the "This is not necessary thing****
Click to expand...
Click to collapse
edit: the rest of that thread is located http://forum.xda-developers.com/showthread.php?t=709220 there, if you're interested
gmonox is absolutely correct. You cannot just create the folders. They have to come from the sdk.
Another thing. You mentioned in your blog post that you would like to have froyo. Froyo should be flashed before removing any apps becauseeverything that you have removed will be put back in with froyo.
Wow, that was a pretty necessary step that I never knew about. Okay, so I DL'd, unzipped, and copied the folder to the root of C. Question, do I have to rename the "android-sdk-windows" folder to simply "sdk" when following the directions I listed earlier or do I leave it and at the command line type...
cd\android-sdk-windows\tools
I also didn't do the "advanced" part of the post simply because it's my wife's PC and I'm really not in the mood to screw up anything else today.
EDIT: And about Froyo, right now I just want to see if I can get a little boot animation working before I even THINK about tackling ROMs, Kernals or anything else. Although I know that most ROMs have the kernals that are optimized for that particular ROM if I've read things right. I realize Froyo is not a mod so it won't have an overclocked kernal but I read that others might. I've read that Froyo packs in VZ Nav (like I didn't have enough of that crap with my old Blackberry) amongst other things. If nothing else, I'm really good at reading about all of the things that I wish I could do.
IShootPixels said:
Wow, that was a pretty necessary step that I never knew about. Okay, so I DL'd, unzipped, and copied the folder to the root of C. Question, do I have to rename the "android-sdk-windows" folder to simply "sdk" when following the directions I listed earlier or do I leave it and at the command line type...
cd\android-sdk-windows\tools
I also didn't do the "advanced" part of the post simply because it's my wife's PC and I'm really not in the mood to screw up anything else today.
EDIT: And about Froyo, right now I just want to see if I can get a little boot animation working before I even THINK about tackling ROMs, Kernals or anything else. Although I know that most ROMs have the kernals that are optimized for that particular ROM if I've read things right. I realize Froyo is not a mod so it won't have an overclocked kernal but I read that others might. I've read that Froyo packs in VZ Nav (like I didn't have enough of that crap with my old Blackberry) amongst other things. If nothing else, I'm really good at reading about all of the things that I wish I could do.
Click to expand...
Click to collapse
Either way works. I renamed mine sdk because I'm too lazy to type android-sdk-windows every time I want to go into adb shell. But it's up to you
Ok, I'm guessing that my question will be answered after I run the setup. I didn't see the link at first to the thread. Apparently my wife's netbook doesn't even have the right java ver. to run the setup.
This is making my brain hurt.
I should have asked this earlier, have you made a nandroid backup?
LOL. Actually as soon as I finished rooting the phone I DL'd Titanium from Marketplace and installed it and BusyBox and made a backup that way. Then I remembered Nandroid and went in and backed up that way too. Probably overkill but the whole process has scared the crap outta me. I wouldn't know how to apply these backups, but at least I have them.
At the moment I'm installing the Documentation for Android SDK, API 8, revision 1
EDIT: This is going to take awhile I'm guessing. Installing SDK Platform Android 2.2, API 8, revision 2
Okay. The nandroid is the most important. It will save your butt if something goes wrong.
IShootPixels said:
LOL. Actually as soon as I finished rooting the phone I DL'd Titanium from Marketplace and installed it and BusyBox and made a backup that way. Then I remembered Nandroid and went in and backed up that way too. Probably overkill but the whole process has scared the crap outta me. I wouldn't know how to apply these backups, but at least I have them.
At the moment I'm installing the Documentation for Android SDK, API 8, revision 1
Click to expand...
Click to collapse
Both types of backups are easy to restore, for nandroid you just go into recovery, same place as you backed it up but click Restore and just wait for it. For titanium, go into backup/restore, batch, and there's an option to restore apps, apps+data, and apps+system data I think. If you have the paid version, the apps will all install on their own, but if not I don't think they will.
Are you still on a netbook or can you use a pc? Might be easier if your java's out of date and whatnot to just use a pc, I'm no expert on netbooks but I'd imagine they're stripped down a lot
gmonox said:
Both types of backups are easy to restore
Click to expand...
Click to collapse
Just keep in mind that you need a functioning phone in order to use Titanium. If you mess something up while in adb and the phone will not boot, Titanium is useless. A nandroid however will restore you back exactly how you were before messing around in adb even if the os will not boot.
Well then I'm glad I did the Nandroid BU! Bsically then I guess that because I backed up with Ti first and then with Nandroid, the Nandroid created a back up of my Ti backup. If so I think I just set a record for redundancy.
As for using a netbook, I don't have a choice. I run everything off of my Macbook, or did until now. The only Windows based item in the house aside from my Xboxes is my wife's netbook. I've updated the Java and begun the setup process. I had to do as the thread said and force the http and then go into the available packages and I'm DLing and installing them all because I was afriad that if I didn't I'd find that I needed one I hadn't installed. I'm guessing that since I'm already rooted (and I'm hoping) that once I'm done installing all of these packages that that should be it except for step #4 and #5.
1. Run SDK Setup.exe
2. If it gives you any error go to settings and click on "Force http//....."
3. Select usb driver package, let it download and install
4. Some say the below step is not needed, but I did this so I'm posting it
Go to tools folder, and edit "android_winusb.inf" (you can do this by opening it via wordpad). Add the following at the end of the [Google.NTx86] and [Google.NTamd64] blocks:
;HTC Incredible
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C9E
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C9E&MI_01
%SingleBootLoaderInterface% = USB_Install, USB\VID_0BB4&PID_0C94
Save the file and exit.
5). Plug your phone into PC, when windows asks to install drivers for new found hardware, point the New Hardware Found wizaed to android_winusb.inf that you just edited.
I'd also like to add that this is the YouTube video that started this mess. I followed his tutorial on rooting the phone and although the sound was low it was pretty spot on minus one or two things he failed to mention.
However, after watching this video I thought it would be just as easy to install the boot animation as it was to root the phone. Seems the bigger task would be rooting rather than a boot animation. In the hours that you guys have helped me I've learn that this boot video lacks a TRUCK LOAD of information and assumes that the person watching it isn't a noob. Dont' most people that watch tutorial videos watch them because they have no idea what they're doing? I realize now that there's a ton o' stuff missing from it. I still want the animation and sound though.
http://www.youtube.com/watch?v=-Ju9lpH7_4g&feature=channel
Titanium stores backups on your SD card. Nandroid does not backup your SD card, but you are in good shape. Keep us posted.
I'm not sure if step 4 is required, I'm on win7 64bit and I don't recall doing it, but I guess it couldn't hurt. Also, I don't think nandroid backs up your titanium backup -- Ti backup is stored on your SD card
Hi,
I'm new to the business and I spent some time to learn the environment trying different applications and different approaches for almos every action I took. Today, I have not much bigger knowledge, but I finally decided to take few things in my own hands because existing software is not fulfilling my wishes.
I started with this simple script which eases the pain of reinstalling all applications after ROM upgrade. There are few such tools already, but I found those quite bloated with unnecessary thing for my own approach.
With this script I assume:
1. There is/was SSHDroid installed (or any tool with busybox and you can access shell command line) both in old and new ROMs and your ROM have bash installed in /system/bin/.
2. Backup/restore operation includes only INTERNALLY installed applications, it completely ignores SYSTEM and SDCARD installed ones.
3. This is TEMPORARY backup so it should be as fast as possible not caring about occupied space (!). Althought I added -zip parameter to enable compression if you are running out of space on your sd.
4. Installed ROM is clean with no additional apps installed (excluding those needed by the script)
5. You have basic knowledge about bash scripting, because I take NO RESPONSIBILITY of the script behavior or data loss it can do.
So, basically it is simple. It runs like this:
1. On old ROM type: sbackup -backup
2. Flash your ROM
3. On new rom type: sbackup -restore
Just like that. The applications data is tar'ed in one file per application so if you want to get rid of any, just delete it from backup directory. The directory name is same as script name on sdcard but you can change it adding a parameter without a '-' sign at runtime (first non-option parameter is treated as backup directory path). The file is zipped because this forum disallows files without an extension so... it is zipped ;D
It was tested on my fresh LeeDroid 3.3.3 GB AFTER i installed some apps. I backed them up and then restored. All seems to be perfect right now, but I will test it more thoroghly very soon because I'm planninig to have CM7 based ROM too just to choose that I need Sense or not (two nandroids for fast switch weekly ;P).
With this script and MyBackup functionality of backing up contacts, sms, history and similar it should be quite complete approach to restore all the data needed on the fresh ROM. In the future maybe I will look at the MyBackup part too. Maybe.
Feel free to comment, use, suggest or anything you like, and have fun ;P.
How do I run this script? Do i run it from sdcard or from system /bin? When i do it from system bin it says cannot create directory. When i run it from sdcard/sbackup it says permissions denied?
Sent from my ADR6400L using Tapatalk
jgrimberg1979 said:
How do I run this script? Do i run it from sdcard or from system /bin? When i do it from system bin it says cannot create directory. When i run it from sdcard/sbackup it says permissions denied?
Sent from my ADR6400L using Tapatalk
Click to expand...
Click to collapse
And thats why I mentioned in topic about not being a newbie (and I meant not forum newbie but more a linux newbie). The thing is, it's a simple script - without any user-proof capabilities, comments inside or something BUT...
But ok, I will try to help you run it. First of all, you have to set permissions to the script. It has to have executable permission to be run by the system (and I mean filesystem permission). This can be done by chmod instruction of busybox. Most of the times it's done like this:
chmod 755 filename
This is a reason of not running form sdcard if your sdcard is NOT ext filesystem (it is usually windows fat filesystem not to generate problems with reading it under windows).
Second thing to run is to have /system/bin/bash because first line of the script (a comment like this: #!/system/bin/bash) instructs busybox to execute script using bash. This can be simply changed by modifying this line, but you have to remember that changing the shell executing script have consequences. Differens shells have sometimes different syntax, althoght i wrote this script simply so it should run on most of them, especially sh.
Third thing is to have write permissions to the directory in which the backup will be created. In original version of the script it is /sdcard, because backup is made in /sdcard/sbackup. So, you have to check it (second error - problems with creating directory).
And a last tip - it can be run from ANYWHERE. Even if your partition does not alolow executing, you can do it like this:
bash-3.2# /sdcard/test
bash: /sdcard/test: /system/bin/bash: bad interpreter: Permission denied
bash-3.2# . /sdcard/test
OK
bash-3.2#
First try does not succeded, but second did. The trick is a dot which means to execute file with a shell not caring about why or permissions.
And thats most simple introduction I could write. It applies to ANY script you want to run.
Please anyone - if you want me to help, paste your results here because without a precise error message it can be very hard to deduce what caused for example permission denial or anything usual.
For now, I won't add any more error handling, but if there will be more users caring about, I will add it.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
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/showthread.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... :victory:
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
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 ***** 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! :angel:
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)
i think making a batch file was easier
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.
regaw_leinad said:
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.
Click to expand...
Click to collapse
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
regaw_leinad said:
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.
Click to expand...
Click to collapse
O nice, Ill definitely check that out Thanks.
Goatshocker said:
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.
Click to expand...
Click to collapse
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:
Process
code
EDIT:
Stalls on process.WaitForExit() when debugging
regaw_leinad said:
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:
Process
code
EDIT:
Stalls on process.WaitForExit() when debugging
Click to expand...
Click to collapse
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
Goatshocker said:
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
Click to expand...
Click to collapse
ah, you're calling
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"
regaw_leinad said:
ah, you're calling
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"
Click to expand...
Click to collapse
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.
Really nice app
Do you plan to develop a Linux version ?
Great idea, thanks =)
How does it achieve rw access, since device-dependent?
For example, on some devices, in ADB shell, you use
Code:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock0 /system
But, in some, you use mtdblock3 instead of mtdblock0.
Since there's no setting on which mtdblock to use, how does the program know which one is correct?
Theonewithideas said:
How does it achieve rw access, since device-dependent?
For example, on some devices, in ADB shell, you use
Code:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock0 /system
But, in some, you use mtdblock3 instead of mtdblock0.
Since there's no setting on which mtdblock to use, how does the program know which one is correct?
Click to expand...
Click to collapse
adb remount does all the job as you are ultimately using adb..
the command which you specified is used to mount on device shell which you enter by adb shell
madman_amit said:
adb remount does all the job as you are ultimately using adb..
the command which you specified is used to mount on device shell which you enter by adb shell
Click to expand...
Click to collapse
Oh, so that's what it does! lol
Thanks.
Actually, when trying it out, it says, after starting daemon "remount failed, action not permitted"
Nevermind, will check the program, it seems easier...
Looks cool! I shall give this a try later and see how it does with my HTC Rezound.
Thank you for your work!
Wow, responses
Thanks for the feedback guys.
Unfortunely Ive kinda killed my sync cable for my TF (tried to convert it to a usb host adapter^^), and currently dont have any other android device to play with.
So development has kinda stalled right now. Ive got rid of the freeze-when-no-device-connected, but developed another issue instead. Not anything major, but very annoying. The app freezes while it checks for a device >_>, its only for a few seconds, but annoying nevertheless.
As for linux version... Im afraid thats way above my coding skills, and I dont have a linux PC to test on anymore (I killed the laptop which was running linux when I tried to build a touchscreen on it. Yes! I break a lot of things)
Awesome, just what I needed!
Could you please add an option to connect the phone using network?, with the "adb connect" command, I can use a bat file before starting the app but because I have several devices connected to the network the phone´s ip change in time, and having it built in the app would be great
Awesome work, just tried it out now and it's pretty awesome.
I think an adb connect option would be awesome, for those who have adb wireless app on there phone then it'll be really easy to transfer files and it'll be pretty sweet.
Anyway keep up the good work
Hey, just an fyi,
Code:
adb remount
will NOT work if the device connected does not have the option ro.secure=0 in the default.prop of the ramdisk. You shouldn't assume it does, because not all "ROM" developers know how to change it. My library does check for this, but in case you don't want to use it, be sure you can mount the filesystem /system as rw that way, or using the mount binary on the phone directly.
regaw_leinad said:
Hey, just an fyi,
Code:
adb remount
will NOT work if the device connected does not have the option ro.secure=0 in the default.prop of the ramdisk. You shouldn't assume it does, because not all "ROM" developers know how to change it. My library does check for this, but in case you don't want to use it, be sure you can mount the filesystem /system as rw that way, or using the mount binary on the phone directly.
Click to expand...
Click to collapse
Hey thanks for the info. I had no idea about that, remount have always worked on all my devices on all roms Ive tried.
I'll keep that in mind when Ive fixed my sync cable
Could you give an example of a device/rom combo remount does not work on?
Goatshocker said:
Hey thanks for the info. I had no idea about that, remount have always worked on all my devices on all roms Ive tried.
I'll keep that in mind when Ive fixed my sync cable
Could you give an example of a device/rom combo remount does not work on?
Click to expand...
Click to collapse
I can't think of a specific example, but if the developer does compile a boot.img with ro.secure=1, adb remount will not work but lots of 'devs' these days just grab the boot.img from people who actually know what they're doing, so you should be ok, just in rare cases, this will not work.
THIS METHOD IS NO LONGER WORKS as of update version 2.0.5 and higher.
Please visit this thread instead for the current rooting method.
Posting in this thread will get you nowhere, let it RIP.
ANNOUNCEMENT:
If you have a new Nook HD/HD+ and want to root and get the GAPPS running, you should follow the guide at the All-in-One thread instead. That said, I won't copy all the information here to there, so you should continue to read on.
Let me start by saying that I didn't come up with the working root method. The original root instruction came from verygreen in this thread. And I am not a developer, I merely have a few linux background and even less so in the Android. I worked on this on my spare time by myself.
I merely take what was working, but unusable to make it usable. I found something that he is missed. This may actually be working on Nook HD (non-plus) also, but since I don't own one I can't say that it will.
Disclaimer:
If something gone wrong, it's all your fault. I take ZERO responsibility for what happen to your device, your life, your wife/husband, your kids, your unborn child and etc. You get the idea.
Background:
When I found out the root doesn't actually work past a reboot, I start looking what actually cause the Nook to be pissed and factory reset itself. Well, it seem that the /system and anything in there is basically coming from a /dev/block/mmcblk0p8 And if something got change, Nook get pissed and do a FULL FACTORY RESET(I'll explain in a moment). Well, at least I start investigated under that idea.
What I found:
What I found, or at least what I think I found is that, probably just adding file, or increase in the size(maybe there is a threshold for this), will cause it to do a full factory reset. What I also found is that there is a $PATH for /system/sbin but not pointing to anywhere. So I come up with the idea of making another ext4 file system in a file and loop mount it to /system/sbin I guess that work(very well). What I also found is that, there are two kind of factory resets. The one that you perform yourself, which is actually not a full factory reset and the one that Nook get pissed and do the full one.
A factory reset that you perform yourself, whether from the GUI or button combination will basically clean the partition /data while a full blown one will basically restore other partition such as /system
What is included:
basically a zip file, inside that zip file are 6 files.
boot_complete_hook.sh.bak this is basically a modified version of verygreen's
busybox & su are basically from his thread
superuser.apk well I found this one floating around and seem like a good idea to stick it in there (not even sure if it gonna work w/ Nook)
makeroot.bat this is basically what do most of the work. It's base on verygreen original rooting instruction.
sbin_mount This is basically an ext4 file system which have su and another version of busybox all setup nice and tidy for you all. This version of busybox is 1.20.2r2 which I grabbed from here.
Prerequisite:
ADB, it's your responsibility to have adb up and running, meaning not just have it install, but it can see your nook also.
leapinlar wrote a post to help you getting ADB to work here.
Now to get root:
all you have to do is unzip it and run makeroot.bat (obviously you run this in windows command prompt). Yub that's all. The batch file will do the rest, including reboot the nook and wait for it to reboot and stuff. Won't make a coffee for you though.
The manual and hard way:
well, I will only explain this in a summarize way. Basically this start with verygreen rooting method. It basically take advantage of the exploit and run /data/boot_complete_hook.sh which you adb push yourself(with correct permission) with root privilege. What you can run in there is basically up to your creativity. So obviously in this case, you mount the sbin_mount as an ext4 filesystem in the /system/sbin You can make this file yourself if you want to, in linux using dd and mkfs command. Basically using dd to create a file volume to the size you want and mkfs to format it to ext4. Mount it and start uploading stuff you want in there. You will have to correct all the file permission as well. Since all of this will be mounted to /system/sbin you should be aware what you gonna put in there. I guess I could make this thing 100MB, but for this specific purpose 10MB is enough. I my case, just the su and busybox and the symbolic links for the busybox. I'm doing this for the long term. I'm too lazy to point to busybox everytime I wanna do something.
What to do afterward:
Now that you have root, you can Enable Unknown Source to allow you to install app from within the device and install GAPPS. Follow the two guides below if you interested.
Enable Unknown Source: Again, I make an easy little tool for you here.
GAPPS: here.
Did I missed something:
Well, as I said I'm no coder so if I didn't do a clean job, you can refine it. If I didn't document or give proper credit, then I guess I missed that. Sorry about that, again I'm no coder and never done this. And finally:
If this thing work for you, feel free to hit that "THANKS" button. I spent many hours trying to come up with this solution.
FAQ:
Q: My so and so application when attempting to have root access get freeze up, or superuser doesn't work?
A: Well, I'm not sure if this is dued to how the Nook side-loading work or not, but it seem for some reason superuser won't start by itself. So you have to start it manually the first time.
Q: I type in "adb root" and I can't get in as root, it doesn't work?
A: yes it does, it's just not working with adb root. You can get in via "adb shell" once you get in, type in "su" and you can see that you now should have root access.
Thank you so much! This works perfectly. Survives reboot.
here's the Linux version.
Thanks someone0 for getting this started.
Haven't fully tested the linux version, but it loads and starts up, so should work.
extract, and open up terminal and navigate to the dir you extracted to, and type
./makeroot.sh and then enter.
This sounds like a good idea initially.
It is true that the B&N does not just check for /system/xbin/su directly like they did in the past.
This time they check for something else and I just had no time to look into it more deeply to find out what is it they are actually checking for. I plan to figure this out on Friday when I am back home.
Also wanted to tell you that having Linux background is a great thing when tinkering with Android (at a low level, anyway). I don't have much Android background to speak of as well.
This works really well, and thanks to Someone (and mad props too) for getting persistent root working on this.
I may be being very naive, but my suspicion on the reboot is around the manifest file that's present at root.
It seems to be generated by the boot process and it might provide a quick and dirty list of what's permitted on the device to check. With persistent root, lots of investigation becomes a lot less painful. I expect that by end of day we'll have install unsigned running.
Early in my experimenting with the HD+, I noted:
- some versions of the Google Services Framework can be installed via adb
- when I launched the native calendar app after installing gsf, it wanted to sync to a google account, and was able to add the google account
- one version of the Play store installed and launched as far as throwing the 'you must accept the terms of service' before crashing
What BN most likely does is calculating the hash value (or digest, if you prefer) of certain system files that they think shouldn't be tampered with, then during reboot, the values of these files must match, or they will do a factory reset.
The key point is to find out where they do these checks and fool the check.
This sound simple but it depends on how they implement it. If they use binary decisions (like if the hash_value == calculated), then it is easy to get around. If not (e.g. using white box algorithm to hide keys), then it get more complicated.
excellent and very elegant solution. Kudos!
I'm heading out to work, and if you think your theory is right, try poking around with it. Now that your have root, you can try to dd those bootloading partitions out to user area and upload them out to PC and inspect them.
looking at the vold.fstab
Code:
xloader -> /dev/block/mmcblk0p1
bootloader -> /dev/block/mmcblk0p2
recovery -> /dev/block/mmcblk0p3
boot -> /dev/block/mmcblk0p4
rom -> /dev/block/mmcblk0p5
bootdata -> /dev/block/mmcblk0p6
factory -> /dev/block/mmcblk0p7
system -> /dev/block/mmcblk0p8
cache -> /dev/block/mmcblk0p9
userdata -> /dev/block/mmcblk0p10
Be extra careful when touching those partition if you not sure, don't touch them. But making a block copy of them and taking them out should be relatively easy and safe. Obviously you gonna need a Linux box to do this. I setup a VM on one of my PC last night because I need to get a ext4 partition and put all the goodies in there.
krylon360 said:
here's the Linux version.
Thanks someone0 for getting this started.
Haven't fully tested the linux version, but it loads and starts up, so should work.
extract, and open up terminal and navigate to the dir you extracted to, and type
./makeroot.sh and then enter.
Click to expand...
Click to collapse
Just wonder why do use a zip file for the linux version? Wouldn't this kinda messup the permission when compress/uncompress? meaning, makeroot.sh may not have the proper permission when unzip. Please double check.
someone0 said:
Just wonder why do use a zip file for the linux version? Wouldn't this kinda messup the permission when compress/uncompress? meaning, makeroot.sh may not have the proper permission when unzip. Please double check.
Click to expand...
Click to collapse
works just fine.
I chmod a+x'd the script before putting it into the zip.
heh, yeah, it works. Forgot I had my touchpad pluged in and it rebooted it....
whoops.
thanks for posting the location of the /recovery partition. I want to put a copy of htat on ice to prevent BN from undoing any of my work in a future update - I may want some of the fixes they have, but I want to be able to roll them back if needed.
Someone0 are you around can you pm me, Your root works, I installed nook color tools ver .02 in system/app folder and was able to see it in my sideloaded launcher, was able to uncheck/check install non market apps which sets the setting for US to be able to install .apk files from the nook itself, ONLY ISSUE is since I put that file in the system/app folder and the nook didnt like it I got stuck in a bootloop and get to start this process all over again! (nook resetted to ground zero)
maybe we temporary can leave it there get us the permission to install non market apps then remove the file and we will be ok or maybe stuck in another bootloop.
---------- Post added at 09:20 PM ---------- Previous post was at 08:52 PM ----------
GOT IT WORKING NOW:
1. Once rooted, get a file manager with root support and enable read/write permission to /system
2. temporary copy nook tools ver .02 .apk to the system/app folder
3. have a sideloaded launcher and check the app drawer youll see nook tools, run it, first screen uncheck and check the install non market apps box couple of times make sure its checked afterwards
4. have a test .apk to run the BN installer on and see you can now install .apks from the NOOK HD and HD+
5. remove the nook tools.apk file from the system/app folder and quit your file explorer which should reset everything for the system folder back to the way it orginally is!
6. reboot, if you reboot successfully with no boot loop 8 times, your GOLDEN FOR NOW! once again load up a file manager go select an .apk file and see you can now install it! Next step is trying to get amazon market working! then google somehow, but for google you need files in system/app folder permanently!
7. YOU CAN NOW SUCCESSFULLY DOWNLOAD .APK FILES through web, email, any other app and install through the NOOK HD or HD+ BN installer for .apk files. Watch what you install, if it gets put into /system or /system/app folder DREADED BOOT LOOP which resets everything! AMAZON MARKET WORKS!!!! and apps from there install fine to the BUILT IN MEMORY.
** Hopefully amazon market dont install stuff to the system/app folder and if it does hopefully you do not get the dreaded boot loops where you got to start this whole process over again so be forwarned!!! you will loose all data on NOOK HD and HD+ if u get stuck in the bootloops! BACKUP STUFF before messing with root and this kind of thing! DEVELOPMENT!
Aside from moving the actual apk to /system/app/ temporary (since you only do it once), putting a symbolic link there may work also without creating a reset loop. But can't you just side load the apk and run it in other folder?
someone0 said:
Aside from moving the actual apk to /system/app/ temporary (since you only do it once), putting a symbolic link there may work also without creating a reset loop. But can't you just side load the apk and run it in other folder?
Click to expand...
Click to collapse
when you sidelaod it OR install or have it installed to another folder or ran from another folder it cant modify the setting to allow non market apps to install!!
has to be in the /system/app folder THEN RAN from app drawer then you can set the setting uncheck and check box quit program and for now YOU HAVE to remove the .apk from the system/app folder and then you can reboot and the setting sticks! I GOT AMAZON MARKET INSTALLED right now installing apps! NOW WE GOT A KINDLE ladys and gentleman!
Amazon apk installs in internal memory. Apps downloaded from Amazon get installed in internal memory. You can then move them to SD card or leave them in internal memory. System apps are provided in the ROMs by the developers or vendors. ALWAYS back up before making system changes.. Now rooted - use Titanium Backup. System/app should be static throughout ROM lifecycle unless modified by user.
skyhawk21 said:
7. YOU CAN NOW SUCCESSFULLY DOWNLOAD .APK FILES through web, email, any other app and install through the NOOK HD or HD+ BN installer for .apk files. Watch what you install, if it gets put into /system or /system/app folder DREADED BOOT LOOP which resets everything! AMAZON MARKET WORKS!!!! and apps from there install fine to the BUILT IN MEMORY.
** Hopefully amazon market dont install stuff to the system/app folder and if it does hopefully you do not get the dreaded boot loops where you got to start this whole process over again so be forwarned!!! you will loose all data on NOOK HD and HD+ if u get stuck in the bootloops! BACKUP STUFF before messing with root and this kind of thing! DEVELOPMENT!
Click to expand...
Click to collapse
This is why I put the /system back to ro, at least that is what I think I did.
Amazon Store working on ROOTED Nook HD
Proof of Concept:
http://youtu.be/wCyd730L74Y
skyhawk21 said:
Proof of Concept:
http://youtu.be/wCyd730L74Y
Click to expand...
Click to collapse
LOL, your internet is slow. Could have cut the video time by 1/2 if not 2/3 if you switch to faster ISP.
skyhawk21 said:
Someone0 are you around can you pm me, Your root works, I installed nook color tools ver .02 in system/app folder
Click to expand...
Click to collapse
What exactly did you install? I cannot find "nook color tools" in Google Play or on APKTOP. Thanks for your hard work!
NEVERMIND! I found the thread that has the link for the app: http://forum.xda-developers.com/showthread.php?t=868366 Thanks again.
does this root method work on Nook HD+2.0.2?
if not how I can downgrade to 2.0.0?
Greetings, and welcome to the home of a little set of utilities I'm calling "DroidShell".
What it is:
DroidShell is my attempt at bridging the gap between the various android utilities used for ROM modification and the Windows explorer system. It is a series of scripts that are automatically associated with .apk, .jar, and .iso files so that they are automatically decompiled on double-click or enter. Additionally, when a file is decompiled, a corresponding .dcp, dcf, or dci (decompiled package, decompiled framework, decompiled image) file is created, which allows for automatic recompiling, as well as optional cleanup, or resigning.
The goal of this project is pretty simple...to have all the tools needed for ROM work in one place, and have them easily accessible without having to have eighty command windows open or to have to go through a chain of commands to create a usable apk/jarfile.
Features:
One-shot setup. Extract the files, run install/installer.bat, and all of the necessary file associations and paths are created.
Batch terminal integration - provides integration for adb, fastboot, apktool, 7zip, zipalign, oat2dex, unpackbootimg, repackbootimg, baksmali and smali in windows command-line interface from path.
Automagic association with common android filetypes for decompilation.
Custom placeholder files - dcp, dcf, and dci - for packages, framework, and image files. Allows for automatic recompiling, and optional signing and cleanup of decompiled files.
Recompiled apks and jars are automatically repacked with modified files while excluding androidmanifest.xml, meaning signatures are unaffected.
For modifications requiring androidmanifest be changed, you can right-click a .dcp file to recompile with signature.
Auto-detection of framework-res file with prompting to install.
Popup dialogue boxes for errors and alerts.
(NEW) Right-click to decompile to java code. This cannot be recompiled, but is great for researching more complex mods. (Can also be invoked by using the command dj filename.apk)
(NEW) Support for sparse image system -> .img conversion.
(NEW) za command for zipaligning apk's.
(NEW)
Download:
https://github.com/d8ahazard/DroidShell/archive/master.zip
Source:
https://github.com/d8ahazard/DroidShell
Instructions...
You need the Java Runtime Environment (RE). Get it here.
Extract to a folder somewhere. Spaces in the path are probably not good. I put it in C:\DroidShell
Browse to the folder. Go into the install folder. Run installer.bat. (Installer needs admin priveleges. It will prompt for them, but in some cases, you may have to automatically run as admin)
Reboot.
You should now have shell integration. APKs, Jars, and .img files will automagically decompile.
It's late, I've been working on this all weekend...but it should be good to go. Please let me know if you have any thoughts.
CHANGELOG:
Code:
02.02.16 - v2.0
Update smali, baksmal to v. 2.1.1.
Add shell script for oat2dex (not implemented in context menus, just avaialable for now)
Update APKTool to latest version
Add dx.jar - for converting java classfiles to .dex (just available for now)
Add ext4 and ext2 tools - For manually unpacking images if needed. These are GUI based, not my work.
Add rimg2sdat - For converting .img to sparse (Not implemented yet)
Update sdat2img to latest version by xspirit, added python to installer as required.
Add zipalign function (Not implemented, can be called via "za filename.apk"
Add decompile to pure Java:
This utilizes a few tools to take apk's and jarfiles and decompile them to as close of an android package as we can get without having the actual source code. While we cannot at this time recompile these into apk's, it is very useful for analysis when trying to implement other mods. Like...really helpful. This one can be accessed by right-clicking a decompileable package and picking "decompile to java".
01.31.15 - v1.8
Added windows progress bar for file copies in system.img extraction.
Fixed some script errors.
01.29.15 - v1.7
Cleaned up installer, added more verbosity.
Better error checking in image extractor.
Add support for .list files, allowing double-click extraction of system.transfer.list and cm12-style image files.
Added custom language files for notepad++, allows syntax highlighting of .smali and logcat files.
01.27.15 -v1.6
Added support for system images. Requires installation of included OSFMount.
Added file associations for common plaintext android files to notepad++ if installed.
Converted several .bat files to .exe, allows for icons, inclusion of required files, and UAC prompting when needed.
01.26.15 - v1.5
Fixed fatfinger in APKtool detection causing error.
01.26.15 - v1.4
Added zipaligning
Added check to make sure apktool is present
Updated test-keys to latest AOSP version
Compiled batches to .exe with required files for AIO-packages
Fixed: Installer not always associating with files correctly.
Thanks a million
Version 1.5 uploaded.
Added Zipaligning
Check to make sure apktool.jar is found in %DROIDROOT% directory.
Updated signing keys.
Switch from .bat to .exe, allows modularization of functions, cleaner.
Modifications to installer to try and fix some issues with file associations.
Fixed issue between 1.4 and v 1.5 where I fatfingered a check.
Hell yes!
digitalhigh said:
Greetings, and welcome to the home of a little set of utilities I'm calling "DroidShell".
What it is:...
Click to expand...
Click to collapse
So many thanks for this! I'm going to use it like hell!
Excellent Job!
I'm bookmarking this, gona read it thuroughly at breakfas
So I'm curious - has anybody had a chance to give this a try yet?
Testing file association stuff is tricky, because Windows likes to keep track of the "user selected" association too. So, I had to add some extra commands to the installer script to clean up everything appropriately first.
Either way, I've ran it on like three different computers "clean" and had it work like a charm on all of them. I'd like to know how it works with WIndows 7 or XP.
I could be doing something wrong (windows is not my OS of choice, I use kubuntu 14.10 as my daily driver, and as such am mostly illiterate in dos/batch, I'm a sh/bash guy), but the installer bombed out (hung up without confirmation of success) on my windows 7 pro install (on a dell latitude e6400, with a dual core core2 @2.8ghz, quattro 160m graphics, 4gb of ddr2 @800mhz, booting off a 120gb Samsung evo ssd. Wouldn't think its relevant, but just in case).
Steps:
First I decompressed the .zip in the root of my C:\ drive, with 7zip (did not change file name, kept as "DroidShell_1.5").
Next I ran the installer script.
I then granted it admin privileges.
It killed my desktop, explorer.exe. I assume this is normal due to the terminal output:
Code:
SUCCESS: The process "explorer.exe" with PID 3260 has been terminated
Then I got:
Code:
file type 'apk_auto_file' not found or no open command associated with it.
Followed by 4 more identical errors, just replace "apk" with dfc, dcp, dci, img.
A bunch of successful operations.
Then:
Code:
ERROR: Invalid syntax.
Type "REG ADD /?" for usage
A bunch of successful operations.
Then:
Code:
ERROR: The system was unable to find the specified registry key or value.
The above output repeats 17 times.
Then 4 more operation success messages and it hangs, with my desktop killed.
Ctrl+alt+del, logout, log in, and I'm back in business. No noticeable increase in disk space, no newly installed programs (as expected).
I read the op, and from my understanding it doesn't require any dependencies? (Apktool, android SDK, android studio, etc). All the necessary dependencies are built in, right? It's a fresh install of windows 7 pro, with all available updates taken.
EDIT:
It worked perfectly regardless of the errors, see my post on page 2.
thisguysayswht said:
I could be doing something wrong (windows is not my OS of choice, I use kubuntu 14.10 as my daily driver, and as such am mostly illiterate in dos/batch, I'm a sh/bash guy), but the installer bombed out on my windows 7 pro install (on a dell latitude e6400, with a dual core core2 @2.8ghz, quattro 160m graphics, 4gb of ddr2 @800mhz, booting off a 120gb Samsung evo ssd. Wouldn't think its relevant, but just in case).
Steps:
First I decompressed the .zip in the root of my C:\ drive, with 7zip (did not change file name, kept as "DroidShell_1.5").
Next I ran the installer script.
I then granted it admin privileges.
It killed my desktop, explorer.exe. I assume this is normal due to the terminal output:
Code:
SUCCESS: The process "explorer.exe" with PID 3260 has been terminated
Then I got:
Code:
file type 'apk_auto_file' not found or no open command associated with it.
Followed by 4 more identical errors, just replace "apk" with dfc, dcp, dci, img.
A bunch of successful operations.
Then:
Code:
ERROR: Invalid syntax.
Type "REG ADD /?" for usage
A bunch of successful operations.
Then:
Code:
ERROR: The system was unable to find the specified registry key or value.
The above output repeats 17 times.
Then 4 more operation success messages and it hangs, with my desktop killed.
Ctrl+alt+del, logout, log in, and I'm back in business. No noticeable increase in disk space, no newly installed programs (as expected).
I read the op, and from my understanding it doesn't require any dependencies? (Apktool, android SDK, android studio, etc). All the necessary dependencies are built in, right? It's a fresh install of windows 7 pro, with all available updates taken.
Click to expand...
Click to collapse
Bombed out is a rough term. The installer is just writing a bunch of registry keys, and deleting some other ones to make sure other associations don't mess it up. So, some registry operations don't always work - there just there to be sure. I've actually worked on cleaning that up in the next iteration I'm cooking.
And yes, there shouldn't be any more size increase past extracting the original zip. All the files used are enclosed. "Installer" is just telling Windows that "droid shell is at location %CD%" and "use app xxx in %CD% to open file XX". A few extras for the right-click context menus and icons...so forth.
So, to know if it is working is really just a matter of finding an apk or .jar and double-clicking it. You should get a terminal window showing the process and a box confirming success or failure, plus a reason why if failure.
The only dependency is the Java Runtime environment, which is the same common necessity as for any other Apktool environment. You can get it here, and I'll throw that link in the OP in a second.
The next iteration of the installer is going to be a lot cleaner, plus be more verbose so you actually know what it's doing. My first thought in putting it out was just to see how well the decompile/recompile stuff worked.
Bombed out is a rough term. The installer is just writing a bunch of registry keys, and deleting some other ones to make sure other associations don't mess it up. So, some registry operations don't always work - there just there to be sure. I've actually worked on cleaning that up in the next iteration I'm cooking.
And yes, there shouldn't be any more size increase past extracting the original zip. All the files used are enclosed. "Installer" is just telling Windows that "droid shell is at location %CD%" and "use app xxx in %CD% to open file XX". A few extras for the right-click context menus and icons...so forth.
So, to know if it is working is really just a matter of finding an apk or .jar and double-clicking it. You should get a terminal window showing the process and a box confirming success or failure, plus a reason why if failure.
The only dependency is the Java Runtime environment, which is the same common necessity as for any other Apktool environment. You can get it here, and I'll throw that link in the OP in a second.
The next iteration of the installer is going to be a lot cleaner, plus be more verbose so you actually know what it's doing. My first thought in putting it out was just to see how well the decompile/recompile stuff worked.
Click to expand...
Click to collapse
I didn't mean to offend with the term "bombed out", it may have been a bit of a rough term. I just meant the script terminated my desktop and hung up.
It actually succeed regardless of the errors, and is working like a charm. I apologize, I should have actually tested it before posting. I shouldn't have assumed that it didn't work based off of the terminal output/behavior.
Also, I would like to say that I greatly appreciate the work that you put into this, and all your other projects here on xda. I'm running your 4.4.4 gpe port for the verizon m8 as my primary rom, and it is by far the most stable port I have ever had the pleasure of flashing.
Attached are screenshots of DroidShell successfully decompiling and recompiling an apk with a simple right click selection on windows 7 pro. Good stuff.
Thanks! tons
Thanks for the work. very useful.
The compiling and decompiling of apk is perfect on Win 7 pro.
From the OP, i also got the impression it would unpack / pack images, so i tried it with a system.img copied to the droidshell directory.
With the command c:\droidshell\unpackimg system.img, I got the error as shown in screenshot
Am I doing something wrong, or is this not supported yet?
arbit12 said:
Thanks for the work. very useful.
The compiling and decompiling of apk is perfect on Win 7 pro.
From the OP, i also got the impression it would unpack / pack images, so i tried it with a system.img copied to the droidshell directory.
With the command c:\droidshell\unpackimg system.img, I got the error as shown in screenshot
Am I doing something wrong, or is this not supported yet?
Click to expand...
Click to collapse
It only works for boot images at the moment. System images are a different beast.
Sent from my HTC6525LVW using XDA Free mobile app
digitalhigh said:
It only works for boot images at the moment. System images are a different beast.
Sent from my HTC6525LVW using XDA Free mobile app
Click to expand...
Click to collapse
Okay. Thanks for the info.
thisguysayswht said:
I didn't mean to offend with the term "bombed out", it may have been a bit of a rough term. I just meant the script terminated my desktop and hung up.
It actually succeed regardless of the errors, and is working like a charm. I apologize, I should have actually tested it before posting. I shouldn't have assumed that it didn't work based off of the terminal output/behavior.
Also, I would like to say that I greatly appreciate the work that you put into this, and all your other projects here on xda. I'm running your 4.4.4 gpe port for the verizon m8 as my primary rom, and it is by far the most stable port I have ever had the pleasure of flashing.
Attached are screenshots of DroidShell successfully decompiling and recompiling an apk with a simple right click selection on windows 7 pro. Good stuff.
Click to expand...
Click to collapse
Oh, no offense taken.
I came at this project, as I do with most, with the mindset of "OOOH, SHINY THING. I MUST SHOW EVERYONE." So, first thought was putting out the app, despite some of the install stuff being a bit dirty.
However, the next iteration is shaping up to be quite lovely. See below.
arbit12 said:
Okay. Thanks for the info.
Click to expand...
Click to collapse
So, it appears that this question has motivated me to try making that function a reality sooner than later.
However, as far as I can see, the *ONLY* application for windows that currently deals with system images right now is Ext2Explore, which is a bit old and doesn't have command-line support.
Fortunately, there's source code for it, so I'm currently downloading Visual Studio and will see if I can add command line functionality, as well as make it launch with UAC prompting.
If I can make this work, my plan is to make one handler for .img files that works like so:
1. Look at the file passed to it and see if it's a boot image. If it is, extract and exit.
2. If it's not a boot image, try to extract it as a system image. If it is, extract and exit.
3. If it's not a boot or system image - pass it to explorer and mount as usual.
I can do # 1 and #3 already...it's just getting #2 to go.
Also, I've added a check in the installer that looks for the installation of notepad++. If it finds it, it will create additional associations for .xml, .prop, conf, config, .smali, and whatever else I can think of that I could possibly need to edit in a ROM.
Then, lastly, with all these additions, I'd like to make the installer a bit more verbose. Give some options so it's not just an all or nothing install, make it prettier, etc.
digitalhigh said:
Oh, no offense taken.
I came at this project, as I do with most, with the mindset of "OOOH, SHINY THING. I MUST SHOW EVERYONE." So, first thought was putting out the app, despite some of the install stuff being a bit dirty.
However, the next iteration is shaping up to be quite lovely. See below.
So, it appears that this question has motivated me to try making that function a reality sooner than later.
However, as far as I can see, the *ONLY* application for windows that currently deals with system images right now is Ext2Explore, which is a bit old and doesn't have command-line support.
Fortunately, there's source code for it, so I'm currently downloading Visual Studio and will see if I can add command line functionality, as well as make it launch with UAC prompting.
If I can make this work, my plan is to make one handler for .img files that works like so:
1. Look at the file passed to it and see if it's a boot image. If it is, extract and exit.
2. If it's not a boot image, try to extract it as a system image. If it is, extract and exit.
3. If it's not a boot or system image - pass it to explorer and mount as usual.
I can do # 1 and #3 already...it's just getting #2 to go.
Also, I've added a check in the installer that looks for the installation of notepad++. If it finds it, it will create additional associations for .xml, .prop, conf, config, .smali, and whatever else I can think of that I could possibly need to edit in a ROM.
Then, lastly, with all these additions, I'd like to make the installer a bit more verbose. Give some options so it's not just an all or nothing install, make it prettier, etc.
Click to expand...
Click to collapse
Captain_Throwback said:
Click to expand...
Click to collapse
Don't get too excited. I've never touched C++ before, and ext2Explore was done in VisualStudio.net and a WYSIWYG editor called QT. I found updated source for the program from 2012 and have gotten it to import into QT, however, it needs MingW and some other dependencies. I'll be lucky if I can even get it to compile again, let alone work, let alone work with added command-line stuff.
However, that's still the goal.
Also, I want to add wget (windows equivalent) stuff to auto grab and install java and notepad++ while we're at it.
So, I think Ext2Explore is more work than it's worth.
OSFMount, on the other hand, just let me mount a system.img as a removable disk with read-write access. I'm going to go down this road...
Good to hear that. Extracting system.img on windows can be a real pain at times - this would be great.