- A rooted android phone
- ADB installed on your linux PC. Here is a guide to install ADB if you haven’t already.
Getting Android Mounts
Enable USB debugging in Developer options in your android phone. Then plug it to your PC with the usb cable.
Now open a terminal on your PC and enter the following command…
If all went well you should see your phones’ serial number listed in the terminal.
Next enter the following command…
The next command is to gain root access which we will need. Make sure your phone’s screen is on and unlocked before entering the next command. Once you enter the command you will get a prompt on your phone asking for root permission. Make sure to allow it…
Now we will get the mounts with the following command…
You should now see a long output in your terminal similar to the one below. I have highlighted the path for the /system mount point path. The path for your device might be a little different which is ok. As you can see, all the mounts use the same path. Copy this path from your terminal so we can use it in the next step.
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,errors=panic,data=ordered 0 0 /dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,seclabel,nosuid,nodev,noatime,noauto_da_alloc,errors=continue,commit=20,data=ordered 0 0 /dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,seclabel,nosuid,nodev,noatime,noauto_da_alloc,errors=continue,commit=20,data=ordered 0 0
In this next step we will use the path we copied from the previous step to enter the following command to retrieve all the partitions…
ls -al /dev/block/platform/msm_sdcc.1/by-name
Your output from the above command should look like the following with all the partitions labeled by name. I highlighted the boot partition path so that we can pull the boot.img in the next step…
lrwxrwxrwx 1 root root 20 2013-12-31 20:00 aboot -> /dev/block/mmcblk0p7 lrwxrwxrwx 1 root root 21 2013-12-31 20:00 boot -> /dev/block/mmcblk0p17 lrwxrwxrwx 1 root root 20 2013-12-31 20:00 modem -> /dev/block/mmcblk0p2 lrwxrwxrwx 1 root root 21 2013-12-31 20:00 recovery -> /dev/block/mmcblk0p18 lrwxrwxrwx 1 root root 21 2013-12-31 20:00 system -> /dev/block/mmcblk0p24
Pulling Partition Images
Now that we know our boot partition path we can use it in the next command to copy the boot.img to our internal SD on our android phone…
dd if=/dev/block/mmcblk0p17 of=/sdcard/boot.img
With the above command we have now copied the boot.img to our internal SD. You can now drag and drop the boot.img from your phone’s internal SD to your PC. Alternatively you can use the following command to pull the boot.img from the internal SD to your PC’s desktop.
If you are still in the adb root shell then enter the following 2 commands in terminal to exit root shell and adb. If you have already exited you can skip this step…
To copy the boot.img from your phone’s internal SD to your desktop enter the following command…
adb pull /sdcard/boot.img $HOME/Desktop
All done! You can use this guide to get any partition image you wish (ie. boot.img, recovery.img, system.img, etc).
This concludes the guide. You have now learned how to find your mounts, partitions, and pull your partition images from your android phone. Enjoy!