Hi
I was following the thread -
http://forum.xda-developers.com/showthread.php?t=921169
Indeed this is very detailed tutorial to connect your android device to ubuntu. Nice post, thans a lot, I came to know about many thinks in Linux, since I am new to Ubuntu world.
I followed the steps mentioned here and I can say I travelled half way...
when I type the command
[email protected]:~# adb devices
List of devices attached
FB01111200095 device
I can see my device(Spice MI-410 phone) connected. I tried successfully executing few adb command
[email protected]:~# adb shell
$ pwd
/
$ cd system
$ pwd
/system
$
however, when I try the command df it shows an error
r[email protected]:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 20125340 8278140 10824892 44% /
none 247388 636 246752 1% /dev
none 254000 24 253976 1% /dev/shm
none 254000 108 253892 1% /var/run
none 254000 0 254000 0% /var/lock
df: `/media/MI410': Transport endpoint is not connected
[email protected]:~#
I am not able to mount phone memory in ubuntu ( correct me if I am wrong).
The file explorer shows the device MI410 listed, but when I click on it I will get the following error message.
Even with nautilus I am not able to view/access the phone memory.
I was trying to root my Spice CSL MI410 manually. I was getting and error message if I type sudo nautilus in command prompt. It says it could not locate the speciied file or directory ( I don't remember the exact message) Some how I am not getting the error message in command prompt now, but could not access the phone memory with root access to copy busybox and su file to /system/bin directory.
"Could not display "/media/MI410"
Error: Error starting file 'media/MI410'.
Transport endpoint is not connected
Please select another viewer and try again
Could you please look into this and guide me in accessing the phone memory with root access to it so that I copy those file and root my phone.
Thanking you,
Gopinath B
PS: I am a rooky to ubuntu and android, I apologise if you find my question/comments are not correct.
I want to root my Android 4.0.4 virtual device for developing.......... How to root it?
Here you go ... ;-)
Paresh Kalinani said:
I want to root my Android 4.0.4 virtual device for developing.......... How to root it?
Click to expand...
Click to collapse
The following method is actually for 2.2 virtual machine ... but should work fine for 4.0 too ... i'll confirm after i have tested it ... meanwhile you can try it ..
You'll require
'su' binary
and
'busybox binary'
SU BINARY : See post's end
BUSY BOX BINARY : see posts end
Then, we need to start the emulator by providing extra partition size to /system. This can be done only through command-line
Code:
emulator -avd MyAndroid -partition-size 128 -no-snapshot-load
Make sure the AVD “MyAndroid” is already created. The “-no-snapshot-load” option is used if we enabled the snapshot. As a result, we will start the emulator with extra disk space for /system. By this, we can adding extra files to /system later.
Then, we need to use “adb shell” to remount the /system so that we have write access to the /system.
Code:
adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock0 /system
Then, we can push the su and busybox to the /system/xbin.
Code:
adb push su /system/xbin/
adb push busybox /system/xbin/
Now, to actually make the su work properly, we need to chmod it,
Code:
adb shell chmod 06755 /system/xbin/su
adb shell chmod 06755 /system/xbin/busybox
Now, we need to install Superuser.apk (which you can get together with “su”). We can install it with “adb install” command. It is required when the other apps request for “su”.
We can try our “su” with Root Checker Basic or Stericson Busy-box.
Now, that is rooting. You might feel happy with it. However, if we restart the emulator, without snapshot, all the “su” does not work any more. So, we are going to customise the ROM image.
Failures
Now, if we restart the emulator, everything will return to default. No more “su” and Android Market. Why? The reason is because whatever we done to the /system, it will not save to the ROM image.
The /system is actually from the system.img, installed with android-2.2 in my case. This file is mounted in emulator as yaffs2 file system format. In order to customise this ROM image, I have tried several ways.
Using unyaffs, it can only extract the image, but I cannot continue. I can simply pull the /system using adb command without it.
Using yaffs2utils, unyaffs2 produced nothing. And the image built by mkyaffs2 does not allow the emulator to boot.
Using mkyaffsimage, also not work as above.
Some resources mentioned that, we can get the mkyaffs2image utility when building the Android source. But the problem is, to get the source, it requires a lot of disk space and need a long time to download.
So, what is the best way to modify the system.img? I even tried the low level way using dd to extract the /dev/block/mtdblock0, but failed.
Solution
Finally, I tried to solve it with userdata-qemu.img. This is the /data folder that will always modified when we install apps in the emulator. Restarting the emulator does not reset /data. Therefore, we can simply create the ROM image from /data. We can done it simply clean all the /data.
Code:
adb shell busybox rm -R /data/*
This will remove everything is /data, except “lost+found” folder.
Code:
adb shell busybox ls /data
Check with ls command, make sure only “lost+found” left.
Now, since the /system contains the “su”, “busybox”, Market and Google Services Framework we have done earlier, we need to copy the whole /system to the /data.
Code:
adb shell busybox cp -a /system/* /data/
adb shell busybox ls /data
As a result, the /data is identical to the /system.
Now, we have the userdata-qemu.img file in the AVD folder, which is modified. Close the emulator. Then, we can use the userdata-qemu.img file as the system image. We can rename it to system.img, or calling it as the system with “-system” option from the emulator command-line.
Start the emulator with this customised system.img, now, we have busybox by default, and also Android Market. :good::highfive:
Tip
If you are doing this on windows make sure you CD to here for issuing the commands:
%profilename%\AppData\Local\Android\android-sdk\tools
Don't use the stuff in C:\Program Files\Android. That is the wrong location.
The below gets your GAPPS too. You can download Cyanogens GAPPS to get what you need. Just edit the necessary lines below.
cd %profilename%\AppData\Local\Android\android-sdk\
.\tools\emulator -avd MyAndroid -partition-size 2047 -no-snapshot-load -verbose
echo wait for boot
pause
.\platform-tools\adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock0 /system
.\platform-tools\adb push %~dp0platform-tools\su /system/xbin/
.\platform-tools\adb push %~dp0platform-tools\busybox /system/xbin/
.\platform-tools\adb shell chmod 06755 /system/xbin/su
.\platform-tools\adb shell chmod 06755 /system/xbin/busybox
.\platform-tools\adb shell busybox rm -R /data/*
.\platform-tools\adb shell busybox ls /data
.\platform-tools\adb shell busybox ls /data
.\platform-tools\adb push %profilename%\Downloads\gapps-ics-20120317-signed\system /system
.\platform-tools\adb shell busybox cp -a /system/* /data/
Which busybox binary?
You don't say which of the various busybox files in the .7z archive is to be used on the AVD?
I try to push the su, I got this message:
C:\adb>adb push sources\root\su /system/xbin
failed to copy 'sources\root\su' to '/system/xbin/su': Directory not empty
Then try push the Superuser.apk
C:\adb>adb push sources\root\system\app\Superuser.apk /system/app/Superuser.apk
failed to copy 'sources\root\system\app\Superuser.apk' to '/system/app/Superuser
.apk': Out of memory
I think that's because of this:
View attachment 1617834
How to make the System ROM space more freely???
----------------------------------------------------------------------------
Sorry for my noob question. Now, I see.
I have done untill rename userdata-qemu.img to system.img
But while I run from AVD Manager, my AVD got bootloop.
That's because you haven't started your emulator with additional space. Use the -partition-size option as per niranjan94's post above.
I found an even better way to make a /system image, and adapted it for use on Windows hosts and using the x86 emulator images now available.
References:
http://blog.thecobraden.com/2012/06/making-persistent-changes-to-android.html
http://code.google.com/p/android-group-korea/downloads/detail?name=mkfs.yaffs2.x86
Place this batch file in the same folder as the mkfs.yaffs2.x86 binary and you'll get an emulator image updated to your liking and ready to run.
Code:
@echo off
adb -e remount
echo Pushing mkfs.yaffs2.x86 to device...
adb -e push mkfs.yaffs2.x86 /data/local/
echo Executing chmod 770 /data/local/mkfs.yaffs2.x86
adb -e shell chmod 770 /data/local/mkfs.yaffs2.x86
echo Setting /system partition to read-only (Just to be safe!)
adb -e shell mount -o ro,remount /dev/block/mtdblock0 /system
echo Creating YAFFS2 image of /system
adb -e shell /data/local/mkfs.yaffs2.x86 /system/ /mnt/sdcard/_system.img
echo Pulling image to local directory...
adb -e pull /mnt/sdcard/_system.img
echo Cleaning....
adb -e shell rm /data/local/mkfs.yaffs2.x86
adb -e shell rm /mnt/sdcard/_system.img
echo OK
pause
Don't work on 4.2.2 emulator
Ι mean I push it, give permissions, install su.apk ... still nothing...
On 4.2.2 emulator
Hi,
I got the same error on 4.2.2 emulator.
So I tried with size 256:
emulator -avd Andy2 -partition-size 256 -no-snapshot-load
and it worked fine.
Also, I'm using CPU ARM (armeabi-v7a). So for busybox I used the binary from this thread:
http://forum.xda-developers.com/showthread.php?t=1380278
Error while trying to permanent patch rooted android
Hi,
While trying to root my android emulator where I delete all the files in the /data/ folder and copy files from /system/ to /data/, I am getting the following error,
Code:
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
Could anyone help me how to overcome this issue?
Hi,
i've followed your instructions step by step and didn't encounter any problems while executing the commands, but the emulator is not getting rooted according to the Root Checker app (see also the screenshot attached). Could you help me please to solve this issue?
Here is an enumeration of the commands I've entered into the console:
emulator -avd Huawei -partition-size 256 -no-snapshot-load
adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock0 /system
adb push "C:\Users\Admin\Desktop\Superuser-3.0.7-efghi-signed\system\bin\su" /system/xbin/
adb push "C:\Users\Admin\Desktop\busybox binary\busybox" /system/xbin/
adb shell chmod 06755 /system/xbin/su
adb shell chmod 06755 /system/xbin/busybox
adb install "C:\Users\Admin\Desktop\Superuser-3.0.7-efghi-signed\system\app\Superuser.apk"
adb install "C:\Users\Admin\Desktop\Root Checker App.apk"
Hi,
I have the device created in AVD, started, but for the life of me I cannot open ADB:
Code:
[email protected]:~$ sudo adb devices
[sudo] password for joel:
List of devices attached
[email protected]:~$
What to I have to do to trick the virtual device in advertising ADB? Developer is on, USB debugging is on. Using a virtual device as closely matching the LG Optimus F3Q as I can recall (so API 16 / Android 4.1.2 loaded).
Many thanks.
EDIT: Figured it out. Need to use the adb provided in the Android SDK (in the platform-tools directory), not any other version (I was using the Debian-provided one).
Unable to root nexus 4 avd
I tried to root Nexus_4_API_21.avd (lollipop) following commands from the post exactly.
I used latest versions of superuser, and busybox.
But at the end emulator is not rooted.
Could someone help with with this, if you have rooted avd please share it so that I can download.
Thank you.
Regards
I tried to root with Lollipop, Kitkat, and even Gingerbread, but it doesn't work.
Under Lollipop and Kitkat, it's not rooted, but under Gingerbread, I can't install any application afterwards.
When I try to, the emulator looks like it reboots, but it never goes to the end, and keeps showing the Android logo glowing.
For android 4, 5 and 6 I write manual in russian. Read it here: http://4pda.ru/forum/index.php?showtopic=318487&view=findpost&p=45421931
Worked for me with AVD Lollipop and Marshmallow.
Hello
There's a way for making a backup with RAW extension that can be flashed with fastboot in asus fonepad (i don't know about others)
See this: http://forum.xda-developers.com/showthread.php?t=1818321
Back up of the whole memory block (via adb)
Connect the phone in ADB mode and unlock the screen.
Open one Cygwin Terminal and enter (replace mmcblk0 if needed):
Code:
adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0
You will see the cursor blinking at the left. Now the phone is waiting to send the block over the network.
Open another Cygwin terminal and type:
Code:
adb forward tcp:5555 tcp:5555
cd /path/to/store/the/backup
nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw
You will see how the image size is growing until it finishes. Now you have the whole phone backed up in raw format. You can see the contents of the GPT partition with gptfdisk tool, available for windows, linux and such. See official website and sourceforge to get it. You can do it the same from ClockWorkMod Recovery but you have to mount first the /system partition since the busybox included with clockworkmod does not come with netcat and you have to use the one from the system partition.
With further linux tools you could edit or extract single partitions from the whole block.
Click to expand...
Click to collapse
But it's for rooted devices only. how can i make a backup with busybox non-root?
Hi there,
I tried both dd and adb pull to extract userdata partition (mmcblk0p57) from device.
The results were different.
For dd
Code:
adb shell dd if=/dev/block/mmcblk0p57 of=data.img
it returned
Code:
dd: data.img: Read-only file system
For adb pull, it created a NDIF disk image of userdata partition.
Why dd command failed?
What would be the differences between ddand adb pull commands?
Thanks in advance.
cross-posted
https://forum.xda-developers.com/t/4132813/post-87922879
Hi there,
The device is rooted.
I tried
Code:
adb pull /dev/block/mmcblk0p43 > /users/wenyuan/desktop/android/43.img
(mmcblk0p43 is userdata partition).
But the command was just stuck there and did not produce any results.
Would it be possible to adb pull partition (ex. userdata) to any other location than under platform-tools directory?
Would it be possible to adb pull partition even to an external disk?
Thanks.
-- Solution for internal disk--
The right code:
Code:
adb pull /dev/block/mmcblk0p43 /users/wenyuan/desktop/android/43.img
Remove ">"
do not use ">" in the command
CXZa said:
do not use ">" in the command
Click to expand...
Click to collapse
Thanks. It worked.
But would it be possible to adb pull a partition to an external disk?
I tried
Code:
adb pull /dev/block/mmcblk0p43 /Untitled/wenyuan/43.img
Untitled being the name of the external hard disk.
It did not work.
it works like this. maybe the external hard disk is not ready. also take care of fat32 file system only accept files < 4gb
if "Untitled" contains whitespaces you must quote path
aIecxs said:
it works like this. maybe the external hard disk is not ready. also take care of fat32 file system only accept files < 4gb
if "Untitled" contains whitespaces you must quote path
Click to expand...
Click to collapse
Given that,
1. in
adb pull /dev/block/mmcblk0p43 /users/wenyuan/desktop/android/43.img,
/users is under Macintosh HD; and
2. "Untitled", as an external hard disk, has the same status as Macintosh HD,
there should be some code indicating the location to "Untitied" hard disk, (ex. cd).
I tried
Code:
adb pull /dev/block/mmcblk0p43 cd /untitled/android/43.img
and it did not work.
type 'adb help' for usage
Code:
device commands:
adb push <local>... <remote>
- copy files/dirs to device
adb pull [-a] <remote>... <local>
- copy files/dirs from device
(-a preserves file timestamp and mode)
cd is cmd to change dir (unrelated to adb), don't invent fantasy usage.
btw "it did not work" is no meaningful error message. I am pretty sure the shell replied with something you can google for...
CXZa said:
do not use ">" in the command
Click to expand...
Click to collapse
Am I right in saying that
">" can not be used in "adb pull" but should be used in "adb shell su" and "adb exec-out", in case of pulling partitions? Or in any other circumstances?
Oh no, adb help and google search were no help.
https://bash.cyberciti.biz/guide/Standard_output
https://www.cyberciti.biz/faq/redirecting-stderr-to-stdout
aIecxs said:
https://bash.cyberciti.biz/guide/Standard_output
https://www.cyberciti.biz/faq/redirecting-stderr-to-stdout
Click to expand...
Click to collapse
Thanks for the links.
But I meant adb help and Google search did not help on how to adb pull device partition directly to an external disk.
refer to post #6
there is only one exact usage for adb pull
Code:
adb pull [-a] <remote>... <local>
where <local> is valid path to any directory on PC (whatever it is)
in case the command failed it will output meaningful error message. search for that error message (or post here)
what else do you expect to know?