Intro
雖然“只有偏執狂才能夠生存”這句話已經被假葯停給毀了,但是作為一只有逼格的高大上的iOS逆向分析研究員,難道如果有現成的macOS/iOS全版本鏡像可以下載並且無限“漫游”,難道你就不想來一套么?
在本文中,你將能夠獲得的是:
macOS:
10.12
、10.11
、10.10
、10.9
、10.8
、10.7
:六個版本的虛擬機一鍵安裝;使用蘋果的KDK套件(Kernel Develop Kit)對虛擬機里的
macOS Sierra 10.12
進行內核調試;iPhone 4s
iOS 9.3.5
免shsh降級到iOS 6.1.3
及iOS 8.4.1
;iOS 6、7、8、9、10:全系統越獄;一部4和一部4s,實現iOS 6、7、8、9任意漫游;
六個版本的虛擬機一鍵安裝
Vagrant是一個基於Ruby的工具,用於創建和部署虛擬化開發環境。它使用Oracle的開源VirtualBox
虛擬化系統,使用 Chef創建自動化封裝虛擬環境。我們可以通過 Vagrant 封裝一個Linux/macOS/Windows
的開發環境,分發給團隊成員。成員可以在自己喜歡的桌面系統(Mac/Windows/Linux)上開發程序,代碼卻能統一在封裝好的環境里運行,非常霸氣。
封裝好的虛擬機,可以在Vagrant的虛擬機市場上進行分發,供全世界的開發者進行下載。
我們首先來介紹一下Vagrant的虛擬機市場,然后以安裝macOS Sierra 10.12
為例,闡述虛擬機的一鍵安裝流程。
Vagrant的虛擬機市場
不多說了!放圖吧!
相信讀者也知道是什么意思!點進去相應鏈接之后,就會有相應的虛擬機介紹,以及安裝方法。
怎么樣,很全面吧?筆者已經在這里找到了10.7~10.12的全系虛擬機。
Vagrant和Virtualbox在Win/Linux/macOS全桌面平台都有客戶端的,讀者自行在其主頁下載即可。
“一鍵安裝”macOS Sierra 10.12
首先聲明,我說謊了,不是“一鍵”,而是“兩鍵”。
vagrant init AndrewDryga/vagrant-box-osx
vagrant up
對的,只要這兩句話,就好了。
第一句話運行之后,會在當前目錄下自動生成Vagrant的配置文件vagrantfile
和文件夾.vagrant
。第二句話運行后vagrant就會自動下載安裝AndrewDryga/vagrant-box-osx這個虛擬機了,並且在安裝完成后在后台打開。使用Virtualbox的控制台就可以看到了。
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'AndrewDryga/vagrant-box-osx' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'AndrewDryga/vagrant-box-osx'
default: URL: https://vagrantcloud.com/AndrewDryga/vagrant-box-osx
==> default: Adding box 'AndrewDryga/vagrant-box-osx' (v0.2.1) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/AndrewDryga/boxes/vagrant-box-osx/versions/0.2.1/providers/virtualbox.box
default: Progress: 0% (Rate: 1328k/s, Estimated time remaining: 6:54:31)
...
...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Box file was not detected as metadata. Adding it directly...
==> default: Adding box 'osx-sierra-0.3.1.box' (v0) for provider: virtualbox
default: Unpacking necessary files from: file:///Volumes/3T-B/VM_BOX/macos.sierra.10.12/osx-sierra-0.3.1.box
==> default: Successfully added box 'osx-sierra-0.3.1.box' (v0) for 'virtualbox'!
==> default: Importing base box 'osx-sierra-0.3.1.box'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: macossierra1012_default_1506781540910_5049
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
The private key to connect to this box via SSH has invalid permissions
set on it. The permissions of the private key should be set to 0600, otherwise SSH will
ignore the key. Vagrant tried to do this automatically for you but failed. Please set the
permissions on the following file to 0600 and then try running this command again:
/Volumes/3T-B/VM_BOX/macos.sierra.10.12/.vagrant/machines/default/virtualbox/private_key
Note that this error occurs after Vagrant automatically tries to
do this for you. The likely cause of this error is a lack of filesystem
permissions or even filesystem functionality. For example, if your
Vagrant data is on a USB stick, a common case is that chmod is
not supported. The key will need to be moved to a filesystem that
supports chmod.
使用KDK對macOS Sierra 10.12
進行內核調試
就拿上文剛剛安裝的這個虛擬機來進行內核調試吧!
關機后在“設置”→“網絡”里,將“連接方式”改成“橋接網卡”,后續追蹤IP時比較容易定位。重啟使其生效。
在蘋果的開發者下載中心,下載內核調試套件Kernel Debug Kit,這時候首先要確定自己的系統版本,筆者本機是10.12.6,被調試機器的版本比較重要,因為是它來安裝KDK,調試機只需要有Xcode順帶的lldb即可。虛擬機系統版本為10.12.2,點擊“屏幕左上角黑蘋果”→“關於本機”→“系統報告”→左側下拉選擇“軟件”,右側即會出現當前系統的版本號及編譯號,筆者為16C67,請見下圖。
所以在蘋果的開發者中心,也選擇下載16C67
這個版本,也就是Kernel_Debug_Kit_10.12.2_build_16C67.dmg
,請見下圖。
在KDK包中包含了大量的調試符號和一些內核驅動模塊,可以提供Release、Debug、Development三種模式的連接方式,其中后兩種可以提供完整的調試和開發功能,包含了斷點和錯誤檢查等調試所必須的功能模塊。只有被調試的機器需要安裝KDK包,本節中也就是虛擬機需要安裝,調試機不需要安裝KDK包,調試機中只要有上一章安裝好的Xcode自帶的lldb即可。
我們把下載好的Kernel_Debug_Kit_10.12.2_build_16C67.dmg
用scp
傳輸到虛擬機上,在虛擬機上安裝。
$ scp Kernel_Debug_Kit_10.12.2_build_16C67.dmg vagrant@192.168.8.119:/Users/vagrant/Desktop/
The authenticity of host '192.168.8.119 (192.168.8.119)' can't be established.
ECDSA key fingerprint is SHA256:d3r08Htc*mUg6qtgiCvbd13sXFuYmo*dkFt5J17sx4U.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.8.119' (ECDSA) to the list of known hosts.
Password:
Kernel_Debug_Kit_10.12.2_build_16C67.dmg 100% 69MB 44.0MB/s 00:01
到桌面上雙擊dmg文件,里面是一個pkg安裝包,雙擊進行安裝即可。
安裝完成之后,我們來將虛擬機內的macOS以調試模式來啟動,方法就是設置nvram
的boot-args
參數,來達到切換啟動模式的目標。在這里稍微介紹一下nvram
。
-v: 輸出所有日志
kcsuffix: 通過增加后綴指定啟動內核
pmuflags: 很多文章里提到這個要設置為1,說是用來禁用“watchdog”定時器模塊。然而Apple’s Kernel Programming Guide提到
watchdog
定時器模塊僅僅存在於G5、G4時代的主機上,要么就是OS X Server的某些主機會啟用,這個選項幾乎是沒意義的,當然,設置一下倒也無妨。debug: 這個選項就是用來進行內核調試的關鍵了,其參數標志位及含義已經在Apple docs蘋果文檔里載明,我們主要需要使用到它三個標志位:
DB_LOG_PI_SCRN | DB_ARP | DB_NMI.
一般情況下我們設置nvram
的boot-args
參數只要$ sudo nvram boot-args="-v debug=0x144"
這么一行代碼就好了,哪怕在VMWare虛擬機中,也是同樣的情況。這行代碼是將boot-args
及其參數寫到EFI啟動分區去的,VirtualBox的啟動分區是不允許內部主機接觸的,因此即使執行了這個命令,也不會生效。必須由VirtualBox自己來進行設定。
虛擬機關機之后,我們回到主機上,在主機上運行以下命令:
$ VBoxManage setextradata "macOS_Sierra_10.12.6" "VBoxInternal2/EfiBootArgs" "debug=0x141 kext-dev-mode=1 kcsuffix=development pmuflags=1 -v"
我們來解釋一下這個命令,VBoxManage setextradata
很明顯是增加虛擬機配置,"macOS_Sierra_10.12.6"
是虛擬機的名字,在VirtualBox主界面就能夠看到的名字,"VBoxInternal2/EfiBootArgs"
就是增加EFI的BootArgs配置,debug=0x141 kext-dev-mode=1 kcsuffix=development pmuflags=1 -v
就是我們需要加入的啟動參數了,使虛擬機進入調試模式。
順便介紹另外一個命令:
VBoxManage setextradata "macOS_Sierra_10.12.6" VBoxInternal2/EfiGopMode 4
可以將虛擬機的顯示大小設置為1440×900的分辨率。這里0,1,2,3,4 分別代表了the 640×480, 800×600, 1024×768, 1280×1024, 1440×900的分辨率。
接下來就是把系統原來的內核,更換成我們給它下載的這個內核。類似於把汽車的發動機給完整換一套新的,車還能跑,只不過內核已經換了。要換內核,就要把SIP關閉。因為內核是受SIP保護的。在VirtualBox里關閉SIP有一點麻煩,我們快速過一遍。
虛擬機開機后立刻迅速點按F12
,進入VirtualBox的BIOS,選擇Boot Manager
,再選擇EFI Internal Shell
,進入Shell之后輸入FS2:
,然后回車,再輸入cd com.apple.recovery.boot
,回車,再輸入boot.efi
,然后回車,請見下圖。
這樣就進入macOS恢復系統了,進入恢復系統之后,在實用工具
里打開終端
,輸入csrutil disable
,禁用SIP,來禁用SIP。趁着在恢復系統這樣的特權模式下,我們把剩下的該做的了也做了吧。
替換內核:
$ cp -rf /Volumes/vagrant-box-osx/Library/Developer/KDKs/KDK_10.12.2_16C67.kdk/System/ /Volumes/vagrant-box-osx/System/
然后清除一下原先的系統緩存。
$ kextcache -invalidate /Volumes/vagrant-box-osx/
kextcache -invalidate /
/ locked; waiting for lock.
Lock acquired; proceeding.
kextcache -arch x86_64 -local-root -all-loaded -kernel /System/Library/Kernels/kernel -prelinked-kernel /System/Library/PrelinkedKernels/prelinkedkernel -volume-root / /System/Library/Extensions /Library/Extensions
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext IOUSBHostFamily.kext
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext IOUSBFamily.kext
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext IOSerialFamily.kext
...
...
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext IONetworkingFamily.kext
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext IOHIDFamily.kext
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext IOFireWireSBP2.kext
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext IOFireWireFamily.kext
kext-dev-mode allowing invalid signature -67054 0xFFFFFFFFFFFEFA12 for kext IOATAFamily.kext
kext-dev-mode allowing invalid signature -67013 0xFFFFFFFFFFFEFA3B for kext AppleMobileDevice.kext
KernelCache ID: 20FF78CD8E2177B1E0E6686E0ACDC97A
symlink("/System/Library/PrelinkedKernels/prelinkedkernel.development", "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache.development") failed 17 (File exists) <createPrelinkedKernel 2795>
最后重啟,運行reboot
命令,可能會等一會兒(大概三五分鍾),因為磁盤還沒有准備完成。重啟之后,系統則開始獲得IP,進入等待連接狀態,如下圖所示。。
VirtualBox有個不好的地方,就是EFI啟動引導中允許自定義的參數只有bootargs
這一項,而使用csrutil工具來關閉SIP的時候,需要設置csr-active-config
參數,也就是說,每次關機后,SIP就又回來了。不過並不影響調試,每次開機按F12,進恢復模式,然后重復以下三個步驟就可以了。
-
kextcache -invalidate /Volumes/vagrant-box-osx/
:清除內核緩存 -
csrutil disable
:關閉SIP -
reboot
:重啟
重啟后就又進去“嶄新”的調試模式了。
我們在調試機器上,使用lldb連上去:
$ lldb
Voltron loaded.
(lldb) kdp-remote 192.168.8.119
Version: Darwin Kernel Version 16.3.0: Thu Nov 17 20:23:59 PST 2016; root:xnu-3789.31.2~1/DEVELOPMENT_X86_64; UUID=B41FA753-B6B0-3310-8CF5-7568DDABDA5D; stext=0xffffff8016e00000
Kernel UUID: B41FA753-B6B0-3310-8CF5-7568DDABDA5D
Load Address: 0xffffff8016e00000
WARNING: Unable to locate kernel binary on the debugger system.
Process 1 stopped
* thread #1, stop reason = signal SIGSTOP
frame #0: 0xffffff8017008a94
-> 0xffffff8017008a94: movl $0x0, 0x871b26(%rip)
0xffffff8017008a9e: addq $0x8, %rsp
0xffffff8017008aa2: popq %rbx
0xffffff8017008aa3: popq %r14
(lldb)
連接成功。被調試機器上顯示Connected to remote server
。
現在就可以開始調試內核了。
iPhone 4s免shsh降級三系統漫游
iPhone 4s的最新版系統是iOS 9.3.5
,也就是說不管怎么折騰,都不用擔心側漏了。但是!(敲黑板!)(重點在這里!)蘋果為iPhone 4s
還保留着iOS 8.4.1
和iOS 6.1.3
的簽名,這是官方為版本太舊的機型升到新版本時准備的階梯版本,比如現在還在iOS 5
的用戶,他會收到升級到iOS 6.1.3
的通知,然后下一步就是升到iOS 8.4.1
,最后才是升級到iOS 9.3.5
。所以,現在我們就可以利用這個機制,完成iOS 9、6、8
三個版本的漫游!。首先使用下面的tsschecker
命令來保存這兩個版本的shsh2,萬一某一天失效了呢?
$ ./tsschecker_macos -d iPhone4,1 -e 4B5E0EC3CB -i 6.1.3 -o -s
$ ./tsschecker_macos -d iPhone4,1 -e 4B5E0EC3CB -i 8.4.1 -o -s
tsschecker
從其官方Github網站上進行下載,4s連接到主機之后,就可以運行上述命令了。
還有就是,想要從9.3.5直接降到舊的版本是不可能的,如果嘗試在iTunes里直接恢復iOS 6.1.3
的固件,會出現以下提示:
“無法為這個鏡像授權”。另外再提一句,在iTunes里進行鏡像恢復的方法,win系統在iTunes里按住shift點恢復,選擇你下好的ipws文件;Mac系統在itunes里按住option點恢復,選擇你下好的ipws文件;當然還是那句話,需要蘋果驗證服務器的支持。
所以現在我們就來做一點蘋果服務器不支持的事情,比如任意版本恢復到iOS 6.1.3
。
首先在手機上進行iBBS的破解。
將iPhone 4s越獄之后,在Cydia里添加tihmstar
的源,地址是:repo.tihmstar.net
,在源里安裝kDFUApp
,點擊該App打開。然后從上至下依次勾選上屏幕上的四個選項,注意勾選完第二個選項之后,要等一會兒,等它下載完iBBS之后,才可以繼續勾選第三和第四個選項。等ready to enter kDFU mode
出現之后,將手機連接到電腦,點擊enter kDFU
就可以進入DFU模式啦。
DFU模式是比恢復模式處於更加純凈和早期階段的模式,這時候屏幕是黑色的,iTune會顯示檢測到處於恢復模式的iPhone。
准備好shsh2和ipsw鏡像,安裝futurerestore
shsh2可以用上文的命令來獲取,ipsw鏡像我們還是從ipse.me來獲取,futurerestore可以從官方下載鏈接下載最新的版本。
進行恢復
下載后解壓,為futurerestore_macos
二進制包增加可執行權限之后,直接運行即可查看其選項。
$ chmod *x futurerestore_macos
$ ./futurerestore_macos
Version: b99eb8140d8e6c23f34e950102bb79e61c72384d - 152
Libipatcher Version: f32e41d850f51448bd6c588ead9c7d6455733f3c - 44
Odysseus Support: yes
Usage: futurerestore [OPTIONS] IPSW
Allows restoring nonmatching iOS/Sep/Baseband
-t, --apticket PATH Apticket used for restoring
-b, --baseband PATH Baseband to be flashed
-p, --baseband-manifest PATH Buildmanifest for requesting baseband ticket
-s, --sep PATH Sep to be flashed
-m, --sep-manifest PATH Buildmanifest for requesting sep ticket
-w, --wait keep rebooting until nonce matches APTicket
-u, --update update instead of erase install
--latest-sep use latest signed sep instead of manually specifying one(may cause bad restore)
--latest-baseband use latest signed baseband instead of manually specifying one(may cause bad restore)
--use-pwndfu use this for restoring devices with odysseus method. Device needs to be in kDFU mode already
--just-boot="-v" use this to tethered boot the device from kDFU mode. You can optionally set bootargs
--no-baseband skip checks and don't flash baseband.
WARNING: only use this for device without baseband (eg iPod or some wifi only iPads)
選擇我們需要的--latest baseband
和--use-pwndfu
之后,輸入-t
來指定上文保存好的shsh2,然后就是輸入下載好的ipsw
鏡像的路徑即可。
$ ./futurerestore_macos --latest-baseband --use-pwndfu -t /Users/roysue/Downloads/tsschecker-latest/4B5E0EC3CB_iPhone4s_A1431/323700573131_iPhone4,1_6.1.3-10B329_2e0356a7d9ffd962ebc433f58ce944aa61aea88c.shsh2 /Users/roysue/Downloads/iPhone4,1_6.1.3_10B329_Restore.ipsw
回車之后即會出現一大堆命令行,注意會出現WARNING和ERRNO等,但是並不影響刷機的過程。
這時候futurerestore
會實施shsh2文件的重放(replay attack),模擬本地與服務器的交互流程,讓本地“以為”得到了蘋果服務器的官方驗證,這就是通過重放shsh2來實施的。然后剩下的恢復ipsw
鏡像的流程,就是普通的恢復流程了。
大概二十分鍾左右,手機就恢復好了,進入iOS 6.1.3
系統,經測試,可以正常激活使用,與原生沒有任何區別。使用p0sixspwn進行越獄后,又可以重復上面的流程,刷入任何保存了shsh2的系統了。
另外,在iOS 6.1.3
上進行系統更新時,收到的OTA更新包是iOS 8.4.1
,這也驗證了上文的說法。請見下圖。
當然,iOS 6.1.3
和iOS 8.4.1
都是可以完美越獄的,所以,讀者有了iPhone 4s,就等於擁有了三個可以越獄的系統,用來學習是完全足夠了。
futurerestore並不是對於所有機型的所有情況都適用,比如說上文針對的就是32位的可越獄機型、並且保存了shsh2的情況才適用。適用降級的型號和情況還是比較復雜的,讀者可以閱讀項目官網獲得詳細的介紹。
但是目前,也就是在我們目前的情況下,實現iOS 9、6、8
三系統漫游,是毫無壓力的。
iOS全版本越獄;一部4和一部4s,實現iOS 6、7、8、9
任意漫游
iOS 6、7的越獄就不說了,網上資料多如牛毛;
iPhone 4的最新系統是iOS 7.1.2
,可以用盤古越獄進行完美越獄。
另外,iPhone 4的Bootroom是可以破解的,可以進行內核調試,具體可以參考這篇文章1、這篇文章2和這篇文章3。
iOS 10、9、8
越獄都是最近放出的(一年之內),現在介紹其流程
iOS 10
的yalu越獄、iOS 9
的Phoenix和iOS 8
的EtasonJB,這三款越獄的共同點,就是都沒能找到代碼簽名(code sign)的漏洞,只能使用Cydia Impactor
手動簽名后信任證書進行安裝。另外就是yalu越獄只針對64位設備,另外兩款則只針對32位設備。
現在以典型的Phoenix
越獄為例,介紹其流程:
為什么一遍又一遍地說iPhone 4s呢,因為首先4s的最新版本iOS 9.3.5越獄是最新的,17年8月份才剛剛放出來;其次,iOS 9.3.5是4s支持的最后一個版本,4s與iOS 10無緣;也就是說,不管手上的4s怎么折騰,系統如何損壞,它總能升級到iOS 9.3.5這個可以越獄的版本,免去讀者的后顧之憂。
而且32位系統更加適合入門,比64位系統對新手友好很多。
有關iPhone 4s的iOS 9.3.5版本越獄,江湖上還有一段軼事,樹人哥(twitter@i0n1c)也一直要出這一版越獄,還搞了一出kickstarter眾籌這個版本的越獄,目標金額高達111,111歐元,折合人民幣接近百萬了。然而不到半個月,越獄就被Siguza和tihmstar免費放出來了,被啪啪啪打臉。
網站上已經寫明了完整的越獄流程,請見下圖。
同時聲明,可能會失敗多次,多試幾次就好。這版越獄也並不是完美越獄(Semi-untethered),完全關機重啟后,需要重新越獄才能回到越獄狀態。跟盤古的越獄一樣的。這種方式其實有利有弊,對筆者來說其實利大於弊,可以在越獄與正版之間隨意切換,非常方便做研究。
按照官網指示,先下載用來越獄的IPA文件,再下載Impactor,選擇Mac OS X平台,然后安裝。首先驗證下載的IPA是不是原封正版:
$shasum -a 256 Phoenix3.ipa
616ef9da4796ae7d490fb7b0e31cd85bb48e2732d2436c7710e79716e2b80e61 Phoenix3.ipa
結果正確,與官網提供的摘要相同。
Impactor的安裝過程不再詳述,與一般APP無異。接下來將iPhone 4s連接到Mac,如果是虛擬機還需要將USB映射到虛擬機的USB里面,黑蘋果則不用。USB連接成功后打開Impactor,該款應用會直接顯示連接到的iPhone的ID,如下圖所示。
接下來調整好Finder窗口,將剛剛下載的IPA文件,鼠標單擊后拖拽到Impactor的界面上去,松開。然后會被要求輸入你的Apple ID和密碼,ID則是普通的郵箱地址ID;密碼不是普通密碼,而是專門用來為App進行簽名的APP-SPECIFIC PASSWORDS,在AppleID頁面的Security欄目下生成和獲取,一般為zkxt-svre-beay-edzm形式一串字符串。輸入無誤之后Impactor開始工作,如果不出意外,Impactor總會有各種問題。比如下圖3.1.2c的這個lockdown問題,筆者就是通過重新拔插手機,在手機上重新點擊“信任電腦”,在電腦上重新點擊“允許訪問手機信息”來解決的。
下圖3.1.2d則是另外一個問題,顯示是權限問題,我的AppleID沒有Network Extensions的權限,因此無法簽名。其實根本不是這樣,在我重啟和拔插了數遍之后,可以正常簽名。
然后就安裝成功了。
接下來在設置→通用→設備管理→開發商應用,選擇信任剛剛用來簽名的證書。
然后就可以打開這款App了。點擊Prepare For Jailbreak,然后Accept,然后Begin Installation,然后Use Provided Offsets,iPhone 4s的偏移已經包括在里面了,所以直接用內置的就好。
事實證明該款越獄並不是很穩定,筆者重啟了大概兩次,才越獄成功,Cydia最終出現在桌面上。
另外提醒大家,一旦關機或者重啟之后,要重新越獄噢。
另外,大家可以查看本書的4.1章節,只要是4s都可以降級到iOS 6.1.3
和iOS 8.4.1
這兩個系統,然而這兩個系統都是可以完美越獄的,所以只要擁有了4s,就擁有了三個系統,對於學習和研究是足夠了。
iPhone 5s iOS 10.2的越獄流程
本次用來實驗的機型是A1530 iPhone 5s,系統版本為iOS 10.2(14C92)。
首先下載已經編譯好的IPA,因為這種方法是最簡單的。
$ git clone https://github.com/GeoSn0w/Yalu-Jailbreak-iOS-10.2.git
iPhone連接到Mac上,打開Yalu-Jailbreak-iOS-10.2/IPA Build
文件夾,將其中ipa文件跟上一章拖到Cydia Impactor
上,放開之后輸入賬號,和App密碼,流程與上文一樣。
在手機上信任開發者之后,即可打開App了。
這款App在Luca的原裝Yalu基礎上做了增強,增加了開啟Mobile Substrate
按鈕,並且重新設計了界面UI,寓意蘋果專治的統治。
點擊Jailbreak Now
即可開始越獄!一般情況下,一兩次之內可以越獄成功,重啟之后Cydia就會出現在桌面上。
總結
要說總結,其實也沒啥好總結的,內容都在上面了…那就提前祝大家新年快樂吧!