[HOWTO] ADB for Macintosh Users Only for complete beginners! - Hero, G2 Touch Android Development

I AM NOT RESPONSIBLE FOR ANY PROBLEMS YOU CAUSE!
So you are stumbling around XDA and you really want some kind of app or something, but you think you cant because you have a Mac, well I am here to tell you wrong.
The biggest and most used mistake for mac users when trying to use ADB is this:
HTML:
Inas-iMac:~ Hans$ /AndroidSDk/tools
-bash: /AndroidSDk/tools: is a directory
Inas-iMac:~ Hans$
Well this is how you do it!
Watch this!
http://www.youtube.com/watch?v=GLAMG4xU_lE
To make your phone go into debug mode go to settings/applications/development and check debug
DO NOT MOUNT PHONE! Just let it be
I did not go to deep into the process because this is made for complete beginners!

Why not follow the official SDK install instructions and add the path to bash_profile..
developer.android.com/sdk/installing.html#Installing
In my opinion that's not too hard for a newbie.. (i managed to do that) And after doing that you don't need to change directories with cd command, you can just type adb whatevercommand from your home dir which is the default location when you open the terminal.

Drag and drop is a little a fail.... one can add "alias" (linux can do it, probably mac too)
Little How-to:
Code:
$ nano ./bashrc
add and adapt the following line to bashrc:
Code:
alias adb="/home/carbonyle/android-sdk-linux_86/tools/adb"
now you just have to type "adb" from a terminal emulator to run it, eg:
Code:
$ adb shell
# reboot recovery
or
Code:
adb install ./Download/myFavortiteApp.apk
and so on...
ps: we don't need to "adb remount" at worst we can just "adb kill-server" then "adb start-server" if the device is not accessible

Related

How To Use ADB On Mac With Htc Hero

I've spent hours trying to workout how to use adb
I'm using Amon_RA's recovery image and want to run a BART backup but it forces you to use adb, which i can't workout
help please!!!
Did you download the Android SDK for OS X?
Please give us some more information, such as the steps you've taken and any errors or other information you get from the Terminal.
yes i have downloaded the sdk from the website
but everytime i even check what devices are connected etc it fails
i open terminal, drag the tools folder into it, it then ses its created a directory
when i try to put in the commands "adb devices" or "bart" however, it ses there is no such command
do i need to put my phone into recovery, or mass storage or something
im stumped
You need to add the tools directory to PATH variable on your computer
Here's how you do it (the alternative way is easier):
Run this in Terminal
Code:
cd
nano .bash_profile
a text editor will open. add this:
Code:
export PATH=${PATH}:/path-to-android-sdk/tools
where you replace "path-to-android-sdk" with the real path.
Alternatively you could run this command in the terminal:
Code:
echo -e "\nexport PATH=${PATH}:/path-to-android-sdk/tools" >> .bash_profile
What you have done is to tell the shell to also look inside the tools directory when entering a command
Oh, in addition to Repp's suggestions, I know in Linux (and I dunno about everyone else) I need to be root to run adb properly. So maybe become root on the Mac. To do so, you need to be an Admin user, not a regular user, and at the Terminal, type
Code:
sudo -s
and then enter your user password when prompted.
okay ive done that, i dont know if it came back with the right response tho
i tried the first method and got into the text editor, i then typed what you said and it returned no response, i dont know if this is correct?
if so what do i do next?
Rather than altering your path, you can also navigate to the sdk/tools directory and run adb like so:
Code:
./adb devices
But you have to be inside the directory where the "adb" command lies.
Also, see my note above regarding root users.
Aah sorry. Just save and exit (press Ctrl+X and answer yes to whether or not you want to save). You could also try the alternative way.
craig0r said:
Oh, in addition to Repp's suggestions, I know in Linux (and I dunno about everyone else) I need to be root to run adb properly. So maybe become root on the Mac. To do so, you need to be an Admin user, not a regular user, and at the Terminal, type
Code:
sudo -s
and then enter your user password when prompted.
Click to expand...
Click to collapse
I have always used it as normal user and it has worked. Don't know why you would need to be root
how dyou get into the directory?
i usually just drag the tools folder into terminal.
is this correct?
DaNiEl FrEnCh said:
how dyou get into the directory?
i usually just drag the tools folder into terminal.
is this correct?
Click to expand...
Click to collapse
At the Terminal type
Code:
cd /Users/YourUserName/path/to/android_sdk/tools/
./adb devices
Repp said:
I have always used it as normal user and it has worked. Don't know why you would need to be root
Click to expand...
Click to collapse
Yeah, it's weird, but it works for me.
You change directory in the terminal with the command cd. So if I wanted to go to the Desktop directory I would write:
Code:
cd ~/Desktop
(~ is like a shortcut for your home directory which is the same as the directory /Users/your-username)
Did any of the methods work (they should )?
to repp, ive done that, all i need to know now is how to use the bart backup function from Amon_RA's recovery image, in adb
craig0r said:
Yeah, it's weird, but it works for me.
Click to expand...
Click to collapse
And it doesn't if you're not root?
DaNiEl FrEnCh said:
to repp, ive done that, all i need to know now is how to use the bart backup function from Amon_RA's recovery image, in adb
Click to expand...
Click to collapse
And it worked?
Unfortunately I have never done that so I can't help you there
how can i check if it worked?
Just run adb from any directory which is not the tools directory.
For example:
Code:
cd
adb devices
where the first line (cd) changes directory to your home directory (the command cd without a path does that) and the other one should list connected devices. As long as it doesn't say
Code:
-bash: adb: command not found
or anything like that, you should be fine
EDIT: If you want to use adb, you don't have to do the "cd" part first. This time only
its working now i can seee what devices i have
Code:
Dans-MacBook:tools Dan$ ./adb devices
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
HT98DL900002 device
but the main reason i want to use it, is to use it with Amon_RA's recovery
i neeed to do a BART backup so i can switch from the 2.1 rom from lox too 3.0 from modaco
I have never used BART, but unless I'm mistaken, it does almost the same thing as a nandroid backup (?). You could try that instead. Don't know about Amon_RA, but it's possible from MoDaCo's fastboot (linked to and explained how to install here)
other than that, there's nothing I can do
Repp said:
And it doesn't if you're not root?
Click to expand...
Click to collapse
That's right. Probably something to do with permissions in /dev/. It doesn't bother me enough to go hunting the problem down.

adb shell

ok so i tried to follow the instructions to get my phone rooted!
but im running into a snag....
im here roughly
Check if your phone is detected by ADB
Open up Command Prompt (Go to run, type in cmd, press enter)
Type in
Code:
cd C:\android-sdk-windows\tools === Press Enter
adb devices === You should see your device listed
adb shell === you should see # in the next line
Now you are all set to run adb commands
Note: for a list of commands type in 'adb' in cmd
CONGRATS YOU NOW HAVE ADB FULLY RUNNING!
except when i type adb shell i get a "$" instead of a "#" in the next line
im not sure if i did something wrong/installed drivers wrong or what??!! any help would be appreciated!
to get your phone rooted, read the rooting tutorial in the development section.
but, in answer to your question, you are getting the '$' instead of the '#' because you do not have root access in your shell.
to have root access in shell, you need to have installed the rooted img, which will then allow for temporary installation of a custom recovery, which must be pushed while the phone is in recovery mode already. then, you can adb shell to the root prompt
ok im very very new too all this! so i apologize up front for not knowing exactly what your talking about! i have been following this guide to root my phone-
forum.xda-developers(DOT)com/showthread.php?t=532719
(take out the (DOT) and make it .com
some1 on this site refereed it to me because i needed to know how to do EVERYTHING from start to finish!
so i am still stuck any help(detailed very detailed help) would be appreciated!

I'm lost. Need rooting help.

I'm lost as hell. I found this thread:
http://www.androidpolice.com/2010/06...credible-next/
I did the unrevoked thing and I see this icon called SuperUser Permissions in my app list.
Am I able to proceed and fully root or do I have to re-do the root with the Toast method? This looks too complicated and by the way I tried the ./adb thing on my mac and I get errors saying "No such file or directory".
gqstatus0685 said:
This looks too complicated and by the way I tried the ./adb thing on my mac and I get errors saying "No such file or directory".
Click to expand...
Click to collapse
adb isn't installed on a Mac out of the box; You'll need to go download the Android SDK. Untar it somewhere (I put it in ~/), then open a term, do:
Code:
cents-macbook-pro:~ $ cd android-sdk-mac_86/tools/
cents-macbook-pro:~/android-sdk-mac_86/tools $ ./adb
CentroniX said:
adb isn't installed on a Mac out of the box; You'll need to go download the Android SDK. Untar it somewhere (I put it in ~/), then open a term, do:
Code:
cents-macbook-pro:~ $ cd android-sdk-mac_86/tools/
cents-macbook-pro:~/android-sdk-mac_86/tools $ ./adb
Click to expand...
Click to collapse
Massive Brain Freeze.. What do you mean by "(I put it in ~/)"?
I downloaded the Android SDK already. I understand what terminal is so when I download the Android SDK where do I place it?
Am I pointing terminal to the directory? Android SDK is currently in a folder on my desktop.
gqstatus0685 said:
Massive Brain Freeze.. What do you mean by "(I put it in ~/)"?
I downloaded the Android SDK already. I understand what terminal is so when I download the Android SDK where do I place it?
Am I pointing terminal to the directory? Android SDK is currently in a folder on my desktop.
Click to expand...
Click to collapse
~ in most flavors of Unix/Linux is short for your home directory. In MacOS, ~ is /Users/<username>. *nix pro-tip:
Code:
cents-macbook-pro:~ $ echo ~
/Users/cent
So in my case, ~ is short for /Users/cent.
If it's on your desktop, open a terminal and type:
Code:
cd ~/Desktop/android-sdk-mac_86/tools
-OR-
Code:
cd /Users/cent/Desktop/android-sdk-mac_86/tools
And then you can proceed to issue your adb commands. Just remember to prefix it with "./", which tells MacOS to look in the current directory for the adb command.
Code:
cents-macbook-pro:~/android-sdk-mac_86/tools $ ./adb devices
List of devices attached
HT05RHL1XXXX device
Ok. I think I'm just going to pay someone to do this for me. I'm getting a migraine.
So I'm basically typing the below:
~/android-sdk-mac_86/tools $ ./adb devices (Do I type this in one line)
List of devices attached
HT05RHL1XXXX device
I ran the thing and it doesn't show my phone listed.
I've got the time, if you have the money!
1. Make sure USB debugging is enabled. On your phone, go to Settings -> Applications -> Development, and make sure "USB debugging" is checked.
2. Make sure your USB cable is connected to your phone and computer.
3. Open a terminal
4. Type "cd ~/Desktop/android-sdk-mac_86/tools" and press enter.
5. Type "./adb devices" and press enter.
If it lists your device, you're then good to go to start following the rooting instructions!
You're the best dude. It was the USB debugging that was giving me the problem.
Good deal man, glad you got that part worked out! Have fun getting your root on!
this is the easiest way to do it....it worked for me
http://forum.xda-developers.com/showthread.php?t=701152
Do i have to keep dubugging mode on or can I turn it off before I root it. I did the command:
"cd ~/Desktop/android-sdk-mac_86/tools"
and then
adb push PC36IMG.zip /sdcard (Doesn't do anything. I tried without the space and some stuff popped up. Can I just manually put it on my SDcard?
gqstatus0685 said:
Do i have to keep dubugging mode on or can I turn it off before I root it. I did the command:
"cd ~/Desktop/android-sdk-mac_86/tools"
and then
adb push PC36IMG.zip /sdcard (Doesn't do anything. I tried without the space and some stuff popped up. Can I just manually put it on my SDcard?
Click to expand...
Click to collapse
Debugging mode needs to stay on if you want to use adb. You can turn it off once you root, but it won't hurt to leave it on.
The push command should tell you the number of bytes transfered. You need to make sure that the file you are pushing is in the current directory you're in (tools), or manually enter the path, like "./adb push ~/Downloads/PC36IMG.zip /sdcard"
But yes, you can mount the card as a disk drive and copy the file there in Finder.

[Q] Help with setting up adb shell

I must be stupid or something cause I'm stuck on getting this to work. Can someone help me finalize setting up adb shell?
This is where I am so far:
I have installed phone driver and Android SDK. In SDK have installed packages API 2 through 8, usb driver package 3, etc.
What do I need to do when opening SDK manager? My phone is in tether mode but it just sits there. What am I not doing?
Thanks.
No love from the community on this one??
I'm a little confused.
When you set the evo to usb debugging and open a command prompt, cd to your sdk/tools dir, enter "adb devices" does your evo show up? It should be listed as a serial #.
Yes.....an HT### serial comes up which I am assuming is the phone. Guessing I can now just run the commands I need and it will communicate with the phone?
My confusion was that I was running the SDK Manager.exe and expecting it to find my phone and produce the adb shell.
Ok! You should be good to go. Just enter "adb shell" and you are set.
Good deal....thx.
Ok....thought I had this working. However, when in adb shell any commands I put in tells me "adb: not found".
What do I need to do from this point?
Let me clarify this.....
When I list devices it does find my phone. But, when issuing the adb shell command and trying to enter anything from the "#" prompt it always says "adb: not found".
I must be missing a step or something.
I'm kind of confused, mostly because I don't know what it is you're doing in a shell, but once you're in the shell and you get the # sign, there's no need to type in adb before your commands, for example, from the command line you would navigate to your tools folder. For me it would be
cd AndroidSDK/tools
./adb shell
Some jibber jabber about daemon starting
#
From then on I could run whatever command I planned on running in the shell like
echo 1 > /sys/class/leds/flashlight/brightness
And not
./adb echo 1 > /sys/class/leds/flashlight/brightness
CCallahan said:
Let me clarify this.....
When I list devices it does find my phone. But, when issuing the adb shell command and trying to enter anything from the "#" prompt it always says "adb: not found".
I must be missing a step or something.
Click to expand...
Click to collapse
What exactly are you trying to accomplish? Then we can determine what's going on.
I'm running Myn's RLS4 and am trying to change the power bar in the notifications.
Trying to follow the instructions in this link: http://forum.xda-developers.com/showthread.php?t=836721
OK. What part are you getting stuck at?
Edit: for this code, you do not need to be in the ADB shell:
Code:
adb remount
adb push widget.txt /system/customize/
adb reboot
You just need to cd to your tools folder of the SDK in your command prompt.
CCallahan said:
I'm running Myn's RLS4 and am trying to change the power bar in the notifications.
Trying to follow the instructions in this link: http://forum.xda-developers.com/showthread.php?t=836721
Click to expand...
Click to collapse
The commands he has given here
Code:
adb remount adb push widget.txt /system/customize/ adb reboot
do not require you to be in an adb shell, you just open up the command window do an adb remount then type in his commands one by one and male sure you have the .txt file that specifies what widgets you're going to use is in the tools folder of your AndroidSDK folder so that adb can locate and push it to its respective directory.
Ok...that worked.
Knew I was doing something wrong. Was trying to run those commands from the adb shell....makes sense that it could not find adb.
Thanks.
i have no adb shell at all can anyone help?

(Guide) How to logcat, ADB, shell, etc

ADB:-
Android Debug Bridge
Very useful program made itself by Google for Programmers and developers. Its based on command line and basically communicates with your Android to respond to certain commands. There is vast amount of knowledge about adb but its most useful commands limit to getting:-
Logcat:-
A real time log of what is happening in background of our devices. It is really useful for developers to see which component has malfunctioned and helps to narrow down their search for what failed and what needs to be fixed. Several times users are asked to give logcats of their devices which are giving errors. We will go in detail that how to get logcats in every and easiest way possible.
App Installation and Management:-
adb proves really handy if you want to install apks directly from your PC or want to batch install or delete them.
Shell Execution:-
You must have heard of Terminal Emulator. It is an app for android to execute shell commands(linux commands) which are basically present as applets in /system/bin, /system/sbin or /system/xbin(in our case) folders. A very imporant applet called busybox is installed there mainly used for execution of basic commands during root browsing or ROM installation. Many times updater script of ROMs use busybox commands to install it. Well, these commands can be initiated from your device too but they can be initiated from adb also making it easy for programmers.
Pushing and Pulling:-
Most used commands of adb. adb makes it a piece of cake for new device developers to get an ideo of structure and basic knowledge of devices by pulling command. We can pull out i.e copy any files or folders from our devices to our PC, even the root directories without rooting the devices. It help rooters and ROM chefs of new devices to get an idea and implement their mods on them. Pushing is also very useful command. It copies your files and folders from PC to your device. Very useful in pushing some /system apps and other things
Remounting and setting permissions
Basic commands:-
Of-course basic commands such as reooting and rebooting in recovery ode and download mode are supported.
Others:-
There are several other features of adb such as fastboot, aapt, etc
Setting up ADB
Pre Requirements:-
A little amount of brain
PC(This is a windows guide, if asked I will add linux and mac guide later)
Java Runtime environment or Java Developing kit
Your Device Drivers
An Android Device
Assuming you all these ready and working properly, we continue
If you are having trouble completing Pre-Requisites, there are several guides featuring them too
Start
1. First Download Android SDK. Roughly about 70 MB
2. There may be any compressed zip file or exe file
If zip file, then extract it to C:\android-sdk
If exe file then double click on it and install it in C:\ Drive(or any other drive you want)
3. Now to get adb and other tools, you need to download 'Platform Tools'
To download them, go to the android-sdk folder and double click on SDK Manager
It will ask you which package to download? However, it is your choice which package to Download, but here, we will only talk about platform
Tools. So, simply tick on Platform Tools and click on install. Once you have done it. Go to the platform-tools folder in the directory where you installed android-sdk. You will find several files there like adb, fastboot, aapt, etc
4. Now, you can backup the whole folder of android-sdk to any external storage that will make you not download package
again if you want to. You can have it placed in any computer and run it as it does not require registry to work
5. Now, you are just one step away from using adb. Next step is SKIPPING SETTING ENVIRONMENT VARIABLE
Many guides on internet say that it is to be done for making it easy for users and if you have some basic knowledge of Command Prompt,
you will know that to execute any application with command prompt, you first need to change the directory to the one where application is
placed. And to skip changing the directories every time you open CMD, you need to put that application is environment variable. Howeve, we will not do so.
6. Type cmd in the search bar. Copy cmd.exe from there. Go to the directory where you have installed android-sdk. Go to platform-tools folder. Paste cmd there, right click on it and in the settings, select Run as Administrator.
7. You are done. Now what to do in it?
ADB Commands
Type adb in command prompt. And several commands will show up on your screen. It is very difficult to analyse these all commands, so we will only talk about most used and important commands
Connect your device via USB cable
And open the CMD in platform-tools folder(Make a shortcut of it on desktop). And type the suitable commands
Code:
adb devices
Will show the list of devices attached to the PC andtheir serial numbers. If this shows up correctly on your PC, then it means that everything is fine for continuing.
Logcat
Code:
adb logcat
It will display the real time log of your device
Best time to do it is when your device boots up
Now, many users ask me how to copy the logcat and upload it from CMD
There are several methods:-
1. Right click on the Title Bar of Command Prompt. Hover the cursor over edit and select mark. Select all the things you want to copy and then click enter. All the things will be copied to clipboard.
2. This is the correct way of getting logcat saved.
Code:
adb logcat > logcat.txt
This command will create a logcat.txt document in platform-tools folder with the complete logcat of the device. Ofcourse you can type any name instead of logcat.txt
3. I prefer taking logcat this way as it neatly compiles logs of different time
Code:
adb logcat -v long > logcat.txt
This is a very nice way to get logcat.
Installing Apps
Code:
adb install %PATH OF APK%
This will install an app on your Android
For example, if my app AreeB.apk is in G:\ drive (G:\AreeB.apk)
Then I will type
Code:
adb install G:\AreeB.apk
Be sure your apk is not in a folder that has space in its name, else the command will break at space bar.
For eg:-
G:\Program Files\AreeB.apk
Mounting
However, I never found any problem in tweaking with system files with adb, but some users said that they couldn't do it, so the problem was that their system partition was mounted as Read Only(R/O)
So, it is necessary now to tell how to mount system partition as Read Write(R/W)
Code:
adb remount
It is easiest way to do so, if it does not work then
There is another method that we will discuss in ADB Shell commands section
Pushing and Pulling
For pushing,
Type
Code:
adb push %PATH TO BE PUSHED% %PATH WHERE TO BE PUSHED%
Suppose I have an app named SystemUI.apk(PATH = G:\SystemUI.apk) which I want to push in /system/app/ on my android(or in other words, install an app as a system app). Then I would type
Code:
adb push G:\SystemUI.apk /system/app/
More examples
G:\Dance.txt file to be pushed in Dance folder in sdcard
Code:
adb push G:\Dance.txt /sdcard/Dance/
OR
Code:
adb push G:\Dance.txt /mnt/sdcard/Dance/
G:\Movies folder to be transferred in SDCARD in Videos Folder
Code:
adb push G:\Movies /sdcard/Videos/
G:\system\framework\framework-res.apk to be pushed in /system/framework/
Code:
adb push G:\system\framework\framework-res.apk /system/framework/
For pulling,
push command replaces with pull and paths are swapped
Code:
adb pull %PATH TO BE PULLED FROM% %PATH TO PLACE PULLED FILE%
Example,
All system apps are to be pulled to G:\ROM\system\app
Code:
adb pull /system/app G:\ROM\system\app\
build.prop to be extracted to desktop
Code:
adb pull /system/build.prop C:\Users\Areeb\Desktop\
However, if a folder is in platform-tools folder, you don't need to type full path
Suppose if I type
Code:
adb pull /system/ system
Then a folder named system will be created inside platform-tools with all the files in system in it
If a file is in platform-tools folder, then also no need to type full path
For example,
There is an app name DeskClock.apk in this folder then, to push it to /system/app, type
Code:
adb push DeskClock.apk /system/app/
ADB Shell Commands
This mode of adb allows you to execute linux shell commands from your PC
These commands can aldo be executed through the mobile using Terminal Emulator
To initiate shell mode
Type
Code:
adb shell
You will get an prompt like this
sh-3.2#
Now you are in shell mode
adb commands won't work here and a new set of commands will work here. But we will only go in a little detail here.
Assuming you are in adb shell mode, I will only type commands that will work on shell. Note:- These commands won't work if you type them alone on cmd. But, these command will directly work on your mobile's Terminal Emulator
As these commands can also work on mobile, I am going to tell you a way of taking logcat on mobile
Type
Code:
logcat
You will see log of your device
To save this
Type
Code:
logcat > /sdcard/log.txt
A file named log.txt will be generated in sdcard
Uninstalling Applications
Code:
cd /data/app
This will change the directory to /data/app
Code:
ls
This will show the list of files in there
Suppose, there is an app named com.opera.browser (Opera Mobile) you want to uninstall it
Type
Code:
rm -r com.opera.browser
This will uninstall the app
Mounting Command:-
Code:
mount -o rw,remount system /system/
Miscellanous commands:-
su: Initiates root request
du: Shows files, folders and size
date: Shows todays date
surfaceflinger: Shows your bootanimation (Tested on GB)
grep: Used to search through text files
chmod: Sets permission to files
sh: Initiates shell mode
echo: Displays the text you wrote with the command. Analogous to PRINT command on QBasic
Forgot next ones, will write later
Credits
Google: For Android and several searchings
Samsung: For Galaxy Ace s5830I
Broadcom: For their Open Sourceness
XDA Forums : For the precious knowledge
My Uncle: For gifting me this Phone
My Teachers: For teaching me English(I would not be here without them)
You: For future Thanks
Till now, thats it, will add some more things later
If any problem, I will add it too
Suggestion? They are welcome
Nice thread , every thing is very clearly stated.
Thx, Nice guide.
I suggest to change the 'remount' command in:
mount -o remount,rw /system
As the effect is the same and it works universally (at least, should)
Sent from my GT-5660 using xda app-developers app
ItachiSama said:
I suggest to change the 'remount' command in:
mount -o remount,rw /system
As the effect is the same and it works universally (at least, should)
Sent from my GT-5660 using xda app-developers app
Click to expand...
Click to collapse
I use the command you mentioned every time. Thanks for reminding. I can't remember why I wrote that command there!

Categories

Resources