如何在adb shell下mount Android下的分区
发布网友
发布时间:2022-04-23 08:59
我来回答
共1个回答
热心网友
时间:2022-06-18 18:09
通过adb shell访问Android。
有时候会在已经root的系统文件下面进行读写,例如/system,但是会提示类似read only file system的信息。
目前发现两种方法,该方法只在自己的测试机上成功,不保证其他机子一样。我的是Huawei U8818
下面的例子都是围绕/system目录。
方法一:
使用df命令查看
# df
df
Filesystem Size Used Free Blksize
/dev
197M 64K
197M 4096
/mnt/asec
197M 0K
197M 4096
/mnt/obb
197M 0K
197M 4096
/system
295M 245M
50M
4096
/data
755M 26M
728M 4096
/cache
188M 4M
184M 4096
/HWUserData 2G 1024K
2G
32768
/cust
59M 14M
44M
4096
/mnt/sdcard 7G 753M
6G
32768
/mnt/secure/asec 7G 753M 6G 32768
看到/system分区有295MB的大小。
接着查看/proc下的partitions
# cat /proc/partitions
cat /proc/partitions
major minor #blocks name
179
0
3817472 mmcblk0
179
1
20
mmcblk0p1
179
2
300
mmcblk0p2
179
3
133120
mmcblk0p3
179
4
1
mmcblk0p4
179
5
12288
mmcblk0p5
179
6
196608
mmcblk0p6
179
7
4096
mmcblk0p7
179
8
3072
mmcblk0p8
179
9
4096
mmcblk0p9
179
10
3072
mmcblk0p10
179
11
3072
mmcblk0p11
179
12
393216
mmcblk0p12
179
13
786432
mmcblk0p13
179
14
4096
mmcblk0p14
179
15
8192
mmcblk0p15
179
16
20480
mmcblk0p16
179
17
4096
mmcblk0p17
179
18
81920
mmcblk0p18
179
19
2154496 mmcblk0p19
179
32
7761920 mmcblk1
179
33
7757824 mmcblk1p1
31
0
4096
mtdblock0
看出,分区mmcblk012的大小最接近295MB,判断挂载点/system就对应该它了。
(其实,可以在/proc/mounts下面看的更直接。。。)
于是,输入以下mount命令
# mount -o remount,rw /dev/block/mmcblk0p12 /system
就可以在/system下面进行写操作。
当然,如果不打算重启机子的话,最好还是将它恢复到read only状态。输入:
# mount -o remount,ro /dev/block/mmcblk0p12 /system
该方法比较麻烦的是还要判断某挂载点跟分区,理论上说必须要将它们对应上来,否则会出错。
而实际上试过将不同的分区跟挂载点remount一下,居然还是可以的。原因暂时不明。
方法二:
考虑到上面用斜黑体字写的现象,尝试用其他信息代替”/dev/block/mmcblk0p12“,试了一下居然也是可行的!
直接输入下列命令即可:
# mount -o remount,rw mtd@system /system
第二种方法虽然也是可以的。之所以这么写是参考init.rc里面的mount写法。
不清楚这个是怎么回事,要是原生的linux mount命令应该不会这样的。
update: 2013.11
其实,没必要像上面方法一和方法二那么复杂.还可以更简单.只需要输入:
# mount -o remount,rw /system
即可.
linux系统自己会去维护一个已经mount的表.所以只需要输入现有的挂载点就行啦