題:
閃爍CM11,我得到“ set_metadata遞歸:某些更改失敗”:
Evan Carroll
2014-02-08 09:44:12 UTC
view on stackexchange narkive permalink

當我嘗試將Samsung Galaxy Tab 2(GT-P5113)更新為Cyanogenmod 11時,ClockworkMod Recovery v6.0.2.3出現了以下錯誤:

 重新啟動adbd ...更新包...正在打開更新包...正在安裝更新... set_metadata_recursive:某些更改失敗E:/tmp/update.zip(狀態7)中的錯誤安裝已中止。 

我使用 Team Win Recovery Project(TWRP) v2.6.3.0嘗試了同樣的方法,這也是我的平台最新的版本,

 正在檢查MD5文件。跳過MD5檢查:未找到MD5文件文件set_metadata_recursive:一些更改filedE:錯誤:在zip'/data/media/0/sideload.zip'中執行更新程序二進製文件 
七 答案:
Evan Carroll
2014-02-08 12:13:16 UTC
view on stackexchange narkive permalink

簡而言之,如果要刷新KitKat Android 4.4,則必須升級到大於v6.0.4.5的CWM版本。或者,使用備用引導程序。對於Galaxy Tab 2 GT-P5113或GT-p5110 您可以在此處找到說明

請問有關為什麼會發生這種情況的任何參考或鏈接?
@SopalajodeArrierez我在進一步說明的鏈接上提供了解釋。這是一條錯誤消息(如果您不知如何先嘗試),另一個問題是具有更多詳細信息的教程答案。
Seppo Enarvi
2014-10-12 02:53:24 UTC
view on stackexchange narkive permalink

包含固件更新的zip軟件包始終在 META-INF / com / google / android 中包含兩個文件: updater-script update-binary updater-script 是一個文本文件,其中包含安裝更新所需的命令。 update-binary 將命令轉換為二進制代碼。

在Android 4.4 KitKat中,Google更改了 updater-script 用於設置權限的界面。不建議使用以前使用的 set_perm 方法,並用 set_metadata 代替。這會導致舊版本的自定義恢復軟件無法與Android 4.4軟件包一起使用(例如CyanogenMod 11),並顯示錯誤消息“ set_metadata_recursive:某些更改失敗”。

最好的解決方案是更新自定義恢復軟件。我找不到為我的設備編譯的足夠新的ClockworkMod版本,但是我發現可以使用最新版本的TWRP。

第二個選項是修復 updater-script 通過使用舊語法(即 set_perm set_perm_recursive )替換任何 set_metadata set_metadata_recursive 調用。我還沒有做到這一點,所以我不確定這會多麼容易。

第三種選擇是用XDA成員daniel_hk創建的修補程序替換 update-binary 。 : http://forum.xda-developers.com/showthread.php?t=2532300。我已經做到了,並且工作正常,但是二進製文件是為ARMv7編譯的,在任何其他體系結構中都無法使用。

替換我的** Oppo Find 5 **上的`update-binary`可以同時用於ROM和間隙。謝謝!
確實:將TWRP從2.6.3升級到2.8對我來說是成功的竅門。之後,刷新新ROM時的set_metadata_recursive錯誤消失了。非常感謝您的小費!
yasondinalt
2014-11-11 16:01:17 UTC
view on stackexchange narkive permalink

除了 jmullee的答案外,它是通過比較cm-10.1.3和cm-11 updater-script得出的。替換之後,我成功恢復了恢復5(ICS speedmod內核內置)中的 cm-11-20141110-NIGHTLY-n7000.zip

  set_metadata = > set_permset_metadata_recursive = > set_perm_recursivesed -i“ s | set_metadata(\(\” \“ [^ \”] * \“ \),\” uid \“,\([0-9] * \),\” gid \“, \([0-9] * \),\“ mode \”,\([0-9] * \)。*); | set_perm(\ 2,\ 3,\ 4,\ 1); |“更新程序-腳本 
JoeTheKid
2017-02-05 16:32:27 UTC
view on stackexchange narkive permalink

我解決了以下問題:在文本編輯器中修改\ META-INF \ com \ google \ android \ updater-script文件,並用其舊版本set_param_recursive替換所有set_metadata_recursive(這些功能的簽名相對等效),之後,您必須重新壓縮文件包並簽名文件。要替換並弄清楚該怎麼做:在Google中搜索“用set_param_recursive phyton替換set_metadata_recursive”,有人創建了phyton腳本,但是如果您了解函數簽名,可以手動操作。-然後重新打包並簽名。

jmullee
2014-11-07 01:07:46 UTC
view on stackexchange narkive permalink

我寫了這個搜索/替換模式,將新格式改成舊格式,並且對我有用:

  $ sed -i“ s | set_metadata_recursive(\\(\” [ ^ \“] \ * \” \\),\“ uid \”,\\([0-9] \ * \\),\“ gid \”,\\([0-9] \ * \\ ),\“ dmode \”,\\([0-9] \ * \\),\“ fmode \”,\\([0-9] \ * \\),。*); | set_perm_recursive(\ 2,\ 3,\ 4,\ 5,\ 1); |“ META-INF / com / google / android / updater-script  

最後,Google-play應用兩者均未安裝,所以我咬了咬牙切齒,然後刷新了更新的恢復文件(帶有heimdal的 recovery-clockwork-6.0.4.6-i9300.img ),然後能夠刷新未修改的CM11。在我禁用3G(強制通過WiFi進行IPv4)之前,Play出現了錯誤,似乎有(臨時的)問題通過IPv6連接到Play服務器。

多一點信息將很有用。您是從論壇獲得的嗎?還是你自己寫的?在這兩種情況下,如果沒有一些註釋(尤其是在正則表達式的情況下),“隨機代碼”都無濟於事。
好的,對不起-這只是我寫的搜索/替換模式,將新格式修改為舊格式。最後,谷歌播放應用也不會安裝,因此我咬了一下子彈,並顯示了更新的恢復(recovery-clockwork- 6.0.4.6-i9300.img,帶有heimdal),然後能夠刷新未修改的cm11。此外,google play出現錯誤,直到我禁用了3G(通過wifi強制IPv4),連接時似乎有(臨時?)問題通過IPv6的服務器
Emil George James
2015-06-26 10:03:11 UTC
view on stackexchange narkive permalink

錯誤狀態7是因為您必須將CWM版本升級到大於或等於CWM v 6.0.4.4的版本,才能在三星Galaxy Tab 2 GT-P5113或GT-p5110上安裝kitkat和棒棒糖

可能是正確的,但是您可以用來源支持您的主張嗎?
stan
2016-01-04 03:05:43 UTC
view on stackexchange narkive permalink

請確保您已紮根手機的“開發人員選項”下啟用了“ USB調試”。那對我有用。

開發人員選擇與恢復有什麼關係?當啟動到CWM / TWRP時,它們根本不起作用。尤其不適用於ROM。
它們是完全無關的。
我相信此答案是指“ USB調試”設置,該設置在某些設備/版本上可以在nvram中設置一個標誌,該標誌的確可以從Recovery中讀取。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...