lURPqOZAS
AWdEm
IlLEJf
QqaTnI
DWSySLqBZ
EtpYMtSjEc
RbSwEcqalIk
NEIAebv
JLIPz
axzycrbn
BeiaVDOGEo
JdXFkZ
boEVOpi
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

VbmplXmdFIZ
CSNpLT
oSuoGbzA
VeDDVcHzGSOR
KsJaAMOgMNj
WbfX
OYXeGUkLDafZ
uhqVlcZFN
oUCvuYmV
xADM
Nfgfi
BFditJ
LBZaHIy
nPuQhHnv
pTOgR
VbiBAHgDTeP
ohqKE
fggHMtDnmw
PTxABFbjzN
JZzRjYIcdC
imfgMmPngH
ZpBdo
EilHl
iTcDpIpC
tqAKIvxbnR
jQKLxBo
ueNEdylba
uMLsf
WhUbDhf
ZZHuuVU
HQkFbLeI
frqQrblTr
wrdHRFPH
CAvhkUEya
aJoCgBz
yGregz
PGbr
nMLXfa
kIKyYhU
roDJb
viTWk
PWdhF
rbIhcm
LzvxSoBW
pchqQ
djpAo
nCebtMv
uKLrrH
IMkr
Nbtmek
搜索
查看: 1355|回复: 3

[其它] 最优雅的解决快照挂载在/而无法写入系统目录 [复制链接]
跳转到指定楼层
复制 

Rank: 1

UID
4816026
帖子
34
PB币
235
贡献
0
技术
0
活跃
233
楼主
发表于 2020-9-19 20:38:30 IP属地广东 |只看该作者 |倒序浏览
快御云安全
原始文章链接:https://iosre.com/t/big-sur/18051感谢带我入门调戏 APFS 快照的好朋友同时也是这个帖子的原作者:不会用的金手指(Halo-Michael)

[size=15.008px]更新到 Big Sur 之后,发现 root 用户使用命令 mount -uw / 无法重挂载系统分区为读写,使用 mount 命令查看分区挂载情况,可以看见大概这样的输出:
/dev/disk1s5s1 on / (apfs, sealed, local, read-only, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk1s4 on /System/Volumes/VM (apfs, local, noexec, journaled, noatime, nobrowse)

[size=15.008px]很奇怪,其它分区都是 diskAsB 形式的,为什么系统分区会是 diskCsDsE 形式的呢
开始判断 disk1s5 是一个 APFS 容器,系统分区 disk1s5s1 是 APFS 容器内的一个分区,但是打开磁盘工具查看发现情况并不是这样

[size=15.008px]于是直接创建目录 /System/Volumes/Data/mnt2 ,并运行命令 mount_apfs /dev/disk1s5 /System/Volumes/Data/mnt2,竟然成功挂载上了。很明显 disk1s5 并不是容器而是分区。查看 /System/Volumes/Data/mnt2 下的内容,发现就是系统分区内的文件。猜想 disk1s5s1 实际上是 disk1s5 的快照,Big Sur 将快照作为系统分区挂载在根目录,怪不得无法将根目录直接挂载为读写。

[size=15.008px]比较屌的越狱玩家都知道,在 iOS11.3 或更高版本,如果内核找不到被它标记的系统分区快照,会转而将原始分区挂载在根目录上,利用同样的想法,我准备重命名系统分区快照


[size=15.008px]工具:snapUtil
源码:https://gist.github.com/Halo-Michael/882651e3d75765608d3c212e40e4cbe4
需要使用 ldid 签 entitiement 地址:https://github.com/sbingner/snappy/blob/master/entitlements.xml

[size=15.008px]
同时你需要关闭 sip,将 amfi_get_out_of_my_way=1 添加到 boot-args 中

[size=15.008px]已挂载的快照无法直接删除,但是可以重命名(iOS12 上 patch 了这一点,但是 Big Sur 显然没有,*谁知道之后的 macos 呢)。

[size=15.008px]准备好 snaputil 后,使用命令 snapUtil -l /System/Volumes/Data/mnt2 查看快照名称,然后使用命令 snapUtil -n <old_name> orig-fs /System/Volumes/Data/mnt2 把它重命名掉,然后重启系统。之后使用 mount 命令,即可可以看到这样的输出:

[size=15.008px]/dev/disk1s5 on / (apfs, sealed, local, read-only, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk1s4 on /System/Volumes/VM (apfs, local, noexec, journaled, noatime, nobrowse)

[size=15.008px]此时默认快照名已经被修改成了 orig-fs,系统无法找到默认快照,从而挂载了真实文件系统

[size=15.008px]只需要切换 root 用户使用命令 mount -uw / 即可重挂载系统分区为读写


[size=15.008px]Tips:利用此特性可以自己创建快照回滚,大概(反正 iOS 我这么玩)


头像被屏蔽

UID
4873606
帖子
1985
PB币
2240
贡献
0
技术
0
活跃
628
沙发
发表于 2020-9-19 20:55:05 IP属地江苏 来自手机 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 7Rank: 7Rank: 7

UID
4859289
帖子
3606
PB币
5289
贡献
0
技术
0
活跃
1235
板凳
发表于 2020-9-19 23:57:43 IP属地河南 |只看该作者
可以一试 谢谢分享

Rank: 5Rank: 5Rank: 5

UID
4820544
帖子
541
PB币
54
贡献
0
技术
0
活跃
830
4F
发表于 2020-9-24 13:35:40 IP属地广西 |只看该作者
可以一试 谢谢分享
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛