1、进入xonsh-afc shell:
pymobiledevice3 apps afc bundle_id
2、进入shell后默认的目录是:[com.apple.mobile.house_arrest:/]$,这个目录是指定bundle_id的沙盒目录。
3、沙盒目录中如果包含带有空格的文件夹,直接使用cd Application Support/ 或者 cd Application\ Support/ 都会报错,cd: error: unrecognized arguments: Support/,这时候要使用双引号将文件夹名括起来,才可以正常访问该目录,cd "Application Support/"
4、amfi命令,开启开发者模式,并可以查询它的状态:
pymobiledevice3 amfi enable-developer-mode(执行后设备会重启)
pymobiledevice3 amfi developer-mode-status(查询开发者状态)
这个状态是跟“设置” > “隐私与安全” > “开发者模式”,中的开关打开或关闭状态相关的,关闭这个开关,pymobiledevice3 amfi developer-mode-status,查询状态就是false:
这是通过命令打开开发者模式:
pymobiledevice3 amfi enable-developer-mode,这是设备会重启,重启成功后再次查询:
pymobiledevice3 amfi developer-mode-status
这时手机中“设置” > “隐私与安全” > “开发者模式”的开关也打开了。这时候想要截一张图,此时却弹出了错误提示(刚刚还可以,怎么这时就不行了,前一篇文章还截图了呢,,,):
截图时提示没有启动tunneld服务:
pymobiledevice3 developer screenshot /Users/testmanzhang/Downloads/44444.png
手动启动tunneld服务时报错pymobiledevice3.exceptions.InvalidServiceError: InvalidService:
于是查了一下tunneld服务,
tunneld
是一个服务,通常运行在 macOS 上,用于提供与 iOS 设备的远程连接。它主要用于通过网络为开发者提供更好的调试和开发环境,尤其是在需要访问 iOS 设备的开发命令时。
当你在 macOS 上运行相关命令(如截图、访问日志等)时,如果遇到需要连接 tunneld
的错误,通常意味着你需要先启动该服务。启动 tunneld
后,它将允许你通过网络与连接的 iOS 设备进行交互。
既然通过网络与iOS设备进行交互,那么就开启了无线连接iOS设备,在Xcode上开启了Connect via network(这时突然想起来,刚才重启电脑了,并把手机的密码也取消了。。),于是重新设置:
xcode提示:
Failed to enable wireless functionality on the device.
Please check the device connection and ensure that a passcode is set on the device.
根据提示在iOS设备上开启密码。
连接ok后再次尝试使用截图,成功了:
所以在xonsh-afc shell中,一些命令的执行,要依赖前面的连接。
5、afc命令,执行:pymobiledevice3 afc shell,
按照提示,是进入了open an AFC shell rooted at /var/mobile/Media 这是系统的目录,提示符如下,
[com.apple.afc:/]$
进入shell后,可以执行的命令有:ls、pull、push、rm
主要是操作这个目录下的文件。
退出shell使用exit 或者 quit。
6、crash命令:pymobiledevice3 crash,有3个字命令,分别是:clear、flush、ls、pull、shell、sysdiagnose、watch
执行ls可以直接列出系统发现(收集)的crash ips文件,不需要先进入shell模式:
执行pymobiledevice3 crash pull /Users/testmanzhang/Downloads:
执行pymobiledevice3 crash shell,进入如下目录:
[com.apple.crashreportcopymobile:/]$
进入shell后可以单独pull文件:
pull xp_amp_app_usage_dnu-2024-10-14-122244.ips /Users/testmanzhang/Downloads
具体提供的命令参考show-help
执行:pymobiledevice3 crash sysdiagnose /Users/testmanzhang/Downloads/
在手机上按电源键和声音+-后,生成了sysdiagnose_2024.10.14_19-26-48+0800_iPhone-OS_iPhone_20F75.tar.gz文件
打开后是这样,系统的诊断报告:
这个命令跟libimobiledevice的idevicecrashreport类似,
idevicecrashreport -u f89d929e8c45a81c0fe2d2xxxxxxxxxxxxxxxxxf /Users/testmanzhang/Downloads
执行完成后也会导出诊断报告:
这个功能使用idb 的crash命令,总是报错,即使我启动了idb_companion并且连接成功。