I searched around and couldn't get a clear answer. I'm a noob at anything command prompt/terminal related.
I was screwing around with adb last night after figuring out that I can remove program .apks with the rm <com.whatever.program> command. I got a little trigger happy and removed things that I don't use, just to test it out. I made a nandroid backup before I started. The phone runs fine, but now the Market won't download anything. It just sits on the Starting download... screen.
One of the .apks I removed was GmailProvider.apk. Whether this is the problem or not, I'd like to reinstall it for practice. I can always nand restore later.
So my question is... How can I use adb push to reinstall an apk?
I tried:
Code:
adb push C:\GmailProvider.apk
adb install C:\GmailProvider.apk
adb install C:\GmailProvider.apk \system\app
And about every variation of the 3, in and out of the adb shell.
It didn't work, and I'm at a loss to do anything else. So does anyone have any suggestions?
You have to push it abs then give it permissions.
So after pushing the apk give it permissions by doing this.
Code:
Adb push C:/gmailprovider.apk /system/app/gmailprovider.apk
adb shell
Chmod 775 /system/nameofapp.apk
Exit
Adb reboot
Your phone needs to be rebooted so I added the adb reboot, but you can just turn it off and on like you would normally or use that command.hope it helps.
Sent from my Eris using XDA App
Code:
# Chmod 775 /system/GmailProvider.apk
Chmod: not found
What's Chmod do, anyway?
EDIT: Forgot to cd to the directory...lemme try again.
EDIT2: Same error.
Okay, I tried:
Code:
# install /system/app/GmailProvider.apk [-cdDsp]
With no errors. Lemme see if it worked.
EDIT: I can see it, but the Market still isn't downloading apps. Lemme try an actual program.
Raikalo said:
Code:
# Chmod 775 /system/GmailProvider.apk
Chmod: not found
What's Chmod do, anyway?
EDIT: Forgot to cd to the directory...lemme try again.
EDIT2: Same error.
Click to expand...
Click to collapse
Ok I see two things that might be wrong with what you did.
Try not capatalizing the first letter(Not sure if this is a big deal but better to make sure.) and fix your path, GmailProvider.apk should be in the system/app folder.
Code:
adb shell
chmod 775 /system/app/GmailProvider.apk
adb reboot
The chmod command (abbreviated from change mode) is a shell command and C language function in Unix and Unix-like environments. When executed, it can change file system modes of files and directories. The modes include permissions and special modes
EDIt:
Raikalo said:
Okay, I tried:
Code:
# install /system/app/GmailProvider.apk [-cdDsp]
With no errors. Lemme see if it worked.
EDIT: I can see it, but the Market still isn't downloading apps. Lemme try an actual program.
Click to expand...
Click to collapse
Yea you might be able to see it but the app might not have the right permissions to be used. Therefore it might be the reason why you can't download apps from market.
Excellent.
Code:
adb push C:/GmailProvider.apk /system/app/GmailProvider.apk
adb shell
chmod 775 /system/app/GmailProvider.apk
adb reboot
Worked like a charm. The capitalization was required; it gave an error without it. I installed Gmail.apk again using the same method and ran the program, and it worked. Thanks!
EDIT: GASP! Market works.
You're a lifesaver. Well, ROMsaver. I guess this means that GmailProvider.apk and gtalkservice.apk can't be removed from the phone.
Raikalo said:
However, the Market still won't download. Hm.
Click to expand...
Click to collapse
I just want to take this moment to make a Public Service Announcement: Everyone please remember to do a Nandroid backup before making any changes to your /system area.
Raikalo said:
Excellent.
Code:
adb push C:/GmailProvider.apk /system/app/GmailProvider.apk
adb shell
chmod 775 /system/app/GmailProvider.apk
adb reboot
Worked like a charm. The capitalization was required; it gave an error without it. I installed Gmail.apk again using the same method and ran the program, and it worked. Thanks!
However, the Market still won't download. Hm.
Click to expand...
Click to collapse
Don't know what to tell ya, you can start adding back the apks you deleted or do that nand restore since you already know how to install back a system apk, so you learned what you wanted
EDIT: I see you got it to work so that's good news, but like Nestor pointed out always use nand backup before you do any changes to the system area, I've learned to do this the hard way lol.
It's a good reminder
Thanks a ton guys I'll nand backup in a few to have a better restore point.
Learning android-related things ftw!
Oh, one more thing.
I saw something about adding an Environmental Variable to windows that involved adb? Could someone explain that?
- Also, Mikey1022 has reminded me to add the "ADB" directory path as a system variable in windows...
To do this right-click on "My Computer" and select Properties. Next select the Advanced tab(Advanced Settings in Vista) then select Environment Variables.
Click "New" under System Variables and add the following:
Variable: adb
Value: C:\android-sdk-windows-1.1_r1\tools
Click to expand...
Click to collapse
There's an example. I tried this and it didn't do anything.
Raikalo said:
Oh, one more thing.
I saw something about adding an Environmental Variable to windows that involved adb? Could someone explain that?
There's an example. I tried this and it didn't do anything.
Click to expand...
Click to collapse
i think Thefuzz4.net explained this better
To make life easier, lets add a global path to the android SDK tools. Right-click My Computer > Properties,
click on Advanced, then click on Environment Variables.
Doubleclick on PATH, then at the end of the Variable value, add a semi colon ";" and then c:\AndroidSDK\tools
Doing The above ^^ will let you run adb from anywhere on your computer, like your desktop. You won't have to change to the directory and the run adb anymore, you can just run adb from anywhere on the command prompt. Its basically a little trick for us lazy people that hate having to "cd C:/android/tools" before running adb.
Does anyone know of a good resourse for adb and/or shell commands. Every time i try to goole it i just get links to different forums with just basic stuff, push, pull, ect. Id like to find something much more complete including chmod and the like
Sent from my Eris using XDA App
Thanks t2. Makes sense now. I hate CDing to the directory, so shortcuts are also ftw.
@above -- couldn't find a real resource so I resorted to asking specific questions on xda. if you find a resource lemme know.
ALSO -- chmod 775 /system/app/RandomProgram.apk.....what does the "775" do?
Raikalo said:
Thanks t2. Makes sense now. I hate CDing to the directory, so shortcuts are also ftw.
@above -- couldn't find a real resource so I resorted to asking specific questions on xda. if you find a resource lemme know.
ALSO -- chmod 775 /system/app/RandomProgram.apk.....what does the "775" do?
Click to expand...
Click to collapse
the different numbers are different permission settings. I forgot the other numbers, but their are others that set the applications for different permissions in the system. Someone correct me if I am mistaken though.
Finally found some explanation of chmod at catcode.com/teachmod/ . not sure if it directly applies to andriod, but seems to make sense to me now
Sent from my Eris using XDA App
wrong thread
Related
Hi,
After reading this thread and learning that you CAN replace HTC's apps with stock Android ones, I have started messing around to see what other apps I can / should change. I'll use this thread as kind of a log, so if I mess things up I can come back and see where I went wrong. Fellow noobs can surely use it too!
I am using SDK in Ubuntu, but the procedure should be pretty similar in Windows.
First, follow the Unlockr's method to root your phone.
Download a stock Android rom and extract its /system/apps folder inside /sdk/tools. I named the folder "Apps-stock
Check if Ubuntu recognises your phone:
Code:
./fastboot devices
Load the recovery image and mount the system:
Code:
./fastboot boot cm-hero-recovery.img
./adb shell mount /system
Replacing HTC's calendar:
Code:
./adb shell rm /system/app/Calendar.apk
./adb shell rm /system/app/Calendar.odex
./adb push Apps-stock/Calendar.apk /system/app/
I'll edit the thread, add details as I go on
Nice one!
Please keep us informed!
Thanks for this thread.
Post moved to a more appropriate topic :
http://forum.xda-developers.com/showthread.php?p=4477971#post4477971
Thanks for setting this thread up!
Firstly, you should probably say in the first post that everyone should do a Nandroid backup first - it's saved my bacon. Might be an idea to link to the files, too?
Second, I've got a problem trying to run this method. I removed the original calendar.apk and .odex without any problems, and copied the new one over, but on rebooting, it wasn't in the list of applications anywhere. I browsed there in Astro and opened the file, which gave me an option to install it - which then gave an error of "Calendar could not be installed on this device".
I'm running the MoDaCo 2.1 custom ROM and using the calendar.apk from this thread.
Thanks for your time!
fastboot
can you tell me where this fastboot command is located? I am using Ubuntu too, but can not find fastboot. What is it for by the way?
dragonflyFZX said:
can you tell me where this fastboot command is located? I am using Ubuntu too, but can not find fastboot. What is it for by the way?
Click to expand...
Click to collapse
fastboot and adb are executables you get from the Android SDK - see here.
This thread does require your phone to be rooted, though, which would require you to have already used adb at least once....
frandavid100 said:
........
Replacing HTC's calendar:
Code:
./adb shell rm /system/app/Calendar.apk
./adb shell rm /system/app/Calendar.odex
./adb push Apps-stock/Calendar.apk /system/app/
I'll edit the thread, add details as I go on
Click to expand...
Click to collapse
how about simply replacing those files using a file explorer (like linda)? possible, or would that screw up my system?
just a refresher to help those trying to read the dozens of new pages credit goes to david279, Gregalous and others
MMS FIX - WORKS
cd C:\android-sdk-windows\tools
adb shell
cd /data/data/com*telephony/databases
sqlite3 telephony.db
update carriers set mmsc='http://mms.sprintpcs.com?X-MDN=YOUR11DIGITNUMBER' where name='Production'; *input your phone number example 13303214294 dont forget the'*
adb reboot
QUICKBOOT FIX - WORKS
cd C:\android-sdk-windows\tools
adb remount
adb push reboot /system/bin
adb shell
cd /system/bin/
ls **optional...I did this just so I could make sure the reboot file was there**
chmod 755 reboot
chmod 755 /system/bin/reboot
adb reboot
3D GALLERY INSTALL - WORKS
cd C:\android-sdk-windows\tools
adb remount
adb push Gallery3D.apk /system/app
adb reboot
REOCCURRING SIGN-IN FAILURE - DOESN'T WORK
install google voice 0.2
MARKET NOT SHOWING INSTALLED APPS - WORKS FOR MANY (may fix failing sign-in error at boot)
cd C:\android-sdk-windows\tools
adb pull /system/build.prop .
used wordpad (don't use MS notepad) to edit build.prop with the following:
ro.build.fingerprint=google/passion/passion/mahimahi:2.1/ERD79/22607:user/release-keys
ro.cdma.home.operator.numeric = 310120 (note 310120, not 310012)
ro.cdma.home.operator.alpha = Sprint
ro.com.google.clientidbase=android-sprint
adb remount
adb push build.prop /system/
clear market cache
adb reboot
REPLACE LOCKSCREEN - WORKS
cd C:\android-sdk-windows\tools
adb remount
adb shell
cd /system/app/
rm HtcLockScreen*
exit
reboot phone
I did not mean for the original title to be dirogitory i simply ment to make it as clear as posible it fixes many problems that we have had in that rom i dont want somone applying it to another 2.1 rom that it doesnt work for and coming back and saying ruler why wernt you more clear...
this was all posted (in one post) by rank78 i reposted so i could make a wiki page out of it (the fix finds were descovered by multilple people if you want your name up here pm me and il put it up)
these problems are more-so in all 2.X roms, the way your title is is like your bashing, but thanks anyway
lv2bll said:
these problems are more-so in all 2.X roms, the way your title is is like your bashing, but thanks anyway
Click to expand...
Click to collapse
x2 but thanks for the effort.
Great info, but can you edit the title of the post? It seems a bit harsh to flipz. All these guys deserve the utmost respect for doing these ROMs and not asking for much from us.
Just my 2 cents, thanks again.
wow people are sensitive. he's not bashing flipz...
rank78 also posted the links to the files needed for these fixes, i think it would be a good idea to post them on the first post of this topic
Great
Thanks Rolermon,
Quick question, would the MMS fix work for the 2.1 Darchdroid? Also, when you said step 5. update carriers set mmsc='http://mms.sprintpcs.com?X-MDN=YOUR11DIGITNUMBER' where name='Production'; -----------are we to changing the MDN=************ for something on our end, or do we leave it as it is?
Edit---------Another question on the QUICKBOOT FIX - WORKS--------
Where do I find the reboot file that I need to push to /system/bin?
Kykiskly said:
Thanks Rolermon,
Quick question, would the MMS fix work for the 2.1 Darchdroid? Also, when you said step 5. update carriers set mmsc='http://mms.sprintpcs.com?X-MDN=YOUR11DIGITNUMBER' where name='Production'; -----------are we to changing the MDN=************ for something on our end, or do we leave it as it is?
Edit---------Another question on the QUICKBOOT FIX - WORKS--------
Where do I find the reboot file that I need to push to /system/bin?
Click to expand...
Click to collapse
Tried the MMS fix on Darch's 2.1 ROM... no luck.
link to the post with files needed to fix. i pm'ed flip to add these to the first post.
http://forum.xda-developers.com/showpost.php?p=5799963&postcount=1908
rank78 said:
link to the post with files needed to fix. i pm'ed flip to add these to the first post.
http://forum.xda-developers.com/showpost.php?p=5799963&postcount=1908
Click to expand...
Click to collapse
Thanks Rank- How do I get the 11 MDN number from my phone?
Kykiskly said:
Thanks Rank- How do I get the 11 MDN number from my phone?
Click to expand...
Click to collapse
its just 1, area code, phone number = 11
Kykiskly said:
Thanks Rank- How do I get the 11 MDN number from my phone?
Click to expand...
Click to collapse
I believe it is your phone number 1-234-567-8901 that is 11
Kykiskly said:
Thanks Rolermon,
Quick question, would the MMS fix work for the 2.1 Darchdroid? Also, when you said step 5. update carriers set mmsc='http://mms.sprintpcs.com?X-MDN=YOUR11DIGITNUMBER' where name='Production'; -----------are we to changing the MDN=************ for something on our end, or do we leave it as it is?
Edit---------Another question on the QUICKBOOT FIX - WORKS--------
Where do I find the reboot file that I need to push to /system/bin?
Click to expand...
Click to collapse
fyi the quickboot fix is for the program quickboot that wasn't functioning after flashing the rom.
the reboot file is zipped in my post
rank78 said:
fyi the quickboot fix is for the program quickboot that wasn't functioning after flashing the rom.
the reboot file is zipped in my post
Click to expand...
Click to collapse
Many thanks, but I was able to push the file to the destination. About the MMS, i did as instructed, still didn't help at all. I am not able to mms pics out either.
I am on Darchdroid V1 2.1
You guys probably know a lot more about this than I do, but shouldn't the MMS link be:
http://mms.sprintpcs.com/servlets/MMS?X-SPRINT-MDN="Your MSID Number" ?
on my hero, i just put in:
http: //mms.sprintpcs.com/servlets/MMS
and it worked.
rulermon said:
just a refresher to help those trying to read the dozens of new pages credit goes to david279, Gregalous and others
MMS FIX - WORKS
cd C:\android-sdk-windows\tools
adb shell
cd /data/data/com*telephony/databases
sqlite3 telephony.db
update carriers set mmsc='http://mms.sprintpcs.com?X-MDN=YOUR11DIGITNUMBER' where name='Production'; *input your phone number example 13303214294 dont forget the'*
adb reboot
QUICKBOOT FIX - WORKS
cd C:\android-sdk-windows\tools
adb remount
adb push reboot /system/bin
adb shell
cd /system/bin/
ls **optional...I did this just so I could make sure the reboot file was there**
chmod 755 reboot
chmod 755 /system/bin/reboot
adb reboot
3D GALLERY INSTALL - WORKS
cd C:\android-sdk-windows\tools
adb remount
adb push Gallery3D.apk /system/app
adb reboot
REOCCURRING SIGN-IN FAILURE - DOESN'T WORK
install google voice 0.2
MARKET NOT SHOWING INSTALLED APPS - WORKS FOR MANY (may fix failing sign-in error at boot)
cd C:\android-sdk-windows\tools
adb pull /system/build.prop .
used wordpad (don't use MS notepad) to edit build.prop with the following:
ro.build.fingerprint=google/passion/passion/mahimahi:2.1/ERD79/22607:user/release-keys
ro.cdma.home.operator.numeric = 310120 (note 310120, not 310012)
ro.cdma.home.operator.alpha = Sprint
ro.com.google.clientidbase=android-sprint
adb remount
adb push build.prop /system/
clear market cache
adb reboot
REPLACE LOCKSCREEN - WORKS
cd C:\android-sdk-windows\tools
adb remount
adb shell
cd /system/app/
rm HtcLockScreen*
exit
reboot phone
I did not mean for the original title to be dirogitory i simply ment to make it as clear as posible it fixes many problems that we have had in that rom i dont want somone applying it to another 2.1 rom that it doesnt work for and coming back and saying ruler why wernt you more clear...
this was all posted (in one post) by rank78 i reposted so i could make a wiki page out of it (the fix finds were descovered by multilple people if you want your name up here pm me and il put it up)
Click to expand...
Click to collapse
There still needs to be appropriate quit and .quit statements added in to get out of sqlite3 and shell.
ripleys said:
You guys probably know a lot more about this than I do, but shouldn't the MMS link be:
http://mms.sprintpcs.com/servlets/MMS?X-SPRINT-MDN="Your MSID Number" ?
on my hero, i just put in:
http: //mms.sprintpcs.com/servlets/MMS
and it worked.
Click to expand...
Click to collapse
What do you mean by "http: //mms.sprintpcs.com/servlets/MMS"? Didn't you complete the sentence with the MDN=-----------------?
Kykiskly said:
What do you mean by "http: //mms.sprintpcs.com/servlets/MMS"? Didn't you complete the sentence with the MDN=-----------------?
Click to expand...
Click to collapse
No, supposedly both work. The MDN version works all the time and the MMS version works some of the time.
Mistamike17 said:
No, supposedly both work. The MDN version works all the time and the MMS version works some of the time.
Click to expand...
Click to collapse
Ok but after that statement, what goes after, cuz since we are in the sqlite3 telephony.db, we cant adb reboot from there. What is the command to close/save the statement. I tried .quit, exit, adb reboot and no success.
how do we know that by doing the above statements the change took effect?
1) update carriers set mmsc='http://mms.sprintpcs.com?X-MDN=1+area code + cell #' where name='Production'; *1+area code + cell '*
2)http: //mms.sprintpcs.com/servlets/MMS
This also worked on Souffle!!! Thanks guys!
Code:
QUICKBOOT FIX - WORKS
cd C:\android-sdk-windows\tools
adb remount
adb push reboot /system/bin
adb shell
cd /system/bin/
ls **optional...I did this just so I could make sure the reboot file was there**
chmod 755 reboot
chmod 755 /system/bin/reboot
adb reboot
ONLY WORKS WITH ANDROID 2.2 (FROYO)
For those of you that don't know, Google released a new Voice Search that allows "actions". For more info go Here.
First off, I wanna thank Tsenru, klinster, devlogic, BinaryMan, and Synchromatic @ the CM forum for all the info.
This is instructions for ubuntu so make the proper adjustments for windows if needed.
From ADB
Code:
adb pull /system/app ~/Desktop/app/
adb remount
adb shell rm -f /system/app/VoiceSearch.apk
adb shell pm uninstall com.google.android.voicesearch
adb shell rm -f /system/app/GoogleQuickSearchBox.apk
adb shell pm uninstall com.google.android.googlequicksearchbox
Once this is done you can search market for "voice search" and "google search" then after they're installed, reboot.
Now for the next step.
If the search hard key doesn't bring up the quick search box (keyboard input), do this.
Code:
adb remount
adb shell ln -s /data/app/com.google.android.googlequicksearchbox-1.apk /system/app/com.google.android.googlequicksearchbox.apk
adb reboot
Now all should work!
I had a wierd name for quick search box (com.google.android.googlequicksearchbox-1) so keep that in mind if you have any issues.
Now enjoy you fancy new voice search!
tried everyone's suggestions so far, with your suggestions I get:
rm failed for -f, Read-only file system
Worked for me, thanks!
beyondinferno said:
ONLY WORKS WITH ANDROID 2.2 (FROYO)
Now for the next step.
If the search hard key doesn't bring up the quick search box (keyboard input), do this.
Code:
adb remount
adb shell mv /data/app/com.google.android.googlequicksearchbox /system/app
adb reboot
Now all should work!
I had a wierd name for quick search box (com.google.android.googlequicksearchbox-1) so keep that in mind if you have any issues.
Now enjoy you fancy new voice search!
Click to expand...
Click to collapse
Rather then using the command adb shell mv /data/app/com.google.android.googlequicksearchbox /system/app
I suggest the command ln -s /data/app/com.google.android.googlequicksearchbox-1.apk /system/app/com.google.android.googlequicksearchbox.apk
ln -s creates a symbolic link to the file rather then moving the file. It keeps the google search file where the installer put it. If you move the file are you causing an issue in the future when the next upgrade comes around?
mmace said:
tried everyone's suggestions so far, with your suggestions I get:
rm failed for -f, Read-only file system
Click to expand...
Click to collapse
adb remount first... and when using rm try busybox...
busybox rm <<file>>
painter_ said:
Rather then using the command adb shell mv /data/app/com.google.android.googlequicksearchbox /system/app
I suggest the command ln -s /data/app/com.google.android.googlequicksearchbox-1.apk /system/app/com.google.android.googlequicksearchbox.apk
ln -s creates a symbolic link to the file rather then moving the file. It keeps the google search file where the installer put it. If you move the file are you causing an issue in the future when the next upgrade comes around?
Click to expand...
Click to collapse
Thanks for the tip!
Changing how to now.
Can't wait to try this tonight.
Sent from my HERO200 using XDA App
Worked great! thank you!
This worked for me as well. Thanks.
Not having much luck reactivating the search button.
I can confirm that it got the job done cause when I tried again, it popped up an error that the file already exists, so it succeeded in creating the link... any suggestions?
Just tried it, works great. Thanks!
what does adb shell PM uninstall do as opposed to adb shell uninstall
If you have TB, uninstall voice search and google search from backup/restore, then reboot phone and go to market install both, worked for me
andygu3 said:
If you have TB, uninstall voice search and google search from backup/restore, then reboot phone and go to market install both, worked for me
Click to expand...
Click to collapse
thanks that worked and it was way easier than adb.
I'd love to have this feature, but I get "failure" when I enter the adb shell pm uninstall com.google.android.voicesearch command. I can't figure out what I'm doing wrong, except that I have no idea what the difference between Ubuntu and Windows commands are.
Thanks for all the hard work. Any help is greatly appreciated.`
EDITED: I got it working. Not sure how. Even though I got a "failure" during the adb uninstall, the old voice search appears to have uninstalled already. Went to the market and downloaded the new app and it works!
Perilousp69 said:
I'd love to have this feature, but I get "failure" when I enter the adb shell pm uninstall com.google.android.voicesearch command. I can't figure out what I'm doing wrong, except that I have no idea what the difference between Ubuntu and Windows commands are.
Thanks for all the hard work. Any help is greatly appreciated.`
Click to expand...
Click to collapse
I should add I'm running FROYO 2.1, vanilla based on Cynogen's Aug. 13 mod
Working!
10chars
DirtyShroomz said:
Working!
10chars
Click to expand...
Click to collapse
Can you tell me how you did it? I noticed you had problems earlier.
Perilousp69 said:
Can you tell me how you did it? I noticed you had problems earlier.
Click to expand...
Click to collapse
Used SUFBS (or any file explorer). Went to system/app and deleted voicesearch.apk, rebooted, went to market and downloaded voice search
Sorry for bumping the old topic, but does anyone know the difference
between:
com.google.android.voicesearch.x and
com.google.android.voicesearch ??
This workshop was held in #android-learning on irc.freenode.net by XDA Member Adrynalyne. All credit to him for this guide, I simply am taking it and turning it into a guide. Here we go!
You can find the raw IRC log here
Good evening folks, and welcome to my ADB workshop. This is by no means a full explanation on the subject, but more of a crash course to help folks get up to speed, and get more from their devices. There may be some things you already know here, so please be patient and respect those who do not.
Reference Files
http://adrynalyne.us/files/How to install adb.pdf
http://adrynalyne.us/files/Using ADB.pdf
So, lets just start with the basics.
What is ADB?
ADB stands for the android debugging bridge and is used for testing and debugging purposes by developers.
However, we like to get more out of our devices, and its a great way to fix things.
Knowing adb can mean the difference between a paperweight and a working phone.
So, to start with, we will look at installing ADB.
Generally speaking, the Sun/Oracle JDK is required to run all SDK functions.
ADB is but one tool in the SDK arsenal.
So, we begin by downloading and installing the JDK. This can be found here:
https://cds.sun.com/is-bin/[email protected]_Developer
Choose your OS, download and install. I recommend that 64 bit users use the regular x86/32 bit version as well.
Moving ahead, we download the Windows sdk from here:
http://dl.google.com/android/installer_r08-windows.exe
Due to already installing JDK, you won't be stopped by the install process.
Now, if you notice, I installed it to:
C:\android-sdk-windows
I did this because it makes things easier when setting up path variables.
I encourage everyone to do the same, but obviously it is not required.
So, this SDK is handy, but is only good up to 2.2. We want the latest and greatest! (Well I do)
So, we navigate to:
C:\android-sdk-windows\
and we run SDK Manager.exe
If you notice in your PDF file for installing adb, you will notice that you can update, and I made a choice not to include earlier sdk versions.
I won't go into full detail on that, but depending on the version of SDK you have, 8 or 9, it WILL make a difference in using adb.
By default, for version 8 adb.exe resides in C:\android-sdk-windows\tools
By default, for version 9 adb.exe resides in C:\android-sdk-windows\platform-tools
We will assume version 9 in this guide
Really, the SDK is installed and adb is usable right now, but in my humble opinion, its not enough
I like the ability to use adb in ANY directory on my machine.
To do this, we edit Windows's environment variables.
Specifically, the system path.
To do this, we click on start, or the orb (depending on OS), and right click on Computer, left clicking on properties in the menu.
If its windows XP, I believe it brings you into advanced system properties immediatly. Vista and 7 need a second step.
On the left hand side, as you notice I have highlighted in the pdf, left click advanced system settings.
Under advanced tab, we left click environment variables...
There are two boxes here.
We are concerned with system variables, however.
So we scroll down the list and highlight path and click edit.
Ignoring all the extra stuff in here, make sure you are at the end of the line, and type
Code:
;C:\android-sdk-windows\platform-tools
The semicolon allows us to separate it
from the previous path statement.
Click ok all the way out.
We now have ADB setup globally. We can use cmd.exe (I use powershell) and no matter what directory we are in, adb is recognized.
If it is not, make certain you entered the path into system variables, and made no typos.
If you installed to a different location, you will need to adjust the path accordingly.
This concludes the section on installing the Android SDK to use ADB.
This next section will be on using ADB, so please open that pdf now.
Now, this applies to any OS, not just Windows.
Well, with the exception of the USB drivers.
I will not go too much into that, but if you take a look at the PDF, it goes through installing usb drivers for the sdk, and how to download them.
Fiarly straightforward, in that rspect.
Now, to setup our phones to use with the SDK and ADB, we must change some settings.
First, we go to menu softkey, then settings.
We scroll down to Applications and tap it.
Under Development, we will check Enable USB Debugging. Please note the SGS phones are different in this respect.
The USB cable must be unplugged before enabling or disabling this setting.
Once this is done, we are now ready to play with adb
One quick note: If you get device not found/conencted, please reboot your phone. DJ05 has a quirk in it where ADBD randomly crashes on boot.
A reboot will fix this
ADBD= ADB Daemon
Ok, continuing on.
Lets look at installing applications. This is also known as sideloading.
Unlike installing from the SD card, it does not require unknown sources to be enabled.
The command for this is
Code:
adb install packagename
This assumes that you are working from the directory where the file is located.
This will install the application to /data/app.
It will also show sometimes useful errors if install fails.
That is not something you will see from the Android GUI.
Now, a lot of us have probably deleted files with apps like Root Explorer. While this isn't really a bad thing, it leaves behind databases and data for the application removed.
This is where the 0kb applicaiton entries come from.
If you take that application entry name, you can uninstall the extra data via adb.
First we go to the adb shell which logs into the phone.
Code:
adb shell
If we end up with a $, we will want admin rights, in many cases. This is not one of them, I don't beleive.
To get admin rights, you want to type
Code:
su
Look at your phone if this is the first time, it may prompt you to allow access. Else you will get permission denied.
If you are not rooted, this will not work either.
Ok, now that we are logged in, we will type
Code:
pm uninstall packagename
where packagename is the name of the 0kb listing.
Now this seems like a pain in the a** and I agree.
HOWEVER
There will be a time where Manage applications crashes when you try to uninstall it from the phone. In this case, a factory reset, or this method is the only effective way to fix the problem.
Moving on.
How many of us have removed system applications or renamed them? Did you know that you can simply disable them from the system?
Code:
adb shell
su
pm disable appllicationname
This will disable it, and the system will ignore it.
This can be seen as safer than deleting or renaming things, but your mileage may vary.
On the other hand, you can also re-enable these applications.
Code:
adb shell
su
pm enable applicationname
Please note: Not all applications will properly re-enable. I believe a factory reset or reinstall of said application will fix the issue.
Also, application names are absolutely case sensitive.
*nix based Operating Systems see the letter 'a' and 'A' as two different things.
when you log into adb shell, you are playing by android rules
Ok, a lot of us tweak and mod our phones and turning off the device to get to clockwork recovery, or battery pulls, or multiple button holds to get into Download mode are troublesome and annoying at best.
ADB can help us here.
Here, we do not need to be logged into the shell
If we want to merely reboot the phone:
Code:
adb reboot
If we want to go to recovery (works well with voodoo5)
Code:
adb reboot recovery
If we want to go to Download Mode because we need Odin, heaven forbid:
Code:
adb reboot download
Its instant. No waiting on animations or anything else.
Its also handy if Android has locked up, but yet still works in adb.
I for one hate taking my case off to battery pull.
So now we move on to pushing and pulling files.
Sometimes, I don't feel like mounting my sd card to copy a file over to my phone.
I can use this command to push a file straight to my sd card:
Code:
adb push filename /pathtodirectoryonphone
So for instance, if I have test.txt that I want to send, I would type:
Code:
adb push test.txt /sdcard/
and there it goes.
Ok moving on
Pushing files can be done to any directory, however, some are protected.
For instance, /system is going to give you a permission denied or a read only filesystem error.
To get around this, the easiest thing to do is push the file to your sdcard, then log into the shell:
Code:
adb shell
Code:
su
We will then mount the system as writable
Code:
mount -o rw,remount /dev/block/stl9 /system
Then we can use something like
Code:
cp /sdcard/test.txt /system/app/test.txt
cp stands for copy
and it requires the path of the file and destination path. The name of the file is optional
When you copy it, you can rename it to whatever you like.
For instance, if we wanted to backup a file
Code:
cp /sdcard/test.txt /sdcard/backuptest.txt
Now, lets assume you do not have busybox installed.
You non rooted users will not.
Then you must use a slightly more complicated command called dd
This is used like this:
Code:
dd if=/sdcard/test.txt of=/system/app/test.txt
if is for inputfile
of= output file
Not every user friendly, but probably one of the safer copy commands.
Ok, moving on to pulling files.
Lets say you want to get a file from your phone, to modify, backup, etc.
To do this, we simply use adb in this manner:
Code:
adb pull /pathtofile/filename destinationname
For instance, if I wanted to backup ADW launcher in system/app
I would do this
Code:
adb pull /system/app/ADWLaucnher.apk ADWLauncher.apk
And it will pull the file from the phone and put it in the current directory.
Like above, you can specifcy where it goes.
pushing files to the sdcard, it seems prudent to talk about changing permissions.
sdcards are typically fat32, which destroys permisisons, and Android is heavily permission based.
So if you push an application to your sd card, then try to copy it to /system/app/ bad things are going to happen, or the app may not even show up.
So in that case, we use something called chmod.
This is used in this manner
Code:
adb shell
su
chmod 755 /pathtoapplication/applicationname
Keep in mind
you dont want to do this while its still on your sd card.
an example
Code:
adb shell
su
chmod 755 /system/app/ADWLauncher.apk
755 is good for applications and script files.
Just a couple more topics to cover.
Lets go over deleting files.
This becomes especially handy for removing rogue applications.
To do this, we must be in the adb shell.
Code:
adb shell
su
rm /system/app/ADWLauncher.apk
You may need to remount system as writable with:
Code:
mount -o rw,remount /dev/block/stl9 /system
That applies when using chmod as well.
So what I did above was delete ADW Launcher from system/app
However, what if I wanted to delete the entire contents of a directory?
Same thing as before, except
Code:
adb shell
rm -f /data/dalvik-cache/*.*
I just cleared my dalvik-cache with that command
very quick, very effective.
If you just tried that, please reboot your phone now
Ok....this leaves us with the final topic: logcat
logcat allows us to log what the OS is doing, and possibly delve information for when things are not working
its quite simple Reading it is another.
To use logcat
Code:
adb shell
logcat
To logcat to a certain file do
Code:
adb shell
logcat > /sdcard/logcat.txt
Now we let the log settle down to a reasonable amount of data coming in and not a wall of scrolling, then start the app in question. When it gives an error, we hit ctrl-C and kill the adb shell session.
This should have captured enough data to see the error. Now, I prepared an example. A user came to me on IRC, and Google Maps was force closing. Clearing data didnt fix it, Clearing dalvik-cache, and fix permissions did not fix it. In this case, the user did not know how to use adb So I had him grab an app called alogcat from the market and email me the log. This is also a very valid method.
this file explains what the problem was, and highlights what to look for as an example.
http://adrynalyne.us/files/logcat.pdf
___________________________________________________________________
This concludes the guide from Adrynalyne, there will be more workshops such as this one in irc.freenode.net #android-learning.
Thanks to everyone in #samsung-fascinate !
Reserved for possible extension of topic
Great, saves a lot of questions/answers & search
Every new user should read this!!
Thread stuck as valuable reference thread
Just to add, if I may, a little about the permissions...
============================================================
File permissions for Unix... which Android is based, just so those who tinker with the file permissions may know what they are getting into.
============================================================
Use the chmod command to set file permissions.
The chmod command uses a three-digit code as an argument.
The three digits of the chmod code set permissions for these groups in this order:
1.Owner (you)
2.Group (a group of other users that you set up)
3.World (anyone else browsing around on the file system)
Each digit of this code sets permissions for one of these groups as follows. Read is 4. Write is 2. Execute is 1.
The sums of these numbers give combinations of these permissions:
0 = no permissions whatsoever; this person cannot read, write, or execute the file
1 = execute only
2 = write only
3 = write and execute (1+2)
4 = read only
5 = read and execute (4+1)
6 = read and write (4+2)
7 = read and write and execute (4+2+1)
Chmod commands on file apple.txt (use wildcards to include more files)
Command Purpose
chmod 700 apple.txt Only you can read, write to, or execute apple.txt
chmod 777 apple.txt Everybody can read, write to, or execute apple.txt
chmod 744 apple.txt Only you can read, write to, or execute apple.txt Everybody can read apple.txt;
chmod 444 apple.txt You can only read apple.txt, as everyone else.
Detecting File Permissions
You can use the ls command with the -l option to show the file permissions set. For example, for apple.txt, I can do this:
$ ls -l apple.txt
-rwxr--r-- 1 december december 81 Feb 12 12:45 apple.txt
$
The sequence -rwxr--r-- tells the permissions set for the file apple.txt. The first - tells that apple.txt is a file. The next three letters, rwx, show that the owner has read, write, and execute permissions. Then the next three symbols, r--, show that the group permissions are read only. The final three symbols, r--, show that the world permissions are read only.
Compliments and full credit from:
http://www.december.com/unix/ref/chmod.html
Amazing thread just what I needed lol thanks!
cooolone2 said:
Just to add, if I may, a little about the permissions...
============================================================
File permissions for Unix... which Android is based, just so those who tinker with the file permissions may know what they are getting into.
============================================================
Use the chmod command to set file permissions.
The chmod command uses a three-digit code as an argument.
The three digits of the chmod code set permissions for these groups in this order:
1.Owner (you)
2.Group (a group of other users that you set up)
3.World (anyone else browsing around on the file system)
Each digit of this code sets permissions for one of these groups as follows. Read is 4. Write is 2. Execute is 1.
The sums of these numbers give combinations of these permissions:
0 = no permissions whatsoever; this person cannot read, write, or execute the file
1 = execute only
2 = write only
3 = write and execute (1+2)
4 = read only
5 = read and execute (4+1)
6 = read and write (4+2)
7 = read and write and execute (4+2+1)
Chmod commands on file apple.txt (use wildcards to include more files)
Command Purpose
chmod 700 apple.txt Only you can read, write to, or execute apple.txt
chmod 777 apple.txt Everybody can read, write to, or execute apple.txt
chmod 744 apple.txt Only you can read, write to, or execute apple.txt Everybody can read apple.txt;
chmod 444 apple.txt You can only read apple.txt, as everyone else.
Detecting File Permissions
You can use the ls command with the -l option to show the file permissions set. For example, for apple.txt, I can do this:
$ ls -l apple.txt
-rwxr--r-- 1 december december 81 Feb 12 12:45 apple.txt
$
The sequence -rwxr--r-- tells the permissions set for the file apple.txt. The first - tells that apple.txt is a file. The next three letters, rwx, show that the owner has read, write, and execute permissions. Then the next three symbols, r--, show that the group permissions are read only. The final three symbols, r--, show that the world permissions are read only.
Compliments and full credit from:
http://www.december.com/unix/ref/chmod.html
Click to expand...
Click to collapse
Thanks! Added
ih4ckback said:
Amazing thread just what I needed lol thanks!
Click to expand...
Click to collapse
Thanks, all goes to Adrynalyne
Thanks for the guide. Helped me pick out the stupid stupid mistakes I was making...so just a problem. I'm able to use fastboot easily but I seem to be unable to use ADB still on my windows 7. It says there are no devices and I'm dang well sure I have USB debugging on. Is it because Windows 7 is missing drivers for the nexus one or something else?
wonderful guide. I would like to add it to the guides thread.
Really awesome work, thumbs up.
But we should also take a guide on installing adb with Ubuntu/Linux, which isn't a very difficult thing...
mm7490 said:
Really awesome work, thumbs up.
But we should also take a guide on installing adb with Ubuntu/Linux, which isn't a very difficult thing...
Click to expand...
Click to collapse
If I got time tomorrow I could do that. I work primarily in Linux also
Sent from my Samsung Fascinate using Tapatalk Pro
This is good but I have a problem, when I try to remove an .apk file from /system/app it fails and says 'rm failed, Directory not empty'
I have followed exact instructions many time but never succeeded :s any help!!
(I am runnging these commands in device mod)
when I am in recovery mod I get this prompt ~ # and I am not able to enter su mod. how to get rid of this??
Well when the $ changes to # it means you have SU access
mustafa.aziz said:
This is good but I have a problem, when I try to remove an .apk file from /system/app it fails and says 'rm failed, Directory not empty'
Click to expand...
Click to collapse
Please give us the exact command(s) you entered
Here are the commands I entered after adb shell;
su
mount -o rw,remount /dev/block/stl9 /system
rm /system/app/mytouchmusic-signed.apk
exact message returned is 'rm failed for mytouchmusic-signed.apk, Directory not empty'
mustafa.aziz said:
Here are the commands I entered after adb shell;
su
mount -o rw,remount /dev/block/stl9 /system
rm /system/app/mytouchmusic-signed.apk
exact message returned is 'rm failed for mytouchmusic-signed.apk, Directory not empty'
Click to expand...
Click to collapse
Ok i think you need to do a recursive force delete which should be rf but i am not too sure! could somebody please confirm/ correct this?
Well, I don't think so ^^ As he doesn't want to erase a whole directory, but only a file.
What surprises me the most is the returned message... You're trying to delete an apk, and it says it's a directory :/
Could you please give us the output of this :
Code:
su
mount -o rw,remount /dev/block/stl9 /system
ls -l /system/app/mytouch*
Perhaps you don't even need the su and mount lines, but I'm not sure about that, and that can't harm your system ^^
Khoral said:
Well, I don't think so ^^ As he doesn't want to erase a whole directory, but only a file.
Click to expand...
Click to collapse
I know he doesn't want to delete a whole directory, but since the apk isn't compressed perhaps android looks at is as a directory and not a file? i don't know since what was returned suggested that it was a directory i presumed it was a directory! :S
mustafa.aziz said:
Here are the commands I entered after adb shell;
su
mount -o rw,remount /dev/block/stl9 /system
rm /system/app/mytouchmusic-signed.apk
exact message returned is 'rm failed for mytouchmusic-signed.apk, Directory not empty'
Click to expand...
Click to collapse
rm -rf /blah/blah
here is your desired output:
sh-3.2# su
su
sh-3.2# mount -o rw,remount /dev/block/stl9 /system
mount -o rw,remount /dev/block/stl9 /system
sh-3.2# ls -l /system/app/mytouch*
ls -l /system/app/mytouch*
-rw-r--r-- root root 299838 2008-08-01 18:00 mytouchmusic-signed.apk
sh-3.2#
To start off I want to say, I am NOT claiming to have created this exploit, I am merely letting people know that it works on the arc.
All credit for this goes to Chainfire and The Android Exploid Crew
The origional thread is here: http://forum.xda-developers.com/showthread.php?t=1044765
Download here
Install the APK and run it.
For people getting "could not extract assets" error execute
adb shell rmdir /data/local/tmp
and then
adb shell mkdir /data/local/tmp
Click to expand...
Click to collapse
Quote posted by jassired
works for me
So just push the apk to the phone, install and you're done?
no need to "push", just stick it on your sd card and install
diggedy said:
no need to "push", just stick it on your sd card and install
Click to expand...
Click to collapse
I get the error thing...and I can't find the effing map where I need to remove stuff....
where do I find the god damned map to remove the files I need to remove when it only fails to install?????
I've checked every single map on the memory card, going nuts here...
Cim_XII said:
where do I find the god damned map to remove the files I need to remove when it only fails to install?????
I've checked every single map on the memory card, going nuts here...
Click to expand...
Click to collapse
What do you mean?
double post :s will use this later
I have put the .apk in my download map on the sd card of the phone, installed the apk and run it and I get the: "could not extract assets" error execute
and then when I get that I am supposed to remove some files from a map on the sd card, and I cannot find said map....I hava rebooted the phone, and I still cannot find data/local/tmp or what ever map I need to find.....
Cim_XII said:
I have put the .apk in my download map on the sd card of the phone, installed the apk and run it and I get the: "could not extract assets" error execute
and then when I get that I am supposed to remove some files from a map on the sd card, and I cannot find said map....I hava rebooted the phone, and I still cannot find data/local/tmp or what ever map I need to find.....
Click to expand...
Click to collapse
you need to execute the commands in the origional post via ADB with USB debugging enabled, because the location is in the system and ironicly you dont have the root privelages to delete them
I don't even know what ADB is....that's how much I know...
Cim_XII said:
I don't even know what ADB is....that's how much I know...
Click to expand...
Click to collapse
I have attached it to this post. ADB is the Android Debug Bridge. It is used to excecute commands on android devices. Just extract the zip, then open a command prompt and change to the directory of ADB, then excecute the commands.
if you get the error for esset you need to remove all the files inside to /data/local/tmp/
press: adb shell
press ls /data/local/tmp
and remove one by one the files as my example:
$ ls /data/local/tmp/
ls /data/local/tmp/
Superuser.apk
Gingerbreak
runscript
sysrun
$ rm /data/local/tmp/Superuser.apk
rm /data/local/tmp/Superuser.apk
$ rm /data/local/tmp/Gingerbreak
rm /data/local/tmp/Gingerbreak
$ rm /data/local/tmp/runscript
rm /data/local/tmp/runscript
$ rm /data/local/tmp/sysrun
rm /data/local/tmp/sysrun
and now try again with app and may it works (in my case, works)
dh2311 said:
I have attached it to this post. ADB is the Android Debug Bridge. It is used to excecute commands on android devices. Just extract the zip, then open a command prompt and change to the directory of ADB, then excecute the commands.
Click to expand...
Click to collapse
maybe I should've mentioned I'm on a Mac computer with no access to windows....damn, this is so frustrating....
Ah... Its still possible you just have to get the android sdk for mac.
Get the SDK from here
Then in the tools folder ADB should be there
Then its commands as normal I think... not sure tho, don't have a mac.
Search around on here for tutorials, I'm sure someone has put up a tutorial on setting up adb on mac
dh2311 said:
Ah... Its still possible you just have to get the android sdk for mac.
Get the SDK from here
Then in the tools folder ADB should be there
Then its commands as normal I think... not sure tho, don't have a mac.
Search around on here for tutorials, I'm sure someone has put up a tutorial on setting up adb on mac
Click to expand...
Click to collapse
kewl, and the exact commands is in post #1 right?
so this root's the OS, title is confusing, does it enable fastboot? allow you to flash custom roms?
should be....
dh2311 said:
you need to execute the commands in the origional post via ADB with USB debugging enabled, because the location is in the system and ironicly you dont have the root privelages to delete them
Click to expand...
Click to collapse
did exactly what you said, but get the message
adb: permission denied
No does not enable fastboot