日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 蘋果教程教程 > 詳細頁面

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

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

更新時間:2022-05-07 文章作者:未知 信息來源:網絡 閱讀次數:

隨著科技的發展,手機在我們的生活中扮演了很重要的角色,手機在便利我們生活的同時,也會對我們造成很重要的影響.手機已經成為了我們的必需品,不僅是通訊工具,而且很大程度上都是娛樂功能。 手機人人愛,人人離不了啦.那么使用手機時,還要細心學習一些小知識!我們能夠更好的使用手機。

 

       ios8越獄后Cydia無法安裝任何插件,仔細詢問原來是因為剛越獄完成后在沒有運行Cydia搬移系統文件的情況下執行了“還原并抹除”導致越獄環境的APT安裝管理環境出現問題導致,按常理其實重新覆蓋越獄即可,但ios8的設備在越獄后是不可以再次越獄的,只能使用非常規的辦法來解決了!

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

  設備處理的關鍵點:有afc2服務,能看到root根目錄

  問題處理的難點:首先,設備沒有安裝OPENSSH服務導致無法修改直接放入文件的權限導致直接將缺失的文件放入后無法運行,使用Cydia的Autoinstall的方式安裝同樣和在Cydia內直接安裝deb因為apt的環境問題導致無法安裝的情況,想通過iFile來修改文件的權限卻也沒有安裝iFile,所以幾條路都被堵死,只能另辟蹊徑!

  問題的原因及部分系統原理

  1,文件權限:

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

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

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

  3,iOS的啟動調用

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

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

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

  Cydia安裝后,在 /Library/LaunchDaemons 內防止了一個開機調用腳本的plist文件:com.saurik.Cydia.Startup.plist,控制了系統在啟動時會運行/bin下的 bash 執行程序和 /usr/libexec/cydia 下的 startup (這個startup實際上是一個賦予了可執行權限的 shell 腳本文件)

  內容如下:

  #!/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[@]}"

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

  5,還原抹除

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

  為什么說越獄后的機器不要還原抹除的主要原因就是越獄后在第一次運行Cydia 時,Cydia為了擴大系統區的可用空間,會將一部分的系統文件搬移到

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

  但是我今天遇到的和有些人的疑問一樣,那就是我沒有運行過Cydia抹除可以吧,其實也是不行的(至少在沒處理之前是不能直接抹除的),因為初始越獄后預置的基礎性德 apt 的程序包安裝管理會使用 /var/lib 目錄以及此目錄里面的目錄,這個目錄里面也放置的全部安裝的程序包插件包的安裝卸載信息,且目錄的權限都具有可執行的權限,如果抹除時會將此文件夾刪除,在次文件夾刪除后 Cydia 在安裝程序時會調用apt來安裝管理下載的deb程序包,此時因為沒有 /var/lib 目錄來存放安裝信息導致安裝失敗,而直接通過利用 afc2 服務的第三方助手工具創建或導入的目錄又會因為權限的問題無法寫入信息文件一樣會失敗!

  問題處理的思路

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

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

  首先這個問題主要是修復越獄預置的apt環境,那么就需要越獄程序在越獄時上傳使用的 Cydia.tar 文件,需要用它將完整的文件解壓恢復到iOS系統里面

  tar的文件需要解壓的環境支持不要緊,因為基本的tar執行程序還在,只不過怎樣去讓系統執行解壓命令來解壓上傳的tar文件呢?

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

  但是如果是自己直接寫的調用shell腳本在傳入設備后會因為權限問題根本無法運行,怎么辦?上面說過關于afc2add服務的權限繼承特性!我們可以利用它!

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

  處理流程:

  1,找到越獄系統使用的支持本iOS版本的完整 Cydia.tar 壓縮包(在源里面的 Cydia安裝包僅是Cydia,不含完整的越獄環境目錄結構),因為此壓縮包為整個系統目錄結構,那么在解壓時一般就是接觸的根目錄,所以我將 Cydia.tar 使用助手工具將其導入放置到root根目錄備用.

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

  #!/bin/bash

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

  下面添加一行命令代碼:

  tar -xvf ./Cydia.tar

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

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

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

  3,將修改好的 startup 文件導入原始位置,提示覆蓋時選擇“是”去覆蓋來保持繼承權限

  4,重啟設備

  5,系統重啟后悔自動解壓剛上傳的 Cydia.tar 來重建結構,完成后apt環境即可修復,可以在Cydia里面直接安裝插件了!

  6,將備份的原始 startup 文件導入覆蓋還原(其實我這次的修復不用還原,因為在解壓 Cydia.tar 時就已經還原為標準的文件了,哈哈)

  7,刪除根目錄的已經完成光榮使命的 Cydia.tar 壓縮包文件清掃戰場。

  更多地引申意義

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

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

 

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

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


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

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 精品国产欧美一区二区 | 啪啪国产视频 | 青草青青在线 | 九九久久久 | 国产精品成人扳一级aa毛片 | 亚洲欧美日韩一区高清中文字幕 | 亚洲激情小视频 | 亚洲国产天堂在线观看 | 成年午夜视频 | 亚洲国产成人精品一区二区三区 | 亚洲干综合 | 中文字幕有码在线播放 | 综合伊人久久在一二三区 | 日韩三级观看 | 日本高清www免费视频 | 亚洲欧美国产精品第1页 | 中文偷拍视频在线观看 | 97色老99久久九九爱精品 | 欧美激情综合亚洲一二区 | avhd101av高清迷片在线 | 国产一区亚洲欧美成人 | 国产精品久久久久久亚洲伦理 | 国产午夜不卡 | 日本丰满大乳乳乳 | 欧美国产成人一区二区三区 | 久久99精品久久久久久黑人 | 亚洲午夜免费视频 | 亚洲大片在线观看 | 人人爰人人人人人鲁 | 欧美日韩性视频一区二区三区 | 日韩一级片在线免费观看 | gogo专业国模私拍大尺度 | 日本h片a毛片在线播放 | 91精品国产三级在线观看 | 手机看片福利久久 | 国产精品999在线 | 欧美日韩在线第一页 | 国产不卡视频 | 久久久网 | 日本一级毛片片在线播放 | 欧美曰逼|