เป้าหมาย
หากคุณมีภาพ OTA ที่ดาวน์โหลดมาและในกรณีของฉันจบลงด้วยความไม่สำเร็จคุณควรจะสามารถทำได้adb sideload <filename>
ด้วยตนเอง ( วิดีโอที่นี่ )
ปัญหา / ข้อผิดพลาด
... น่าเสียดายที่การอัปเดต OTA ผ่านadb sideload
ข้อผิดพลาดด้วย:
Finding update package...
Opening update package...
Verifying update package...
Installing update...
Verifying current system...
"/system/app/Drive.apk" has unexpected contents.
E:Error in /tmp/update.zip
(Status 7)
Installation aborted.
ที่/system/app/Drive.apk
อาจจะเป็นแอประบบ
ใครไม่ตำหนิ?
- TWRP ไม่ได้ตำหนิฉันคิดอย่างนั้นในตอนแรก แต่มันก็ใช้ได้กับ TWRP เช่นกัน
- TitaniumBackup Pro เนื่องจากฉันรูทอุปกรณ์ของฉันและใช้คุณสมบัติผู้ใช้ระดับสูงฉันควรทราบถึงผลข้างเคียงของมัน ตอนนี้ฉันรู้แล้ว :) ... และมีโอกาสดีที่คุณเรียนรู้เกี่ยวกับสิ่งนี้จากคำตอบนี้ตอนนี้
สาเหตุที่ชัดเจนของข้อผิดพลาด
การใช้ Titanium Backup Pro ฉันได้ใช้คุณสมบัติ "ค้าง" เพื่อกำจัดบางส่วนของแอพระบบกล่าวคือ:
- คีย์บอร์ดอัสซุส
- ปฏิทิน
- จัดเก็บปฏิทิน
- com.android.providers.partnerbookmarks
- com.android.sharedstoragebackup
- com.google.android.voicesearch
- บริการแลกเปลี่ยน
- Gmail
- Google One Time Init
- Google Play Books
- Google Play Games
- Google Play Magazines
- Google Play ภาพยนตร์
- Google Play Music
- ค้นหา Google
- เครื่องมือแปลงข้อความเป็นคำพูดของ Google
- แฮงเอาท์
- iWnn IME
- แป้นพิมพ์ iWnnIME (สีขาว)
- ชื่อย่อหนึ่งครั้ง
เห็นได้ชัดว่านี่คือสาเหตุที่การadb sideload
ประกันตัวออกไปก่อนกำหนดพร้อมกับข้อความแสดงข้อผิดพลาดที่ให้ไว้ในคำถามของฉัน
ฉันยังถอนการติดตั้งแอพระบบบางตัวและฉันคิดว่าฉันจำ "ไดรฟ์" (จำ/system/app/Drive.apk
ได้ไหม?:) เป็นหนึ่งในนั้น
การแก้ไขปัญหา
ฉันพบวิธีแก้ปัญหามากกว่าที่ forum.xda-developers.com ในคำตอบนี้ ส่วนสำคัญคือถ้าคุณมีภาพที่ปรับเปลี่ยนคุณจะต้องเรียกคืนเพื่อให้ OTA sideload ประสบความสำเร็จ
ขั้นแรกให้ดาวน์โหลดอิมเมจสต็อคสำหรับบิลด์ที่คุณมีอยู่ในปัจจุบัน ตรวจสอบให้แน่ใจว่าเป็นอุปกรณ์ที่ถูกต้องสำหรับอุปกรณ์ของคุณ ดังนั้นผมจึงพยายามที่จะปรับรุ่นจากJSS15R
ไปKRT16S
ในรุ่น Wi-Fi ซึ่งหมายความว่าฉันต้องการที่จะดาวน์โหลด4.3 (JSS15R)
ภาพ นั่นคือไฟล์razor-jss15r-factory-ec2d4f76.tgz
ในกรณีของฉัน razor-jss15r
จากนั้นผมก็แตกที่ให้ฉันโฟลเดอร์ย่อยชื่อ ข้างในนั้นมีสคริปต์เชลล์.img
ไฟล์และ.zip
( image-razor-jss15r.zip
) หลังจำเป็นต้องคลายแพ็กเกจ จากนั้นฉันมี.img
ไฟล์ในโฟลเดอร์ที่ฉันคลายไฟล์.zip
ลงใน:
boot.img
cache.img
recovery.img
system.img
userdata.img
จากนั้นฉันทำตามขั้นตอนที่ระบุไว้ในคำตอบที่เชื่อมโยง:
- บูตเข้า bootloader (เก็บVolume-downและPowerกดโดยตรงหลังจากเปิดเครื่อง)
- เชื่อมต่อ USB (ต้องแน่ใจก่อนว่าติดตั้งไดรเวอร์ USB ทั้งหมดแล้ว )
- เปลี่ยนเป็นโฟลเดอร์ที่มี
.img
ไฟล์ที่คลายการแพคก่อนหน้านี้
- ตรวจสอบจากพรอมต์ Android SDK
fastboot devices
ที่คุณเห็นอุปกรณ์ที่มี
- จากนั้นดำเนินการ
fastboot flash system system.img
ที่จะแฟลชพาร์ทิชันระบบหุ้น
หมายเหตุ:ไม่เหมือนในโพสต์ที่เชื่อมโยงฉันออกจากขั้นตอนด้วยfastboot erase system
เพราะเห็นได้ชัดว่ามีนัยโดยfastboot flash system system.img
ที่สามารถเห็นได้จากผลลัพธ์ ฉันยังออกไปfastboot flash boot boot.img
และfastboot flash recovery recovery.img
เพราะฉันคิดว่ามันไม่น่าเป็นไปได้ที่ "พาร์ทิชัน" เหล่านี้จะได้รับการแก้ไข (ฉันพูดถูก) คุณอาจจำเป็นต้องใช้สองหลัง อาจขึ้นอยู่กับสิ่งที่คุณแก้ไขซึ่งป้องกันไม่ให้adb sideload
ขั้นตอน (เช่นอ่านและทำความเข้าใจข้อความแสดงข้อผิดพลาด)
นี่คือผลลัพธ์:
# fastboot flash system system.img
erasing 'system'...
OKAY [ 1.160s]
sending 'system' (603447 KB)...
OKAY [ 19.786s]
writing 'system'...
OKAY [ 26.720s]
finished. total time: 47.668s
และ voila, ระบบสะอาดที่สามารถปรับปรุง OTA ได้
ดังนั้นโดยสังเขปคุณอาจต้องการเพียงแค่fastboot flash system system.img
จากภาพสต็อกที่คุณกำลังทำงานอยู่หากคุณได้รับข้อผิดพลาดระหว่างขั้นตอนการยืนยัน:
Verifying current system...
"/system/<SOME>.apk" has unexpected contents.
E:Error in /tmp/update.zip
(Status 7)
ดาวน์โหลดสำหรับภาพโรงงาน (Nexus 7 ทั้งคู่)