อุปกรณ์กระพริบ

หน้านี้ให้รายละเอียดสำหรับการรันบิวด์บนอุปกรณ์เฉพาะ รายละเอียดเหล่านี้ช่วยเสริมข้อมูลใน Building Android

สร้าง fastboot และ adb

หากคุณยังไม่มี fastboot และ adb คุณสามารถสร้างได้ด้วยระบบบิลด์ปกติ ใช้คำแนะนำใน การสร้าง Android และแทนที่คำสั่ง make หลักด้วยคำสั่งนี้:

make fastboot adb

ดู Android Debug Bridge (ADB) สำหรับรายละเอียดเกี่ยวกับ Android Debug Bridge (ADB)

การบูตเข้าสู่โหมด fastboot

คุณสามารถแฟลชอุปกรณ์ได้เมื่ออุปกรณ์อยู่ในโหมด fastboot bootloader หากต้องการเข้าสู่โหมด fastboot เมื่ออุปกรณ์อยู่ระหว่างการบูตแบบเย็น ให้ใช้คีย์ผสมที่แสดงอยู่ใน ชุดคีย์ Fastboot

คุณยังสามารถใช้คำสั่ง adb reboot bootloader เพื่อรีบูตโดยตรงใน bootloader ดู คำแนะนำในการกะพริบ สำหรับคำแนะนำทั้งหมด

การปลดล็อคบูตโหลดเดอร์

คุณสามารถแฟลชระบบแบบกำหนดเองได้ก็ต่อเมื่อ bootloader อนุญาตเท่านั้น โปรดทราบว่า bootloader จะถูกล็อคตามค่าเริ่มต้น คุณสามารถปลดล็อค bootloader ได้ แต่การทำเช่นนี้จะเป็นการลบข้อมูลผู้ใช้ด้วยเหตุผลด้านความเป็นส่วนตัว หลังจากการปลดล็อค ข้อมูล ทั้งหมด บนอุปกรณ์จะถูกลบ นั่นคือทั้งข้อมูลแอพส่วนตัวและข้อมูลที่แชร์ซึ่งเข้าถึงได้ผ่าน USB (รวมถึงภาพถ่ายและภาพยนตร์) ก่อนที่จะพยายามปลดล็อค Bootloader ให้สำรองไฟล์สำคัญใดๆ บนอุปกรณ์

คุณต้องปลดล็อค bootloader เพียงครั้งเดียว และคุณสามารถล็อคใหม่ได้หากจำเป็น

การปลดล็อคอุปกรณ์ล่าสุด

อุปกรณ์ Nexus และ Pixel ทั้งหมดที่เปิดตัวตั้งแต่ปี 2014 (เริ่มตั้งแต่ Nexus 6 และ Nexus 9) มีการป้องกันการรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน และต้องใช้กระบวนการหลายขั้นตอนเพื่อปลดล็อกโปรแกรมโหลดบูต

  1. หากต้องการเปิดใช้งานการปลดล็อค OEM บนอุปกรณ์:
    1. ในการตั้งค่า ให้แตะ เกี่ยวกับโทรศัพท์ จากนั้นแตะ หมายเลขบิวด์ เจ็ดครั้ง
    2. เมื่อคุณเห็นข้อความ คุณเป็นนักพัฒนาแล้ว! ให้แตะปุ่ม ย้อนกลับ
    3. ในการตั้งค่า ให้แตะ ระบบ จากนั้นแตะ ตัวเลือกนักพัฒนา และเปิดใช้งาน การปลดล็อก OEM และ การแก้ไขจุดบกพร่อง USB (หากปิดใช้ งานการปลดล็อคของ OEM ให้เชื่อมต่ออินเทอร์เน็ตเพื่อให้อุปกรณ์เช็คอินได้อย่างน้อยหนึ่งครั้ง หากยังคงปิดใช้งานอยู่ อุปกรณ์ของคุณอาจถูกล็อค SIM โดยผู้ให้บริการของคุณและไม่สามารถปลดล็อคโปรแกรมโหลดบูตได้)
  2. รีบูทเข้าสู่ bootloader และใช้ fastboot เพื่อปลดล็อค
    • สำหรับอุปกรณ์รุ่นใหม่ (2015 และสูงกว่า):
      fastboot flashing unlock
    • สำหรับอุปกรณ์รุ่นเก่า (ปี 2014 และต่ำกว่า):
      fastboot oem unlock
    เคล็ดลับ: หากคุณเห็นเอาต์พุต `อุปกรณ์ adb` ก่อนรีบูต แต่ fastboot หรือสคริปต์แฟลชทำงานผิดปกติ อาจเป็นปัญหากับสาย USB ของคุณ ลองใช้พอร์ตอื่นและ/หรือขั้วต่อสวิตช์ หากคุณใช้พอร์ต USB C บนคอมพิวเตอร์ของคุณ ลองใช้พอร์ต USB A แทน
  3. ยืนยันการปลดล็อคบนหน้าจอ

การล็อค bootloader อีกครั้ง

หากต้องการล็อค bootloader อีกครั้ง:

  • สำหรับอุปกรณ์รุ่นใหม่ (2015 และสูงกว่า):
    fastboot flashing lock
  • สำหรับอุปกรณ์รุ่นเก่า (ปี 2014 และต่ำกว่า):
    fastboot oem lock

การใช้สถานะล็อคแฟลช

API ระบบ getFlashLockState() จะส่งสถานะ bootloader และ API ระบบ PersistentDataBlockManager.getFlashLockState() จะส่งคืนสถานะการล็อกของ bootloader บนอุปกรณ์ที่รองรับ

ส่งคืนค่า เงื่อนไข
FLASH_LOCK_UNKNOWN ส่งคืนโดยอุปกรณ์ที่อัปเกรดเป็น Android 7.x หรือสูงกว่าซึ่งก่อนหน้านี้ไม่รองรับการเปลี่ยนแปลง bootloader ที่จำเป็นในการรับสถานะล็อคแฟลช หากอุปกรณ์เหล่านั้นรองรับความสามารถในการล็อค/ปลดล็อคแบบแฟลช
  • อุปกรณ์ใหม่ที่ใช้ Android 7.x หรือสูงกว่าจะต้องอยู่ในสถานะ FLASH_LOCK_LOCKED หรือ FLASH_LOCK_UNLOCKED
  • อุปกรณ์ที่อัปเกรดเป็น Android 7.x หรือสูงกว่าที่ไม่รองรับความสามารถในการปลดล็อค/ล็อคแบบแฟลชควรส่งคืนสถานะ FLASH_LOCK_LOCKED
FLASH_LOCK_LOCKED ส่งกลับโดยอุปกรณ์ใดๆ ที่ไม่รองรับการล็อค/ปลดล็อคแบบกะพริบ (นั่นคือ อุปกรณ์จะถูกล็อคอยู่เสมอ) หรืออุปกรณ์ใดๆ ที่รองรับการล็อค/ปลดล็อคแบบกะพริบและอยู่ในสถานะล็อค
FLASH_LOCK_UNLOCKED ส่งคืนโดยอุปกรณ์ใด ๆ ที่รองรับการล็อค/ปลดล็อคแบบกะพริบและอยู่ในสถานะปลดล็อค

ผู้ผลิตควรทดสอบค่าที่ส่งคืนโดยอุปกรณ์ที่มีการล็อกและปลดล็อกบูตโหลดเดอร์ ตัวอย่างเช่น Android Open Source Project (AOSP) มีการใช้งานอ้างอิงที่ส่งคืนค่าตามคุณสมบัติการบูต ro.boot.flash.locked รหัสตัวอย่างอยู่ในไดเร็กทอรีต่อไปนี้:

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java

การเลือกรุ่นอุปกรณ์

รุ่นอุปกรณ์ที่แนะนำมีให้ใช้งานจากเมนู lunch ซึ่งเข้าถึงได้เมื่อรันคำสั่ง lunch โดยไม่มีข้อโต้แย้ง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง lunch โปรดดู ที่ เลือกเป้าหมาย สำหรับรายการเป้าหมายบิลด์ โปรดดูที่ เป้าหมายบิลด์

คุณสามารถดาวน์โหลดรูปภาพจากโรงงานและไบนารีสำหรับอุปกรณ์ Pixel และ Nexus ได้จาก developers.google.com ดู ไบนารีของอุปกรณ์ สำหรับการดาวน์โหลด สำหรับรายละเอียดและแหล่งข้อมูลเพิ่มเติม โปรดดูที่ การรับไบนารีที่เป็นกรรมสิทธิ์

อุปกรณ์ รหัสชื่อ สร้างการกำหนดค่า
พิกเซล 7 โปร เสือชีตาห์ aosp_cheetah-userdebug
พิกเซล 7 เสือดำ aosp_panther-userdebug
พิกเซล 6 โปร กา aosp_raven-userdebug
พิกเซล 6 ขมิ้น aosp_oriole-userdebug
พิกเซล 5 ครีบแดง aosp_redfin-userdebug
พิกเซล 4a 5G หนาม aosp_bramble-userdebug
พิกเซล 4เอ ปลาซันฟิช aosp_sunfish-userdebug
พิกเซล 4 XL ปะการัง aosp_coral-userdebug
พิกเซล 4 เปลวไฟ aosp_flame-userdebug
พิกเซล 3a XL โบนิโต aosp_bonito-userdebug
พิกเซล 3เอ ซาร์โก aosp_sargo-userdebug
พิกเซล 3 XL ครอสแฮทช์ aosp_crosshatch-userdebug
พิกเซล 3 เส้นสีน้ำเงิน aosp_blueline-userdebug
พิกเซล 2 XL ไทเมน aosp_taimen-userdebug
พิกเซล 2 ตาลอ aosp_walleye-userdebug
พิกเซล เอ็กซ์แอล มาร์ลิน aosp_marlin-userdebug
พิกเซล ปลาเซลฟิช aosp_sailfish-userdebug
ไฮคีย์ ธุดงค์ hikey-userdebug
เน็กซัส 6พี คนตกปลา aosp_angler-userdebug
เน็กซัส 5X เอาแต่ใจ aosp_bullhead-userdebug
เน็กซัส 6 ชามู aosp_shamu-userdebug
ผู้เล่นเน็กซัส ฟูกุ aosp_fugu-userdebug
เน็กซัส 9 volantis (ดิ้นรน) aosp_flounder-userdebug
เน็กซัส 5 (GSM/LTE) แฮมเมอร์เฮด aosp_hammerhead-userdebug
เน็กซัส 7 (ไวไฟ) มีดโกน (flo) aosp_flo-userdebug
Nexus 7 (มือถือ) เรเซอร์ก (deb) aosp_deb-userdebug
เน็กซัส 10 มันตะเรย์ (มันตะ) full_manta-userdebug
เน็กซัส 4 occam (มาโกะ) full_mako-userdebug
เน็กซัส 7 (ไวไฟ) นากาซี (ปลาเก๋า) full_grouper-userdebug
Nexus 7 (มือถือ) นาคาซิก (ปลานิล) full_tilapia-userdebug
กาแล็กซี่เน็กซัส (GSM/HSPA+) ยักจู (มากุโระ) full_maguro-userdebug
กาแล็กซี่เน็กซัส (Verizon) มายซิด (โตโร) √aosp_toro-userdebug
Galaxy Nexus (ทดลอง) มายซิดสปร (โทโรพลัส) aosp_toroplus-userdebug
Motorola Xoom (Wi-Fi ของสหรัฐอเมริกา) ปีกเรย์ full_wingray-userdebug
เน็กซัส เอส โซจู (เครสโป) full_crespo-userdebug
เน็กซัส เอส 4จี โซจู (crespo4g) full_crespo4g-userdebug

กำลังกะพริบอุปกรณ์

คุณสามารถแฟลชระบบ Android ทั้งหมดได้ด้วยคำสั่งเดียว การทำเช่นนี้เป็นการตรวจสอบว่าระบบที่กำลังแฟลชเข้ากันได้กับ bootloader และวิทยุที่ติดตั้ง เขียนการบูต การกู้คืน และพาร์ติชันระบบร่วมกัน จากนั้นรีบูตระบบ การกะพริบยังลบข้อมูลผู้ใช้ทั้งหมด เช่นเดียวกับ fastboot oem unlock

หากต้องการแฟลชอุปกรณ์:

  1. แตกไฟล์รูปภาพไปยังไดเร็กทอรีของตัวเอง
  2. ตั้งค่าตัวแปรสภาพแวดล้อม ANDROID_PRODUCT_OUT ให้ชี้ไปยังไดเรกทอรีเดียวกันกับที่ใช้ในขั้นตอนที่ 1
  3. วางอุปกรณ์ในโหมด fastboot โดยกดคีย์ผสมที่เหมาะสมค้างไว้ขณะบู๊ตหรือใช้คำสั่งต่อไปนี้:
    adb reboot bootloader
  4. หลังจากที่อุปกรณ์อยู่ในโหมด fastboot ให้รัน:
    fastboot flashall -w
    ตัวเลือก -w จะล้างพาร์ติชัน /data บนอุปกรณ์ สิ่งนี้มีประโยชน์สำหรับการแฟลชอุปกรณ์ใดอุปกรณ์หนึ่งเป็นครั้งแรก แต่ก็ไม่จำเป็น

การกำหนดค่าแบบกระพริบ

คำแนะนำ Fastboot ถูกสะกดไว้ในอาร์ติแฟกต์ที่เรียกว่า fastboot-info.txt ซึ่งอยู่ใน $ANDROID_PRODUCT_OUT/* เอกสาร .txt นี้รายการงานสำหรับ fastboot ที่จะดำเนินการและสามารถสร้างใหม่ได้ผ่าน m fastboot_info สามารถใช้ตรรกะการกะพริบแบบกำหนดเองได้โดยการแก้ไขไฟล์นี้

คำสั่งที่รองรับ:

  1. flash %s : แฟลชพาร์ติชันที่กำหนด อาร์กิวเมนต์เพิ่มเติม ได้แก่ --slot-other, {filename_path}, --apply-vbmeta
  2. update-super : อัพเดตพาร์ติชั่นซุปเปอร์
  3. if-wipe : เรียกใช้ฟังก์ชันการทำงานอื่นตามเงื่อนไขหากระบุการเช็ด
  4. ลบ %s : ลบพาร์ติชันที่กำหนด (สามารถใช้ร่วมกับ if-wipe -> เช่น if-wipe erase cache

กำลังกู้คืนอุปกรณ์กลับสู่สถานะโรงงาน

อิมเมจจากโรงงานสำหรับอุปกรณ์ Google มีให้จาก อิมเมจจากโรงงานสำหรับ Nexus และอุปกรณ์ Pixel ภาพจากโรงงานสำหรับ Motorola Xoom ได้รับการเผยแพร่โดยตรงจาก Motorola

แก้ไขข้อผิดพลาดการอนุญาตที่ถูกปฏิเสธ

ตามค่าเริ่มต้นบนระบบ Linux ส่วนใหญ่ ผู้ใช้ที่ไม่มีสิทธิพิเศษจะไม่สามารถเข้าถึงพอร์ต USB ได้ หากคุณเห็นข้อผิดพลาดการอนุญาตถูกปฏิเสธ โปรดดูคำแนะนำของ Android Studio เพื่อ ตั้งค่าอุปกรณ์สำหรับการพัฒนา

หาก ADB ทำงานอยู่แล้วและไม่สามารถเชื่อมต่อกับอุปกรณ์ได้ คุณสามารถหยุด ADB ได้ด้วย adb kill-server คำสั่งนี้ทำให้ ADB รีสตาร์ทด้วยการกำหนดค่าใหม่