0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android挂载system文件夹读写权限

哆啦安全 来源:哆啦安全 2023-08-08 09:36 次阅读

Android系统中,system文件夹一般都是只读属性,无论是root用户还是普通权限用户,在Android安全研究或开发过程中,如果想要访问和修改system文件夹下的内容的话就需要获取system文件夹的写属性,因为Android版本的变化和Android各厂商机型的差异以及Android安全的不断升级,所以在不同版本、不同机型下system文件夹修改读写属性的方式也有较大的区别。

1.Android8.0以下

(1).获取system分区的全名

adb shell
mount

Android7.1.2

ce44cb08-3535-11ee-9e74-dac502259ad0.png

cancro:/ # mount
rootfs on / type rootfs (ro,seclabel,relatime)
tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=1465856k,nr_inodes=150784,mode=755)
devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600)
proc on /proc type proc (rw,relatime,gid=3009,hidepid=2)
sysfs on /sys type sysfs (rw,seclabel,relatime)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,seclabel,relatime)
none on /acct type cgroup (rw,relatime,cpuacct)
tmpfs on /mnt type tmpfs (rw,seclabel,relatime,size=1465856k,nr_inodes=150784,mode=755,gid=1000)
none on /config type configfs (rw,relatime)
none on /dev/cpuctl type cgroup (rw,relatime,cpu)
none on /dev/bfqio type cgroup (rw,relatime,bfqio)
/dev/block/mmcblk0p23 on /system type ext4 (ro,seclabel,relatime,data=ordered)
/dev/block/mmcblk0p24 on /cache type ext4 (rw,seclabel,nosuid,nodev,noatime,noauto_da_alloc,data=ordered)
/dev/block/mmcblk0p25 on /data type ext4 (rw,seclabel,nosuid,nodev,noatime,noauto_da_alloc,data=ordered)
/dev/block/mmcblk0p21 on /persist type ext4 (rw,seclabel,nosuid,nodev,relatime,data=ordered)
/dev/block/mmcblk0p22 on /firmware type vfat (ro,context=ufirmware_file:s0,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=cp437,iocharset=iso8859-1,shortname=lower,errors=remount-ro)
tmpfs on /storage type tmpfs (rw,seclabel,relatime,size=1465856k,nr_inodes=150784,mode=755,gid=1000)
/data/media on /mnt/runtime/default/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,uid=1023,gid=1023,multiuser)
/data/media on /storage/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,uid=1023,gid=1023,multiuser)
/data/media on /mnt/runtime/read/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,uid=1023,gid=1023,multiuser)
/data/media on /mnt/runtime/write/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,uid=1023,gid=1023,multiuser)

/dev/block/mmcblk0p23 on /system type ext4 (ro,seclabel,relatime,data=ordered)

可以看得出/system的权限是ro,即是read only

ce64c39a-3535-11ee-9e74-dac502259ad0.png

(2).根据名称重新挂载

mount -o rw,remount -t ext4 /system

ce840b4c-3535-11ee-9e74-dac502259ad0.png

/dev/block/mmcblk0p23 on /system type ext4 (rw,seclabel,relatime,data=ordered)

可以看到/system拥有rw的权限

当/system目录为RW权限后,就可以随意删除或者替换系统应用

(3).完全重新挂载整个系统

adb root
adb disable-verity
adb remount

(4).如果要改回到ro权限,可以执行,如下命令

ceabf45e-3535-11ee-9e74-dac502259ad0.png

2.Android8.0以上

Android8.0以上通过以上mount命令,会发现找不到/system代表的节点和拥有的权限信息,这是因为Android8.0之后谷歌加入了A/B system的特性,system分区跟ramdisk分区打包在一起,因此系统起来之后也就不存在system分区了,而是直接把system镜像挂载到/根目录上。所以/proc/mounts文件中没有包含/system的权限信息,此时如果使用上面的命令:

mount -o remount,rw /system

cecfb556-3535-11ee-9e74-dac502259ad0.png

Android8.1.0

cefa0090-3535-11ee-9e74-dac502259ad0.png

cf195102-3535-11ee-9e74-dac502259ad0.png

cf3a3c5a-3535-11ee-9e74-dac502259ad0.png

shamu:/ $ mount
rootfs on / type rootfs (ro,seclabel)
tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,size=1508708k,nr_inodes=147903,mode=755)
devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600)
proc on /proc type proc (rw,relatime,gid=3009,hidepid=2)
sysfs on /sys type sysfs (rw,seclabel,relatime)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
/dev/block/mmcblk0p41 on /system type ext4 (ro,seclabel,relatime,data=ordered)
none on /acct type cgroup (rw,relatime,cpuacct)
none on /dev/memcg type cgroup (rw,relatime,memory)
debugfs on /sys/kernel/debug type debugfs (rw,seclabel,relatime)
tmpfs on /mnt type tmpfs (rw,seclabel,relatime,size=1508708k,nr_inodes=147903,mode=755,gid=1000)
none on /config type configfs (rw,relatime)
none on /dev/cpuctl type cgroup (rw,relatime,cpu)
none on /dev/cpuset type cgroup (rw,relatime,cpuset,noprefix,release_agent=/sbin/cpuset_release_agent)
pstore on /sys/fs/pstore type pstore (rw,seclabel,relatime)
none on /dev/bfqio type cgroup (rw,relatime,bfqio)
/dev/block/mmcblk0p38 on /cache type ext4 (rw,seclabel,nosuid,nodev,noatime,data=ordered)
/dev/block/mmcblk0p1 on /firmware type ext4 (ro,context=ufirmware_file:s0,relatime,data=ordered)
/dev/block/mmcblk0p26 on /persist type ext4 (rw,seclabel,nosuid,nodev,noatime,data=ordered)
/dev/block/mmcblk0p21 on /fsg type ext4 (ro,context=ufsg_file:s0,nosuid,nodev,relatime)
adb on /dev/usb-ffs/adb type functionfs (rw,relatime)
tmpfs on /storage type tmpfs (rw,seclabel,relatime,size=1508708k,nr_inodes=147903,mode=755,gid=1000)
/dev/block/mmcblk0p42 on /data type ext4 (rw,seclabel,nosuid,nodev,noatime,nobarrier,noauto_da_alloc,data=ordered)
/data/media on /mnt/runtime/default/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid)
/data/media on /storage/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid)
/data/media on /mnt/runtime/read/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=23,derive_gid)
/data/media on /mnt/runtime/write/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=9997,multiuser,mask=7,derive_gid)

Android10

cf58e0a6-3535-11ee-9e74-dac502259ad0.png

cf6c8fd4-3535-11ee-9e74-dac502259ad0.png

cf9819c4-3535-11ee-9e74-dac502259ad0.png

重新挂载/system分区会报错

mount: '/system' not in /proc/mounts

临时挂载上/system文件夹 ,重启后失效

mount-oremount-orw/

cfb365c6-3535-11ee-9e74-dac502259ad0.png

cfc32380-3535-11ee-9e74-dac502259ad0.png

cfd326ae-3535-11ee-9e74-dac502259ad0.png

其实为什么root用户会出现/system文件夹无权限写的情况的话,主要原因是/system所属的用户组不是root,而是system用户组,所以需要重新挂载。

当然上面方法不能挂载/system目录的话而且提示“’/dev/root’ is read-only”的话,那么是因为你的设备开启了avb,此时就只能通过下面的方式完全重新挂载整个系统:

adb root
adb disable-verity
adb remount

如果adb disable-verity提示需要解锁OEM的话,那么还需要先解锁OEM:

adb reboot fastboot
fastboot oem unlock
fastboot reboot

提示解锁成功后,重新执行命令就不会报错!





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OEM
    OEM
    +关注

    关注

    4

    文章

    400

    浏览量

    50211
  • Android系统
    +关注

    关注

    0

    文章

    56

    浏览量

    13444
  • ADB驱动
    +关注

    关注

    0

    文章

    13

    浏览量

    6256

原文标题:Android挂载system文件夹读写权限

文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【NanoPi M1 Plus试用体验】挂载硬盘并设置读写权限

    出现了。接着用chmod更改文件夹权限,记得要用root用户操作chmod -R 777 /home/fa/u***hdd然后你就可以用其他用户读写硬盘里的文件了。至此,硬盘已被成功
    发表于 06-25 17:11

    哪里有SYSTEM文件夹

    就是和system32一起的system文件夹?由于上面我们还没有任何代码在工程里面,这里我们把系统代码COPY过来(整个SYSTEM文件夹
    发表于 08-23 04:35

    SYSTEM文件夹以及GPIO原理是什么?

    SYSTEM文件夹以及GPIO原理是什么?
    发表于 12-14 07:03

    Android 11中OTA工具读写文件夹不具有访问权限,不能升级是为什么?

    Android 11中,OTA工具读写文件夹不具有访问权限,不能升级。请问有把OTA文件放在能访问的
    发表于 08-15 06:21

    如何给共享文件夹加密

    如何给共享文件夹加密 对于windows XP用户:   1. 打开“我的电脑”->“工具”->“文件夹选项”->“查看”->去掉“使
    发表于 02-24 11:31 2332次阅读

    如何删除msn共享文件夹

    如何删除msn共享文件夹  Q:我的电脑中有个安装了MSN 8.0才有的无名文件夹。我想问问董师傅,这个文件夹到底有什么?如何删除?
    发表于 02-24 13:56 788次阅读

    Android系统文件夹结构解析

    Android系统文件夹结构解析
    发表于 03-19 11:23 0次下载

    ubuntu中隐藏/显示文件文件夹

    ubuntu 16.04 LTS - 隐藏/显示文件文件夹 1. GUI hot key Ctrl H: 隐藏/显示文件文件夹 2. Show hidden and backup
    发表于 11-25 12:52 5056次阅读

    Linux中如何判断文件夹是否存在并新建文件夹

    本文档的主要内容详细介绍的是Linux中如何判断文件夹是否存在并新建文件夹vi文件免费下载。
    发表于 01-17 08:00 8次下载
    Linux中如何判断<b class='flag-5'>文件夹</b>是否存在并新建<b class='flag-5'>文件夹</b>

    Unity中所有特殊的文件夹

    隐藏文件夹:以.开头的文件夹会被Unity忽略。在这种文件夹中的资源不会被导入,脚本不会被编译。也不会出现在Project视图中。
    的头像 发表于 02-12 16:10 2542次阅读

    笔记:Unity中所有特殊的文件夹

    隐藏文件夹:以.开头的文件夹会被Unity忽略。在这种文件夹中的资源不会被导入,脚本不会被编译。也不会出现在Project视图中。
    发表于 01-21 06:24 4次下载
    笔记:Unity中所有特殊的<b class='flag-5'>文件夹</b>

    嵌入式开发板挂载linux上文件夹

    嵌入式开发板挂载linux上文件夹实训需要,学习嵌入式,本身是软件开发,由于课程需要,完成一些步骤,以此纪录1.首先在本地linux(Deepin)上安装nfs服务sudo apt-get
    发表于 11-02 19:21 20次下载
    嵌入式开发板<b class='flag-5'>挂载</b>linux上<b class='flag-5'>文件夹</b>

    【自学笔记】STM32的SYSTEM文件夹介绍

    概览该文件夹下包含3个文件:1.delay文件夹​ delay文件夹内包含了delay.c和delay.h两个文件,用来实现系统的延时功能
    发表于 11-26 11:51 3次下载
    【自学笔记】STM32的<b class='flag-5'>SYSTEM</b><b class='flag-5'>文件夹</b>介绍

    linux 显示文件夹所有文件的属性

    在Linux中,您可以使用 ls 命令来显示文件夹所有文件的属性。使用 ls -a 命令可以查看包括隐藏文件在内的所有文件。每个文件的属性将
    的头像 发表于 11-13 16:52 921次阅读

    【操作指引】铁威马NAS加密文件夹创建和使用教程

    可以被打开,否则任何人均无法获取加密共享文件夹的内容。 如何创建加密文件夹 1.登录TOS系统,前往TOS桌面-控制面板-访问权限-共享文件夹; 2.选择共享
    的头像 发表于 04-02 14:17 774次阅读
    【操作指引】铁威马NAS加密<b class='flag-5'>文件夹</b>创建和使用教程