Google เปิดตัว GSI ของ Android Q เบต้าตัวที่สอง อิมเมจระบบเหล่านี้สามารถติดตั้งบนอุปกรณ์ที่เข้ากันได้กับ Project Treble สำหรับการทดสอบแอป นี่คือวิธีการ
เมื่อเราเข้าใกล้การเปิดตัว Android Q รุ่นสุดท้ายมากขึ้นเรื่อยๆ เวลาสำหรับนักพัฒนาในการอัปเดตแอปพลิเคชันก็สั้นลง แม้ว่า Android 9 Pie (API ระดับ 28) จะยังไม่สามารถเข้าถึงอุปกรณ์ส่วนใหญ่ได้ แต่ข้อกำหนดระดับ API ของ Google Play ซึ่งคุณควร จงตระหนักดีอยู่แล้วจะบังคับให้คุณกำหนดเป้าหมาย API ระดับ 29 ในปี 2020 หากคุณยังไม่ได้อัปเดตแอปของคุณเพื่อกำหนดเป้าหมายเป็น Android 9 Pie แล้ว คุณมีเวลาจนถึงเดือนสิงหาคมหากคุณวางแผนที่จะเปิดตัวแอปใหม่หรือจนถึงเดือนพฤศจิกายนหากคุณวางแผนที่จะอัปเดตแอปที่มีอยู่ สำหรับผู้ที่ต้องการเริ่มต้นพัฒนาสำหรับ Android เวอร์ชันถัดไป คุณสามารถทดสอบแอปของคุณได้ที่ โปรแกรมจำลอง Android Studio หรือบนฮาร์ดแวร์กายภาพหากคุณเป็นเจ้าของ สมาร์ทโฟน Google Pixel ทุกรุ่น. อย่างไรก็ตาม ในปีนี้ Google ให้ทางเลือกแก่นักพัฒนาในการทดสอบแอปของตนกับ Android เวอร์ชันล่าสุด: การกะพริบ Android Q เบต้า GSI บนอุปกรณ์ที่รองรับ Project Treble
โครงการเสียงแหลม
เป็นความคิดริเริ่มที่สำคัญในการปรับปรุงความเร็วที่ผู้ผลิตอุปกรณ์สมาร์ทโฟนสามารถเผยแพร่ซอฟต์แวร์และการอัปเดตความปลอดภัยได้ โดยสรุป Treble กำหนดให้ผู้ผลิตอุปกรณ์แยกซอฟต์แวร์ที่ทำให้ฮาร์ดแวร์ทำงานจากซอฟต์แวร์ที่อยู่เบื้องหลังระบบปฏิบัติการ สิ่งนี้ช่วยให้ผู้ผลิตอุปกรณ์สามารถบูต Android รุ่นใหม่บนอุปกรณ์ที่มีอยู่ได้ เพื่อให้สามารถเริ่มต้นงานที่ยากลำบากในการย้ายฐานโค้ดที่มีอยู่ นอกเหนือจากซอร์สโค้ด Android รุ่นใหม่ สิ่งที่เสริมกับ CTS คือ VTS หรือ Vendor Test Suite ซึ่งเป็นชุดการทดสอบที่ผู้ผลิตอุปกรณ์ใช้ในการตรวจสอบว่าอุปกรณ์ของตนมีคุณสมบัติตรงตามข้อกำหนดของ Project Treble การตรวจสอบที่สำคัญที่สุดประการหนึ่งสำหรับผู้ผลิตอุปกรณ์ในการทดสอบคือความสามารถของสมาร์ทโฟนที่รองรับ Treble ในการบูตสิ่งที่เรียกว่า GSI หรือ Generic System Image GSI คือโครงสร้าง AOSP ที่ยังไม่ได้แก้ไข ซึ่งมีไว้สำหรับผู้ผลิตอุปกรณ์เพื่อดูว่าพวกเขาได้นำ Treble ไปใช้อย่างถูกต้องหรือไม่ นอกเหนือจาก OEM แล้ว Google เชื่อ นักพัฒนาซอฟต์แวร์สามารถใช้ GSI สำหรับการทดสอบความเข้ากันได้ของแอป Android ได้ตัวอย่างเช่น หากคุณไม่ได้เป็นเจ้าของ Google Pixel วิธีเดียวที่คุณจะทดสอบพฤติกรรมของแอปภายใต้เงื่อนไขที่ตรงกับของ Google มากที่สุด เอกสารประกอบมีไว้สำหรับให้คุณซื้ออุปกรณ์ Pixel ของคุณเอง บูตโปรแกรมจำลอง Android Studio หรือดูการทดสอบระบบคลาวด์ บริการ. แต่ละข้อมีข้อดีและข้อเสียต่างกันไป แต่หากคุณมีอุปกรณ์ที่เข้ากันได้กับ Treble อยู่แล้ว และไม่ต้องการเสียเงินหรือจัดการกับข้อจำกัดของโปรแกรมจำลอง ทำไมไม่ลองใช้ GSI เข้าไปดูล่ะ หากแอปของคุณทำงานบน GSI ก็ควรใช้งานได้บนอุปกรณ์เกือบทั้งหมดที่ใช้ Android เวอร์ชันนั้น
นั่นคือกระบวนการคิดเบื้องหลังการตัดสินใจของ Google ที่จะเปิดตัว Android Q GSI หรืออย่างน้อยนั่นคือสิ่งที่เราคิด ซอร์สโค้ดสำหรับ Android Q จะไม่สามารถใช้ได้จนถึงเดือนสิงหาคม ดังนั้นไบนารี GSI อย่างเป็นทางการของ Google จึงเป็นวิธีเดียวที่จะทดสอบ Android Q บนฮาร์ดแวร์จริงที่ไม่ใช่พิกเซล ต่อไปนี้คือวิธีที่คุณสามารถเริ่มต้นได้
ความต้องการ
ก่อนที่คุณจะพิจารณาติดตั้ง Android Q เบต้า คุณควรตรวจสอบเพื่อดูว่าอุปกรณ์ของคุณรองรับ Project Treble หรือไม่ และสามารถรับอิมเมจระบบที่กะพริบจากโปรแกรมโหลดบูตได้
ความต้องการ:
- อุปกรณ์ของคุณ ต้อง มี bootloader ที่ปลดล็อคได้. สมาร์ทโฟน Snapdragon Samsung ที่จำหน่ายในสหรัฐอเมริกา อุปกรณ์แบรนด์ Huawei อุปกรณ์แบรนด์ Honor และอุปกรณ์แบรนด์ Nokia ของ HMD Global (ยกเว้น โนเกีย 8) ไม่มีคุณสมบัติที่นี่
- คุณได้ติดตั้งไบนารี ADB และ Fastboot ล่าสุดบนพีซีของคุณ ซึ่งคุณสามารถหาได้ ที่นี่. Fastboot เวอร์ชันเก่าอาจส่งผลให้เกิดการกะพริบที่ไม่เหมาะสม
- อุปกรณ์ของคุณ ต้อง พบปะ หนึ่ง ของเกณฑ์ต่อไปนี้ที่จะพิจารณาว่าเข้ากันได้กับ Project Treble:
- อุปกรณ์เปิดตัวพร้อมกับ Android 9 Pie หากเป็นกรณีนี้ คุณสามารถข้ามการยืนยันความเข้ากันได้ของ Treble ได้หลังจากอ่านถึงส่วนท้ายของส่วนนี้แล้ว
- อุปกรณ์เปิดตัวพร้อมกับ Android 8.0 Oreo หรือ Android 8.1 Oreo แต่ได้รับการอัปเดตเป็น Android 9 Pie พร้อมการแยก VNDK และระบบเป็นรูท เรามีรายละเอียดวิธีการค้นหาในส่วนด้านล่าง
ก่อนที่เราจะไปไกลกว่านั้น เป็นเรื่องที่ควรค่าแก่การกล่าวถึงว่าการแฟลช GSI จะทำให้คุณต้องทำการล้างพาร์ติชันข้อมูลผู้ใช้ทั้งหมด ซึ่งหมายความว่า คุณจะสูญเสียรูปภาพ วิดีโอ เพลง เอกสาร หรือสิ่งอื่นใดในที่จัดเก็บข้อมูลภายในและภายนอก (/ข้อมูล/สื่อ) ของอุปกรณ์ ดังนั้นขอแนะนำให้ทำการสำรองข้อมูลนอกอุปกรณ์ก่อนดำเนินการต่อ
ถัดไป โปรดทราบว่า GSI เหล่านี้ไม่ผ่าน CTS ดังนั้นหากแอปของคุณใช้ SafetyNet Attestation API เพื่อตรวจสอบความสมบูรณ์ของอุปกรณ์ด้วยโปรไฟล์ CTS ที่ตรงกัน ก็จะไม่ทำงาน นอกจากนี้ โครงสร้างเหล่านี้ไม่ได้มีไว้สำหรับการใช้งานรายวัน ดังนั้นอย่าแปลกใจหากฟังก์ชันฮาร์ดแวร์พื้นฐานอย่างน้อยหนึ่งฟังก์ชันไม่ทำงานนอกเหนือจากข้อบกพร่องที่บันทึกไว้แล้วใน Android Q Google ได้ระบุปัญหาที่ทราบบางประการเกี่ยวกับ GSI แล้ว ซึ่งคุณสามารถพบได้ ที่นี่. ข้อบกพร่องใหม่ใด ๆ ที่คุณพบควรถูกยื่น ที่นี่.
ยืนยันความเข้ากันได้ของเสียงแหลม
รันคำสั่งต่อไปนี้:
adbshellgetpropro.treble.enabled
ถ้าคำตอบคือ เท็จแสดงว่าอุปกรณ์ของคุณไม่รองรับ Project Treble และคุณไม่ควรดำเนินการต่อ ถ้าคำตอบคือ จริงแล้วคุณมีอิสระที่จะเดินหน้าต่อไป
ถัดไป ตรวจสอบการสนับสนุนข้ามเวอร์ชันโดยการรันคำสั่งเหล่านี้:
adb shell
cat /system/etc/ld.config.28.txt | grep -A 20"\[vendor\]"
ในผลลัพธ์ ให้มองหาส่วน [ผู้ขาย]จากนั้นมองหาภายในส่วนนั้น เนมสเปซ ค่าเริ่มต้น แยก. หากค่าสำหรับแอตทริบิวต์นั้นคือ จริงจากนั้นอุปกรณ์ของคุณควรรองรับการบูท Android Q GSI ที่ด้านบนของอิมเมจของผู้จำหน่าย Android 9 Pie หากมีค่าเป็น เท็จจากนั้นอุปกรณ์ของคุณจะสามารถใช้ GSI สำหรับระบบปฏิบัติการเวอร์ชันเดียวกันบนอุปกรณ์เท่านั้น
สุดท้ายนี้ คุณต้องยืนยันว่าอุปกรณ์ของคุณเป็นระบบในฐานะรูทหรือไม่ ซึ่งมีการรวม ramdisk เข้ากับอิมเมจระบบ System-as-root ไม่ได้บังคับสำหรับอุปกรณ์ที่อัปเกรดเป็น Android 9 Pie แต่จำเป็นเพื่อรองรับ OTA ของระบบเท่านั้น เช่น ในกรณีที่แฟลชระบบปฏิบัติการเวอร์ชันใหม่ผ่าน GSI รันคำสั่งต่อไปนี้และตรวจสอบว่าเอาต์พุตตรงกับ "system-as-root":
adb shell
cat /proc/mounts | grep -q /dev/root && echo"system-as-root" || echo"non-system-as-root"
เมื่อคุณทราบแล้วว่าอุปกรณ์ของคุณเข้ากันได้กับ Treble แล้ว คุณต้องพิจารณาว่าควรดาวน์โหลดไบนารี GSI เวอร์ชันใด เนื่องจากมีอิมเมจที่แตกต่างกันสำหรับสถาปัตยกรรมที่แตกต่างกัน หากต้องการดูว่าอุปกรณ์ของคุณมีสถาปัตยกรรมแบบใด ให้รันคำสั่งต่อไปนี้:
adbshellgetpropro.product.cpu.abi
จดบันทึกผลลัพธ์ไว้ที่นี่ เนื่องจากคุณจะต้องใช้เมื่อดาวน์โหลด GSI
กำลังดาวน์โหลด GSI
ลิงก์ดาวน์โหลดสำหรับรุ่นอย่างเป็นทางการของ Android Q beta GSI มีให้จาก Google ที่นี่. คุณควรดาวน์โหลดเวอร์ชันที่เหมาะสมตามสถาปัตยกรรมของอุปกรณ์ของคุณ ซึ่งคุณพบในขั้นตอนก่อนหน้า การดาวน์โหลดจะมีขนาดค่อนข้างใหญ่หากคุณดาวน์โหลดบิลด์ด้วย GMS หรือ Google Mobile Services ซึ่งเป็นสิ่งที่เราขอแนะนำอย่างยิ่งเพื่อให้คุณสามารถทดสอบแอปของคุณบนบิลด์ด้วยบริการ Google Play
เมื่อดาวน์โหลดไฟล์เสร็จแล้ว คุณสามารถแตกไฟล์ได้ บรรจุอยู่ภายในเป็นสองไฟล์ system.img, และ vbmeta.img.
กระพริบ GSI
- รีบูตไปที่ bootloader ของอุปกรณ์โดยใช้ปุ่มผสมหรือโดยการออกคำสั่ง:
adb reboot bootloader
- ต่อไปเราต้องปิดการใช้งาน Android Verified Boot (AVB) คุณสามารถทำได้โดยป้อนคำสั่งต่อไปนี้:
fastbootflashvbmetavbmeta.img
- ต่อไปมาล้างพาร์ติชันระบบ:
fastboot erase system
- ในที่สุดเราก็สามารถแฟลช Android Q GSI ด้วย:
fastbootflashsystemsystem.img
- เมื่อเสร็จแล้วให้ล้างพาร์ติชัน userdata ด้วย:
fastboot -w
- รีบูทอุปกรณ์ของคุณโดยใช้ปุ่มเปิดปิดหรือป้อน:
fastboot reboot
หวังว่ามันควรจะบู๊ตหลังจากผ่านไปไม่กี่นาที ขั้นตอนเหล่านี้ได้รับการตรวจสอบแล้วบน Pixel 3 XL แต่ควรใช้ได้ในระดับสากล เราสามารถตรวจสอบได้ว่า Android Q beta 2 GSI ไม่บู๊ตบน OnePlus 6T แต่จะบู๊ตบน Xiaomi Mi 9 อาจใช้งานได้กับ Sony Xperia XZ3 แต่เราได้รับแจ้งว่าไม่สามารถบู๊ตได้บน Moto G7 ระยะทางของคุณอาจแตกต่างกันไปเนื่องจากข้อกำหนดของ Google เพียงยืนยันความเข้ากันได้ของ GSI เวอร์ชันระบบปฏิบัติการเดียวกันเท่านั้น