/system
目录可写或只读安装在Android手机上?#1 楼
有几种方法可以挂载/system
目录RW或RO。但是,这将需要root用户。方法1:
将手机连接到计算机。 (确保在手机上启用USB调试)
在PC上打开
CMD
/ Terminal
。Windows:CTRL + R,然后类型
cmd
。Ubuntu:CTRL + ALT +T。
Mac:导航到
/Applications/Utilities/
并双击Terminal。键入以下内容:
adb shell
su
选择一项:(用于将完成安全性安装的
/system
返回RO)安装系统RW:
mount -o rw,remount /system
安装系统RO:
mount -o ro,remount /system
方法2:
在Android手机上打开
terminal
(在此处下载) ):在
terminal
中键入以下内容:su
选择一个:(将安全的
/system
安装完成后返回RO)安装系统RW:
mount -o rw,remount /system
安装系统RO:
mount -o ro,remount /system
Android 2.3
对于运行Androi的人d 2.3并且命令失败,请看以下答案:https://android.stackexchange.com/a/125437/95577
#2 楼
用于仿真器的-writable-system
构建后启动仿真器时,必须使用:
. build/envsetup.sh
lunch aosp_x86_64-eng
emulator -show-kernel -verbose -writable-system
然后,为了将来运行,必须保留
-writable-system
选项,否则图像更改将不可见:emulator -show-kernel -verbose -writable-system
-verbose
向我们显示仿真器已从默认-drive
切换:if=none,index=0,id=system,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img,read-only
到:
if=none,index=0,id=system,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576
因此:
删除
,read-only
使用
system-qemu.img.qcow2
而不是system-qemu.img
。这意味着更改仅在更改后在以后的靴子中传递
-writable-sytem
时才可见!我们可以看到qcow2图像只是基本图像上方的一小层覆盖层,因为:
qemu-img info /path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img.qcow2
包含:
backing file: /path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img
模拟器
-help
也证实了这一点:emulator -help
包含:
-writable-system make system & vendor image writable after 'adb remount'
adb remount
+ adb root
我认为这只是
mount
的捷径,如https://android.stackexchange.com/a/110928/126934所述,但这非常方便:adb root
adb remount
adb shell
adb help
包含: root restart adbd with root permissions
remount
remount /system, /vendor, and /oem partitions read-write
恢复原始系统映像
与用户数据相同:移除
.qcow2
覆盖,然后重新手动生成它:https://stackoverflow.com/questions/54446680/how-to-reset-the-userdata-image-when-building-android-aosp-and-running-it-on-the-
评论
似乎(方法1)在更新的Android上不再起作用。我正在尝试在运行Android 6的Android仿真器上执行此操作,但始终会收到错误“挂载:只读文件系统”。我已经运行过adb root,但这没什么区别。关于可以做什么的任何想法?
– diidu
16 Sep 12'在12:07
我知道了,有点。启动模拟器时,必须使用-writable-system命令行选项。然后,第一次adb重新安装似乎成功了。似乎...我还没有看到它变为rw。
– diidu
16年9月12日在12:47
模拟器-可写仍然是正确的答案。
– Edgar Aroutiounian
17年9月6日在3:49
“对于运行Android 2.3的用户”-措辞沟通不佳。我猜您的意思是> = 2.3或<= 2.3(或者,如果2.3中仅存在特定错误,则不太可能是2.3),但我们不知道哪个或为什么。
–唐·哈奇
17年12月28日在1:32