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 과 같은 것을 시도했습니다 .

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의 경우 여기에서 지침을 찾을 수 있습니다 .


왜 이런 일이 발생하는지에 대한 언급이나 링크가 있습니까?
Sopalajo de Arrierez

@SopalajodeArrierez 추가 지침에 대한 링크에 대한 설명을 제공했습니다. 이것은 오류 메시지입니다 (알지 않고 먼저 시도하는 경우). 다른 질문은 자세한 내용이 포함 된 자습서 답변입니다.
Evan Carroll

6

펌웨어 업데이트가 포함 된 압축 패키지는 항상 두 개의 파일을 포함합니다 META-INF/com/google/android: updater-scriptupdate-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-scriptany set_metadataset_metadata_recursivecall을 이전 구문 (예 : set_perm및) 으로 바꿔서 수정하는 것 set_perm_recursive입니다. 나는 이것을하지 않았으므로 이것이 얼마나 쉬운 지 잘 모르겠습니다.

세 번째 옵션은을 대체하는 것입니다 update-binary: XDA 회원 daniel_hk에 의해 생성 된 패치 하나 http://forum.xda-developers.com/showthread.php?t=2532300 . 나는 이것을했고 잘 작동했지만 바이너리는 ARMv7 용으로 컴파일되었으며 다른 아키텍처에서는 작동하지 않습니다.


ROM과 갭 모두 update-binary에 대한 내 Oppo Find 5 에서 작업 한 내용 바꾸기. 감사!
Qwerty

1

jmullee의 답변 외에도 cm-10.1.3과 cm-11 업데이트 프로그램 스크립트를 비교하여 만들었습니다. 이 교체 후 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으로 대체하십시오"에서 검색 누군가가 피톤 스크립트를 만들었지 만 함수 서명을 이해하면 수동으로 할 수 있습니다. -지퍼를 다시 포장하고 서명하십시오.


-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.img을 물고 업데이트 된 복구 ( heimdal 포함)를 플래시 한 다음 수정되지 않은 CM11을 플래시 할 수있었습니다. 게다가, 3G (WiFi를 통한 IPv4 강제)를 비활성화 할 때까지 Google Play에 오류가 있었지만 IPv6를 통해 Play 서버에 연결하는 데 (일시적인) 문제가있는 것 같습니다.


3
조금 더 많은 정보가 유용 할 것입니다. 이것을 포럼에서 얻었습니까? 아니면 직접 작성 했습니까? 두 경우 random piece of code모두 주석이 없으면 도움이되지 않습니다 (특히 정규 표현식의 경우).
Stephen Schrauger

알았어 미안-내가 찾은 검색 / 바꾸기 패턴으로 새로운 형식을 이전 형식으로 변경합니다. 결국 구글 플레이 앱도 설치되지 않았으므로 총알을 물고 업데이트 된 복구 (heimdal과 함께 복구-clockwork-6.0.4.6-i9300.img)를 플래시 한 다음 수정되지 않은 cm11을 플래시 할 수있었습니다. 나는 장애인의 3G (무선 랜을 통해 IPv4를 강요), 그것은 것까지를 제외하고, 구글 플레이가 있었다 오류를 가지고 문제가 IPv6를 통해 서버를 재생 연결 (임시?)
jmullee

-1

오류 상태 7은 Samsung Galaxy Tab 2 GT-P5113 또는 GT-p5110에 kitkat 및 롤리팝을 설치하려면 CWM 버전을 CWM 버전 6.0.4.4 이상으로 업그레이드해야하기 때문입니다.


1
사실 일 수도 있지만, 귀하의 주장을 출처로 뒷받침 할 수 있습니까?
Firelord

-2

루팅 된 휴대 전화의 "개발자 옵션"에서 "USB 디버깅"을 활성화하십시오. 그것은 나를 위해 일했다.


개발자 옵션은 복구와 어떤 관련이 있습니까? CWM / TWRP로 부팅 할 때는 아무런 역할을하지 않습니다. 특히 플래시 ROM에는 적합하지 않습니다.
Izzy

그들은 완전히 관련이 없습니다.
SarpSTA

이 답변은 "USB 디버깅"설정을 참조한다고 생각합니다. 일부 장치 / 버전에서는 실제로 복구에서 읽을 수있는 플래그를 nvram에 설정할 수 있습니다.
Matthew 읽기
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.