使用qemu啟動iphone核心

2021-09-24 19:40:53 字數 2372 閱讀 2008

2

3 ipsw是ios的韌體其中的檔案多以img3/img4格式加密的

需要對應的fw key做解密

目前只能處理img3格式

新版硬體只能通過ota包中提取檔案

git clone .git

cd xnu-qemu-arm64

./configure --target-list=aarch64-softmmu --disable-capstone

make -j16

如果編譯qemu時出現缺少pkg-config**

➜ xnu-qemu-arm64 git:(master) ✗ ./configure --target-list=aarch64-softmmu --disable-capstone

直接 brew install pkg-config即可

cd 到 iemu_prep_test3這個目錄使用編譯好的qemu(在~/desktop/macos/xnu-qemu-arm64/aarch64-softmmu/qemu-system-aarch64目錄) 開始啟動xun核心的iphone

/users/test/desktop/macos/xnu-qemu-arm64/aarch64-softmmu/qemu-system-aarch64   -m iphone6splus-n66-s8000,kernel-filename=kernel.fout,dtb-filename=device_tree.fout,secmon-filename=secure_monitor.fout,ramdisk-filename=boot_image.fout,tc-filename=static_tc.fout,kern-cmd-args=

"debug=0x8 kextlog=0xfff cpus=1 rd=md0 serial=2" -cpu max -m 6g -serial mon:stdio

最後成功起來了乙個bash:

/iosbinpack64/usr/bin/uname -a
問題一:新版mac上的clang編譯缺少標頭檔案fatal error: 『stdio.h』 file not found

#import

^在編譯的過程中會提示 not found。我是macos 10.14.5 (18f132)

於是就去網上搜,得知 mac 下 stdio.h 標頭檔案應該位於 /usr/include。搞笑的是,include 資料夾消失了!去網上搜,發現很多人都遇到這個問題,估計是 xcode 公升級帶來的 bug

同時也給了修補方案

安裝完成後我們發現/usr/include裡的標頭檔案已經出現了:

疑惑:這個xcode目錄下也有會標頭檔案,沒有關閉rootless 我們無法拷貝檔案和鏈結系統目錄

而剛才那個pkg檔案做到了移動檔案到/usr目錄,好奇是怎麼做到的?

第二個問題:編譯配置qemu時出現缺少pkg-config

➜  xnu-qemu-arm64 git:(master) ✗ ./configure --target-list=aarch64-softmmu --disable-capstone
直接 brew install pkg-config即可

第三個問題,在xun啟動的最後一步出現了這個:

參考:

以Qemu模擬Linux,學習Linux核心

維護日誌 2013 02 21 建立文件 注 文章參考自 是對該篇文章的一些補充和說明。文章內所使用的環境是ubuntu 12.04,如果其中遇到編譯問題,請自行參考錯誤說明,配置依賴環境 0.準備 我們所有的工作都在指定目錄下工作,使用以下變數來代替相關目錄。kernel 核心工作目錄 linux...

在qemu環境中用gdb除錯Linux核心

對使用者態程序,利用gdb除錯 是很方便的手段。而對於核心態的問題,可以利用crash等工具基於coredump檔案進行除錯。其實我們也可以利用一些手段對linux核心 進行gdb除錯,qemu就是一種。qemu是一款完全軟體模擬 binary translation 的虛擬化軟體,在虛擬化的實現中...

qemu簡單使用

qemu img create abytec.img 16m qemu system i386 使用 i386 命令啟動 qemu。qemu 可以 幾種不同的系統,但是要引導到 dos,我們需要有乙個 intel 相容的 cpu。m 16 定義乙個 16mb 記憶體的虛擬機器。它看起來很小,但是 d...