CM 11をフラッシュすると、「set_metadata_recursive:いくつかの変更が失敗しました」というメッセージが表示されます。


19

ClockworkMod Recovery v6.0.2.3では、Samsung Galaxy Tab 2(GT-P5113)をCyanogenmod 11に更新しようとすると、次のエラーが表示されます。

Restarting adbd...
Finding update package...
Opening update package...
Installing update...
set_metadata_recursive: some changes failed
E:Error in /tmp/update.zip
(status 7)
Installation aborted.

必死になって、Team Win Recovery Project(TWRP) v2.6.3.0でも同じことを試みました。これは私のplatofrmの最新版でもあり、

Checking for MD5 file...
Skipping MD5 check: no MD5 file file found.
set_metadata_recursive: some changes filed
E:Error: executing updater binary in zip '/data/media/0/sideload.zip'

回答:


16

つまり、KitKat Android 4.4をフラッシュする場合は、v6.0.4.5以降のバージョンのCWMにアップグレードする必要があります。または、代替ブートローダーを使用します。Galaxy Tab 2 GT-P5113またはGT-p5110については、こちらの手順をご覧ください


なぜこれが起こるのかについての参照やリンクはありますか?
ソパラホデアリエレス14

@SopalajodeArrierez詳細な説明へのリンクの説明を提供しました。これはエラーメッセージです(知らずに最初に試してみた場合)。他の質問は、詳細を含むチュートリアル回答です。
エヴァンキャロル

6

ファームウェアのアップデートが含まれているzipパッケージは、常に2つのファイルが含まMETA-INF/com/google/androidupdater-scriptupdate-binaryupdater-script更新プログラムのインストールに必要なコマンドを含むテキストファイルです。update-binaryコマンドをバイナリコードに変換します。

Android 4.4 KitKatでは、updater-script許可のセットアップに使用するインターフェースが変更されました。以前使用されていたset_permメソッドは廃止され、に置き換えられましたset_metadata。これにより、Android 4.4パッケージ(CyanogenMod 11など)で古いバージョンのカスタムリカバリソフトウェアが失敗し、「set_metadata_recursive:一部の変更が失敗しました」というエラーメッセージが表示されます。

最善の解決策は、カスタムリカバリソフトウェアを更新することです。デバイス用にコンパイルされたClockworkModの新しいバージョンが見つかりませんでしたが、動作するTWRPの最新バージョンが見つかりました。

2番目のオプションは、とを古い構文、つまりおよびにupdater-script置き換えて修正することです。私はこれをやったことがないので、これがどれほど簡単かわかりません。set_metadataset_metadata_recursiveset_permset_perm_recursive

第三の選択肢は、交換することですupdate-binary:XDAメンバーdaniel_hkによって作成されたパッチを適用しものと http://forum.xda-developers.com/showthread.php?t=2532300 。私はこれをやったがうまく動いたが、バイナリはARMv7用にコンパイルされており、他のアーキテクチャでは動作しない。


交換するupdate-binary私に働いていた親しい同僚5を探す ROMとgappsの両方のために。ありがとう!
Qwerty 14年

1

jmulleeの回答に加えて、cm-10.1.3とcm-11 updater-scriptの比較によって作成されました。この交換後cm-11-20141110-NIGHTLY-n7000.zip、リカバリー5(ICS speedmodカーネルに組み込まれています)で正常にフラッシュしました。

set_metadata => set_perm
set_metadata_recursive => set_perm_recursive

sed -i "s|set_metadata(\(\"[^\"]*\"\), \"uid\", \([0-9]*\), \"gid\", \([0-9]*\), \"mode\", \([0-9]*\).*);|set_perm(\2, \3, \4, \1);|" updater-script

0

テキストエディターで\ META-INF \ com \ google \ android \ updater-scriptファイルを変更し、すべてのset_metadata_recursiveを古いバージョンのset_param_recursive(関数のシグネチャは比較的同等)に置き換えた後、パックを再圧縮してファイルに署名する必要があります。置き換えて、それを行う方法を理解するために:グーグルで検索して「set_metadata_recursiveをset_param_recursive phytonで置き換えてください」誰かがphytonスクリプトを作成しましたが、関数シグネチャを理解していれば手動で行うことができます。-次に、zipを再梱包して署名します。


-1

新しいフォーマットを古いフォーマットに変更するこの検索/置換パターンを作成しました。

$ 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アプリもインストールされないので、私は弾丸を噛み、更新されたリカバリ(recovery-clockwork-6.0.4.6-i9300.imgheimdalを使用)をフラッシュし、変更されていないCM11をフラッシュできました。ちなみに、3Gを無効にする(WiFi経由でIPv4を強制する)までGoogle Playにエラーがありましたが、IPv6経由でPlayサーバーに接続する(一時的な)問題があったようです。


3
もう少し情報が役立ちます。これはフォーラムから入手しましたか?それとも自分で書いたのですか?どちらの場合でも、random piece of codeコメントなしではあまり役に立ちません(特に正規表現の場合)。
スティーブンシュラウガー14年

申し訳ありませんが、新しいフォーマットを古いフォーマットに変更するのは、私が書いた検索/置換パターンです。最終的にはgoogle-playアプリもインストールされないので、弾丸を噛んで更新されたリカバリ(recovery-clockwork-6.0.4.6-i9300.img、heimdalを使用)をフラッシュし、変更されていないcm11をフラッシュできました。ところで、Google Playで3Gを無効にする(wifiでIPv4を強制する)までエラーが発生していましたが、IPv6経由でプレイサーバーに接続する(一時的な)問題があるようです
jmullee

-1

エラーステータス7は、Samsung Galaxy Tab 2 GT-P5113またはGT-p5110にキットカットとロリポップをインストールするために、CWMバージョン6.0.4.4以上にCWMバージョンをアップグレードする必要があるためです。


1
それは本当かもしれませんが、ソースで主張を支持できますか?
消防士

-2

ルート化された電話の[開発者向けオプション]で[USBデバッグ]を有効にしてください。それは私のために働いた。


開発者向けオプションはリカバリと何の関係がありますか?CWM / TWRPを起動すると、これらはまったく機能しません。特にROMのフラッシュには適していません。
イジー

それらは完全に無関係です。
SarpSTA

この答えは、「USBデバッグ」設定に関するものであると考えています。一部のデバイス/バージョンでは、nvramでRecoveryから実際に読み取り可能なフラグを設定できます。
マシュー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.