Android mount the filesystem with write permission

adb, android, linux, mount, sqlite

Solution

Edit: Found a better solution

From host machine(Linux or windows PC), execute the following commands.

>> adb root
>> adb remount

remount will by default remount the /system partition with rw, if you have the permissions.

The Note 1 and 2 mentioned below are still applicable.

Old way

To remount a mounted system you need to have root privileges. Do an `su`. You will enter root mode. Then run the below command. It will work, I did it many a times.

So here are the steps:

 adb shell 
 su
 mount -o rw,remount /system

Note 1: To execute the commands `su` or `adb root`, your device must be rooted and have su executable on it. If the command `su` is successful, terminal prompt will change from `$` to `#`.

Note 2: In recent mobiles, Security has been tightened, and even after rooting the phone, `adb remount` wouldn't work. As of i know, there is no solution available for it so far.

Problem

The Android device I am using does not hold `sqlite3` on it, so i thought to `push` it to the device after `pull`ing it from the AVD. I had no problem pulling it from the AVD, though I cannot push it to the device since I need to enable a write permission. I tried to follow sqlite3: not found I tried the following ``` $ adb -d shell $ mount mount rootfs / rootfs ro,relatime 0 0 tmpfs /dev tmpfs rw,relatime,mode=111 0 0 devpts /dev/pts devpts rw,relatime,mode=600 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 none /acct cgroup rw,relatime,cpuacct 0 0 tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0 tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0 tmpfs /mnt/usb tmpfs rw,relatime,mode=755,gid=1000 0 0 tmpfs /app-cache tmpfs rw,relatime,size=7168k 0 0 none /dev/cpuctl cgroup rw,relatime,cpu 0 0 /dev/block/mmcblk0p9 /system ext4 ro,relatime,barrier=1,data=ordered 0 0 /dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered /dev/block/mmcblk0p1 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 nil /sys/kernel/debug debugfs rw,relatime 0 0 /dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered, /dev/block/mmcblk0p4 /mnt/.lfs j4fs rw,relatime 0 0 /dev/block/vold/179:11 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,noatime,n epage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro,discard 0 ``` I followed this link and tried to mount the filesystem as follows but I got a permission error. ``` $ mount -o rw,remount -t yaffs2 /dev/block/mmcblk0p9 /system mount: Operation not permitted ``` Any clue what is needed to be done in order to `push` `sqlite3` into an Adroid device for debugging reasons?

Original source

Related problems