Thiết bị nhấp nháy

Trang này cung cấp thông tin chi tiết về cách chạy bản dựng trên các thiết bị cụ thể. Những chi tiết này bổ sung cho thông tin trong Xây dựng Android .

Xây dựng fastboot và adb

Nếu bạn chưa có fastbootadb , bạn có thể xây dựng chúng bằng hệ thống xây dựng thông thường. Sử dụng hướng dẫn trong Xây dựng Android và thay thế lệnh make chính bằng lệnh này:

make fastboot adb

Xem Cầu gỡ lỗi Android (ADB) để biết chi tiết về Cầu gỡ lỗi Android (ADB).

Khởi động vào chế độ fastboot

Bạn có thể flash thiết bị khi nó ở chế độ bộ nạp khởi động fastboot . Để vào chế độ fastboot khi thiết bị đang khởi động nguội, hãy sử dụng các tổ hợp phím được liệt kê trong tổ hợp phím Fastboot.

Bạn cũng có thể sử dụng lệnh adb reboot bootloader để khởi động lại trực tiếp vào bootloader. Xem Hướng dẫn nhấp nháy để biết hướng dẫn đầy đủ.

Mở khóa bootloader

Bạn chỉ có thể flash một hệ thống tùy chỉnh nếu bộ nạp khởi động cho phép. Tuy nhiên, xin lưu ý rằng bộ nạp khởi động bị khóa theo mặc định. Bạn có thể mở khóa bộ nạp khởi động nhưng làm như vậy sẽ xóa dữ liệu người dùng vì lý do riêng tư. Sau khi mở khóa, tất cả dữ liệu trên thiết bị sẽ bị xóa, tức là cả dữ liệu ứng dụng riêng tư và dữ liệu chia sẻ đều có thể truy cập qua USB (bao gồm cả ảnh và phim). Trước khi thử mở khóa bootloader, hãy sao lưu mọi tệp quan trọng trên thiết bị.

Bạn chỉ cần mở khóa bootloader một lần và có thể khóa lại nếu cần.

Mở khóa các thiết bị gần đây

Tất cả các thiết bị Nexus và Pixel được phát hành từ năm 2014 (bắt đầu với Nexus 6 và Nexus 9) đều có tính năng bảo vệ khôi phục cài đặt gốc và yêu cầu quy trình nhiều bước để mở khóa bộ nạp khởi động.

  1. Để bật tính năng mở khóa OEM trên thiết bị:
    1. Trong Cài đặt, nhấn Giới thiệu về điện thoại , sau đó nhấn Số bản dựng bảy lần.
    2. Khi bạn thấy thông báo Bạn hiện là nhà phát triển! , hãy nhấn vào nút quay lại .
    3. Trong Cài đặt, chạm vào Hệ thống , sau đó chạm vào Tùy chọn nhà phát triển và bật Mở khóa OEMgỡ lỗi USB . (Nếu tính năng mở khóa OEM bị tắt, hãy kết nối với Internet để thiết bị có thể đăng nhập ít nhất một lần. Nếu tính năng này vẫn bị tắt, thiết bị của bạn có thể bị nhà cung cấp dịch vụ khóa SIM và không thể mở khóa bộ nạp khởi động.)
  2. Khởi động lại vào bootloader và sử dụng fastboot để mở khóa.
    • Đối với các thiết bị mới hơn (2015 trở lên):
      fastboot flashing unlock
    • Đối với các thiết bị cũ hơn (2014 trở xuống):
      fastboot oem unlock
    Mẹo: nếu bạn thấy đầu ra `adb devices` trước khi khởi động lại nhưng fastboot hoặc tập lệnh flash hoạt động sai thì có thể cáp USB của bạn có vấn đề. Hãy thử một cổng khác và/hoặc chuyển đổi đầu nối. Nếu bạn đang sử dụng cổng USB C trên máy tính, hãy thử dùng cổng USB A.
  3. Xác nhận mở khóa trên màn hình.

Khóa lại bootloader

Để khóa lại bootloader:

  • Đối với các thiết bị mới hơn (2015 trở lên):
    fastboot flashing lock
  • Đối với các thiết bị cũ hơn (2014 trở xuống):
    fastboot oem lock

Sử dụng trạng thái khóa flash

API hệ thống getFlashLockState() truyền trạng thái bộ nạp khởi động và API hệ thống PersistentDataBlockManager.getFlashLockState() trả về trạng thái khóa của bộ nạp khởi động trên các thiết bị tuân thủ.

Giá trị trả về Điều kiện
FLASH_LOCK_UNKNOWN Chỉ được trả về bởi các thiết bị nâng cấp lên Android 7.x trở lên mà trước đây không hỗ trợ các thay đổi bộ nạp khởi động cần thiết để có trạng thái khóa flash nếu chúng hỗ trợ khả năng khóa/mở khóa nhấp nháy.
  • Các thiết bị mới chạy Android 7.x trở lên phải ở trạng thái FLASH_LOCK_LOCKED hoặc FLASH_LOCK_UNLOCKED .
  • Các thiết bị nâng cấp lên Android 7.x trở lên không hỗ trợ khả năng mở khóa/khóa nhấp nháy sẽ trả về trạng thái FLASH_LOCK_LOCKED .
FLASH_LOCK_LOCKED Trả về bởi bất kỳ thiết bị nào không hỗ trợ khóa/mở khóa nhấp nháy (tức là thiết bị luôn bị khóa) hoặc bất kỳ thiết bị nào hỗ trợ khóa/mở khóa nhấp nháy và đang ở trạng thái khóa.
FLASH_LOCK_UNLOCKED Được trả về bởi bất kỳ thiết bị nào hỗ trợ khóa/mở khóa nhấp nháy và đang ở trạng thái mở khóa.

Các nhà sản xuất nên kiểm tra các giá trị được trả về bởi các thiết bị có bộ nạp khởi động bị khóa và mở khóa. Ví dụ: Dự án mã nguồn mở Android (AOSP) chứa triển khai tham chiếu trả về giá trị dựa trên thuộc tính khởi động ro.boot.flash.locked . Mã ví dụ nằm trong các thư mục sau:

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

Chọn bản dựng thiết bị

Các bản dựng thiết bị được đề xuất có sẵn từ menu lunch , được truy cập khi chạy lệnh lunch mà không có đối số. Để biết thêm thông tin về lệnh lunch , hãy xem Chọn mục tiêu . Để biết danh sách mục tiêu xây dựng, hãy xem Xây dựng mục tiêu .

Bạn có thể tải xuống hình ảnh gốc và tệp nhị phân cho thiết bị Pixel và Nexus từdevelopers.google.com . Xem Tệp nhị phân của thiết bị để tải xuống. Để biết chi tiết và các tài nguyên bổ sung, hãy xem Lấy các tệp nhị phân độc quyền .

Thiết bị Tên mã Xây dựng cấu hình
Pixel 7 Pro con báo aosp_cheetah-userdebug
Pixel 7 con beo aosp_panther-userdebug
Pixel 6 Pro con quạ aosp_raven-userdebug
Pixel 6 chim vàng anh aosp_oriole-userdebug
Pixel 5 vây đỏ aosp_redfin-userdebug
Pixel 4a 5G bụi gai aosp_bramble-userdebug
Pixel 4a cá thái dương aosp_sunfish-userdebug
Pixel 4 XL san hô aosp_coral-userdebug
Pixel 4 ngọn lửa aosp_flame-userdebug
Pixel 3a XL cá ngừ aosp_bonito-userdebug
Pixel 3a sargo aosp_sargo-userdebug
Pixel 3 XL đường chéo aosp_crosshatch-userdebug
Pixel 3 đường xanh aosp_blueline-userdebug
Pixel 2 XL taimen aosp_taimen-userdebug
Pixel 2 cá ngựa aosp_walleye-userdebug
Pixel XL cá marlin aosp_marlin-userdebug
Pixel cá cờ aosp_sailfish-userdebug
HiKey đi bộ đường dài hikey-userdebug
Nexus 6P người câu cá aosp_angler-userdebug
Nexus 5X đầu bò aosp_bullhead-userdebug
Nexus 6 shamu aosp_shamu-userdebug
Trình phát Nexus cá nóc aosp_fugu-userdebug
Nexus 9 volantis (cá bơn) aosp_flounder-userdebug
Nexus 5 (GSM/LTE) đầu búa aosp_hammerhead-userdebug
Nexus 7 (Wi-Fi) dao cạo (flo) aosp_flo-userdebug
Nexus 7 (Di động) dao cạo (deb) aosp_deb-userdebug
Nexus 10 mantaray (manta) full_manta-userdebug
Nexus 4 thỉnh thoảng (mako) full_mako-userdebug
Nexus 7 (Wi-Fi) nakasi (cá mú) full_grouper-userdebug
Nexus 7 (Di động) nakasig (cá rô phi) full_tilapia-userdebug
Galaxy Nexus (GSM/HSPA+) yakju (maguro) full_maguro-userdebug
Galaxy Nexus (Verizon) mysid (toro) √aosp_toro-userdebug
Galaxy Nexus (Thử nghiệm) mysidspr (toroplus) aosp_toroplus-userdebug
Motorola Xoom (Wi-Fi Hoa Kỳ) tia cánh full_wingray-userdebug
Nexus S soju (crespo) full_crespo-userdebug
Nexus S 4G rượu soju (crespo4g) full_crespo4g-userdebug

Nhấp nháy một thiết bị

Bạn có thể flash toàn bộ hệ thống Android chỉ bằng một lệnh; làm như vậy sẽ xác minh rằng hệ thống đang được flash có tương thích với bộ tải khởi động và radio đã cài đặt hay không, ghi các phân vùng khởi động, khôi phục và hệ thống cùng nhau, sau đó khởi động lại hệ thống. Nhấp nháy cũng xóa toàn bộ dữ liệu người dùng, tương tự như fastboot oem unlock .

Để flash một thiết bị:

  1. Giải nén tập tin hình ảnh vào thư mục riêng của nó.
  2. Đặt biến môi trường ANDROID_PRODUCT_OUT để trỏ đến cùng thư mục được sử dụng ở bước 1.
  3. Đặt thiết bị ở chế độ fastboot bằng cách giữ tổ hợp phím thích hợp khi khởi động hoặc sử dụng lệnh sau:
    adb reboot bootloader
  4. Sau khi thiết bị ở chế độ fastboot, hãy chạy:
    fastboot flashall -w
    Tùy chọn -w sẽ xóa phân vùng /data trên thiết bị; điều này rất hữu ích cho lần đầu tiên bạn flash một thiết bị cụ thể nhưng nếu không thì không cần thiết.

Cấu hình nhấp nháy

Hướng dẫn Fastboot được đánh vần trong một tạo phẩm có tên fastboot-info.txt nằm trong $ANDROID_PRODUCT_OUT/* Danh sách tài liệu .txt này gồm các tác vụ để fastboot thực thi và có thể được tạo lại thông qua m fastboot_info . Logic nhấp nháy tùy chỉnh có thể được giới thiệu bằng cách sửa đổi tệp này

các lệnh được hỗ trợ:

  1. flash %s : Flash một phân vùng nhất định. Các đối số tùy chọn bao gồm --slot-other, {filename_path}, --apply-vbmeta
  2. update-super : Cập nhật siêu phân vùng
  3. if-wipe : Chạy có điều kiện một số chức năng khác nếu xóa được chỉ định
  4. xóa %s : Xóa một phân vùng nhất định (chỉ có thể sử dụng kết hợp) với if-wipe -> vd. if-wipe erase cache

Khôi phục thiết bị về trạng thái xuất xưởng

Hình ảnh nhà máy dành cho thiết bị Google có sẵn từ Hình ảnh nhà máy dành cho thiết bị Nexus và Pixel . Hình ảnh xuất xưởng của Motorola Xoom được Motorola phân phối trực tiếp.

Giải quyết lỗi từ chối cấp phép

Theo mặc định trên hầu hết các hệ thống Linux, người dùng không có đặc quyền không thể truy cập cổng USB. Nếu bạn thấy lỗi từ chối cấp phép, hãy tham khảo hướng dẫn Thiết lập thiết bị để phát triển của Android Studio.

Nếu ADB đang chạy và không thể kết nối với thiết bị, bạn có thể dừng ADB bằng adb kill-server . Lệnh này khiến ADB khởi động lại với cấu hình mới.