明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

ios8越獄后cydia無法安裝插件處理方法

[摘要]ios8越獄后Cydia無法安裝任何插件,仔細(xì)詢問原來是因?yàn)閯傇姜z完成后在沒有運(yùn)行Cydia搬移系統(tǒng)文件的情況下執(zhí)行了“還原并抹除”導(dǎo)致越獄環(huán)境的APT安裝管...

 

       ios8越獄后Cydia無法安裝任何插件,仔細(xì)詢問原來是因?yàn)閯傇姜z完成后在沒有運(yùn)行Cydia搬移系統(tǒng)文件的情況下執(zhí)行了“還原并抹除”導(dǎo)致越獄環(huán)境的APT安裝管理環(huán)境出現(xiàn)問題導(dǎo)致,按常理其實(shí)重新覆蓋越獄即可,但ios8的設(shè)備在越獄后是不可以再次越獄的,只能使用非常規(guī)的辦法來解決了!

ios8越獄后cydia無法安裝插件解決方法

  設(shè)備處理的關(guān)鍵點(diǎn):有afc2服務(wù),能看到root根目錄

  問題處理的難點(diǎn):首先,設(shè)備沒有安裝OPENSSH服務(wù)導(dǎo)致無法修改直接放入文件的權(quán)限導(dǎo)致直接將缺失的文件放入后無法運(yùn)行,使用Cydia的Autoinstall的方式安裝同樣和在Cydia內(nèi)直接安裝deb因?yàn)閍pt的環(huán)境問題導(dǎo)致無法安裝的情況,想通過iFile來修改文件的權(quán)限卻也沒有安裝iFile,所以幾條路都被堵死,只能另辟蹊徑!

  問題的原因及部分系統(tǒng)原理

  1,文件權(quán)限:

  在AFC2服務(wù)啟動時(shí),第三方資源管理器是可以看到設(shè)備的root根目錄,但是如果是將電腦里地文件“添加”進(jìn)設(shè)備的,此文件默認(rèn)的權(quán)限為:wheel:root-0644,也就是root用戶的wheel組,運(yùn)行的權(quán)限是當(dāng)前用戶可讀寫,組權(quán)限只讀,但是都沒有“執(zhí)行(運(yùn)行)”的權(quán)限,所以直接丟進(jìn)去的可執(zhí)行文件(包括權(quán)限需求高的文件)是無法執(zhí)行和打開的

  但是,afc2add 有一個(gè)特性就是可以“繼承”權(quán)限,也就是說,如果原來設(shè)備里面的文件時(shí)什么權(quán)限,那么你從電腦里面放入相同的文件去覆蓋它時(shí),原有的權(quán)限不變!不一定會是新加的默認(rèn) wheel:root-0644 權(quán)限

  2,ZIP,TAR 壓縮文件的特性,zip 文件是一種壓縮文件的格式,我們在安裝iFile的時(shí)候會附帶安裝處理 zip 的依賴(有些有深度潔癖的人會很不高興認(rèn)為是垃圾,其實(shí)不是開機(jī)調(diào)用常駐內(nèi)存的依賴只是以文件的形式放置于系統(tǒng)內(nèi),在需要它是直接調(diào)用才會打開的);而 tar 壓縮文件的支持在越獄時(shí)就已經(jīng)預(yù)置了的,而且deb的安裝包實(shí)際上用7-zip打開會發(fā)現(xiàn)其實(shí)就是tar文件+包安裝信息,它們有個(gè)共同點(diǎn)就是在iOS系統(tǒng)內(nèi)解壓時(shí)不會改變壓縮時(shí)的原始權(quán)限!

  3,iOS的啟動調(diào)用

  iOS系統(tǒng)在開機(jī)時(shí)通常會調(diào)用 /Library/LaunchDaemons (不常用的 /Library/LaunchAgents);/System/Library/LaunchDaemons (這里一般是放的系統(tǒng)服務(wù));如果安裝了 Cydia Substrate ,那么啟動時(shí)也會通過plist定義和調(diào)用調(diào)用加載 /Library/MobileSubstrate/DynamicLibraries 里面的 dylib 程序

  以上可以看出影響設(shè)備啟動的主要是這3個(gè)目錄,前2(3)者屬于系統(tǒng)級的開機(jī)調(diào)用,而Cydia Substrate 的只有在安裝 Cydia Substrate 的環(huán)境后才能生效,且在開機(jī)時(shí)按住“音量+”鍵可以全部跳過基于它的插件調(diào)用,但是系統(tǒng)級的調(diào)用是無法跳過的!所以開機(jī)白蘋果如果是基于CS環(huán)境的插件問題可以按住“音量+”跳過,但是如果是系統(tǒng)級開機(jī)調(diào)用的程序出現(xiàn)問題卡死的就麻煩了!

  4,Cydia 開機(jī)自動安裝插件以及DEB安裝的常識

  Cydia安裝后,在 /Library/LaunchDaemons 內(nèi)防止了一個(gè)開機(jī)調(diào)用腳本的plist文件:com.saurik.Cydia.Startup.plist,控制了系統(tǒng)在啟動時(shí)會運(yùn)行/bin下的 bash 執(zhí)行程序和 /usr/libexec/cydia 下的 startup (這個(gè)startup實(shí)際上是一個(gè)賦予了可執(zhí)行權(quán)限的 shell 腳本文件)

  內(nèi)容如下:

  #!/bin/bash

  export PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin

  if [[ ! -e /var/lib/cydia/firmware.ver ]]; then

  cache=

  fi

  /usr/libexec/cydia/firmware.sh

  debs=(/var/root/Media/Cydia/AutoInstall/*.deb)

  if [[ ${#debs[@]} -ne 0 && -f ${debs[0]} ]]; then

  dpkg -i "${debs[@]}" 2>/tmp/dpkg.log 1>&2

  rm -f "${debs[@]}"

  cache=

  killall -9 Lowtide AppleTV

  fi

  if [[ ${cache+@} ]]; then

  sbdidlaunch

  su -c uicache mobile

  fi

  iOS8越獄

  debs=(/var/root/Media/Cydia/AutoInstall/*.deb)

  if [[ ${#debs[@]} -ne 0 && -f ${debs[0]} ]]; then

  dpkg -i "${debs[@]}" 2>/tmp/dpkg.log 1>&2

  rm -f "${debs[@]}"

  這段就是指定了在開機(jī)時(shí)檢查 /var/root/Media/Cydia/AutoInstall 目錄下是否有的包文件,如果有救執(zhí)行 dpkg -i 的安裝命令,而deb的安裝則依賴于dpkg的環(huán)境

  5,還原抹除

  iOS的還原并抹除 主要是刪除 /var 目錄下的不是在iOS原生系統(tǒng)白名單以外的全部文件(包括文件夾),

  為什么說越獄后的機(jī)器不要還原抹除的主要原因就是越獄后在第一次運(yùn)行Cydia 時(shí),Cydia為了擴(kuò)大系統(tǒng)區(qū)的可用空間,會將一部分的系統(tǒng)文件搬移到

  /var/stash (其實(shí)在Cydia新版,這個(gè)目錄也是一個(gè)硬鏈接,stash 真正的目錄其實(shí)是在 /private/var/db/stash )那么在抹除時(shí)會將 /private/var/db/stash 文件夾刪除導(dǎo)致系統(tǒng)文件缺失而白蘋果

  但是我今天遇到的和有些人的疑問一樣,那就是我沒有運(yùn)行過Cydia抹除可以吧,其實(shí)也是不行的(至少在沒處理之前是不能直接抹除的),因?yàn)槌跏荚姜z后預(yù)置的基礎(chǔ)性德 apt 的程序包安裝管理會使用 /var/lib 目錄以及此目錄里面的目錄,這個(gè)目錄里面也放置的全部安裝的程序包插件包的安裝卸載信息,且目錄的權(quán)限都具有可執(zhí)行的權(quán)限,如果抹除時(shí)會將此文件夾刪除,在次文件夾刪除后 Cydia 在安裝程序時(shí)會調(diào)用apt來安裝管理下載的deb程序包,此時(shí)因?yàn)闆]有 /var/lib 目錄來存放安裝信息導(dǎo)致安裝失敗,而直接通過利用 afc2 服務(wù)的第三方助手工具創(chuàng)建或?qū)氲哪夸浻謺驗(yàn)闄?quán)限的問題無法寫入信息文件一樣會失敗!

  問題處理的思路

  一般來講如果安裝了OPENSSH服務(wù)且能夠啟動的情況下,基本問題都能夠處理好(可以執(zhí)行終端命令,修改權(quán)限等等),而如果有iFile也可以解決部分問題,但是如果都沒有就非常麻煩了,等于自己把自己的退路斷了!

  今天遇到的就是既沒有openssh服務(wù),也沒有安裝 iFile ;那么該怎么辦呢?其實(shí)我上面寫的原理就是需要利用的原理!

  首先這個(gè)問題主要是修復(fù)越獄預(yù)置的apt環(huán)境,那么就需要越獄程序在越獄時(shí)上傳使用的 Cydia.tar 文件,需要用它將完整的文件解壓恢復(fù)到iOS系統(tǒng)里面

  tar的文件需要解壓的環(huán)境支持不要緊,因?yàn)榛镜膖ar執(zhí)行程序還在,只不過怎樣去讓系統(tǒng)執(zhí)行解壓命令來解壓上傳的tar文件呢?

  那么我們就需要使用 shell 腳本來調(diào)用命令,但是這個(gè)shell腳本怎么去調(diào)用呢?其實(shí)可以利用/Library/LaunchDaemons 等開機(jī)啟動文件夾的plist文件去調(diào)用.

  但是如果是自己直接寫的調(diào)用shell腳本在傳入設(shè)備后會因?yàn)闄?quán)限問題根本無法運(yùn)行,怎么辦?上面說過關(guān)于afc2add服務(wù)的權(quán)限繼承特性!我們可以利用它!

  怎么利用呢?其實(shí)很簡單,上面我就提到過Cydia就會在啟動時(shí)利用/Library/LaunchDaemons 里面的 com.saurik.Cydia.Startup.plist 文件去調(diào)用 /usr/libexec/cydia 目錄下的 startup 這個(gè)shell 腳本,我們可以直接將 startup 文件導(dǎo)出放到本地然后修改這個(gè)腳本,將需要的命令添加進(jìn)去后重新導(dǎo)入覆蓋原來的文件即可保持繼承的權(quán)限從而達(dá)到可以執(zhí)行的目的了!

  處理流程:

  1,找到越獄系統(tǒng)使用的支持本iOS版本的完整 Cydia.tar 壓縮包(在源里面的 Cydia安裝包僅是Cydia,不含完整的越獄環(huán)境目錄結(jié)構(gòu)),因?yàn)榇藟嚎s包為整個(gè)系統(tǒng)目錄結(jié)構(gòu),那么在解壓時(shí)一般就是接觸的根目錄,所以我將 Cydia.tar 使用助手工具將其導(dǎo)入放置到root根目錄備用.

  2,將 /usr/libexec/cydia 目錄下的 startup 文件導(dǎo)出,在備份一個(gè)原始的文件后(不管干什么最好備份一個(gè)以防萬一)使用適合的編輯器修改文件,在

  #!/bin/bash

  export PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin

  下面添加一行命令代碼:

  tar -xvf ./Cydia.tar

  (這個(gè)就是最常用最簡單的一個(gè)解壓的終端命令)

  原文件第一行是shell文件的類型注釋,第二行代碼是環(huán)境定義,所以必須添加到它們下面

  (關(guān)于修改使用的編輯器需要特別注意就是必須要保證編輯和保存后的文件格式編碼不能變,否則亂碼不能執(zhí)行,建議使用UE或者winhex 等)

  3,將修改好的 startup 文件導(dǎo)入原始位置,提示覆蓋時(shí)選擇“是”去覆蓋來保持繼承權(quán)限

  4,重啟設(shè)備

  5,系統(tǒng)重啟后悔自動解壓剛上傳的 Cydia.tar 來重建結(jié)構(gòu),完成后apt環(huán)境即可修復(fù),可以在Cydia里面直接安裝插件了!

  6,將備份的原始 startup 文件導(dǎo)入覆蓋還原(其實(shí)我這次的修復(fù)不用還原,因?yàn)樵诮鈮?Cydia.tar 時(shí)就已經(jīng)還原為標(biāo)準(zhǔn)的文件了,哈哈)

  7,刪除根目錄的已經(jīng)完成光榮使命的 Cydia.tar 壓縮包文件清掃戰(zhàn)場。

  更多地引申意義

  以上是整個(gè)處理過程的原理和流程,其實(shí)這個(gè)方法可以利用來解決很多的問題,比如可以在安裝iFile時(shí)無法安裝依賴時(shí)使用7-zip 將iFile的deb安裝包的data.tar文件提取后按上面的辦法來安裝(只不過如果依賴沒有,那么iFile在處理文件需要調(diào)用依賴程序時(shí)會失敗,如如果沒有安裝依賴的zip,使用iFile解壓zip文件時(shí)肯定會出錯),

  希望大家在看這篇教程時(shí)能夠用腦去看,搞清楚原理,合理利用并更多地引申到其他的問題的處理,這樣就會達(dá)到事半功倍的效果!

 

ios8.3正式版更新升級后無法使用touch id解決辦法

ios8.3正式版刷機(jī)圖文教程 蘋果ios8.3正式版刷機(jī)方法


手機(jī)APP這些安裝在手機(jī)里面豐富多彩的軟件,讓我們的生活更加方便和精彩。游戲、社交、購物、視頻、音樂、學(xué)習(xí)......我們可以隨時(shí)隨地,隨處進(jìn)行。