این صفحه جزئیاتی را برای اجرای ساختها در دستگاههای خاص ارائه میکند. این جزئیات اطلاعات موجود در ساخت اندروید را تکمیل می کند.
ساخت fastboot و adb
اگر از قبل fastboot
و adb
ندارید، می توانید آنها را با سیستم ساخت معمولی بسازید. از دستورالعمل های ساخت اندروید استفاده کنید و دستور main make
را با این دستور جایگزین کنید:
make fastboot adb
برای جزئیات بیشتر در مورد Android Debug Bridge (adb) به پل اشکال زدایی اندروید (adb) مراجعه کنید.
در حالت فست بوت بوت شوید
وقتی دستگاهی در حالت fastboot
فست بوت است می توانید فلش بزنید. برای وارد شدن به حالت fastboot
زمانی که دستگاهی در حال بوت سرد است، از ترکیب کلیدهای فهرست شده در کلیدهای ترکیبی Fastboot استفاده کنید.
همچنین می توانید از دستور adb reboot bootloader
برای راه اندازی مجدد مستقیم به بوت لودر استفاده کنید. برای دستورالعمل های کامل به دستورالعمل های چشمک زن مراجعه کنید.
بوت لودر را باز کنید
فقط در صورتی می توانید یک سیستم سفارشی را فلش کنید که بوت لودر اجازه دهد. البته توجه داشته باشید که بوت لودر به طور پیش فرض قفل است. شما می توانید بوت لودر را باز کنید، اما با انجام این کار اطلاعات کاربر به دلایل حفظ حریم خصوصی حذف می شود. پس از باز کردن قفل، تمام داده های دستگاه پاک می شود، یعنی هم داده های برنامه خصوصی و هم داده های مشترک قابل دسترسی از طریق USB (از جمله عکس ها و فیلم ها). قبل از تلاش برای باز کردن قفل بوت لودر، از فایل های مهم موجود در دستگاه نسخه پشتیبان تهیه کنید.
فقط یک بار باید بوت لودر را باز کنید و در صورت لزوم می توانید دوباره آن را قفل کنید.
قفل دستگاه های اخیر را باز کنید
همه دستگاههای Nexus و Pixel که از سال ۲۰۱۴ عرضه شدهاند (از Nexus 6 و Nexus 9 شروع میشوند) دارای حفاظت بازنشانی کارخانه هستند و برای باز کردن قفل بوتلودر به یک فرآیند چند مرحلهای نیاز دارند.
- برای فعال کردن قفل OEM در دستگاه:
- در تنظیمات، روی درباره تلفن ضربه بزنید، سپس روی شماره ساخت هفت بار ضربه بزنید.
- وقتی پیام You are now a developer را می بینید! ، روی دکمه برگشت ضربه بزنید.
- در تنظیمات، روی System ضربه بزنید، سپس روی Developer options ضربه بزنید و باز کردن قفل OEM و اشکال زدایی USB را فعال کنید. (اگر باز کردن قفل OEM غیرفعال است، به اینترنت وصل شوید تا دستگاه بتواند حداقل یک بار بررسی کند. اگر غیرفعال بماند، ممکن است سیم کارت دستگاه شما توسط شرکت مخابراتی شما قفل شده باشد و بوت لودر باز نشود.)
- در بوت لودر راه اندازی مجدد کنید و
fastboot
برای باز کردن قفل آن استفاده کنید.- برای دستگاه های جدیدتر (2015 و بالاتر):
fastboot flashing unlock
- برای دستگاه های قدیمی تر (2014 و پایین تر):
fastboot oem unlock
- برای دستگاه های جدیدتر (2015 و بالاتر):
- باز کردن قفل روی صفحه را تأیید کنید.
بوت لودر را دوباره قفل کنید
برای قفل مجدد بوت لودر:
- برای دستگاه های جدیدتر (2015 و بالاتر):
fastboot flashing lock
- برای دستگاه های قدیمی تر (2014 و پایین تر):
fastboot oem lock
از حالت های قفل فلاش استفاده کنید
API سیستم getFlashLockState()
وضعیت بوت لودر را منتقل می کند و API سیستم PersistentDataBlockManager.getFlashLockState()
وضعیت قفل بوت لودر را در دستگاه های سازگار برمی گرداند.
ارزش برگشتی | شرایط |
---|---|
FLASH_LOCK_UNKNOWN | فقط توسط دستگاههایی که به Android 7.x یا بالاتر ارتقا یافتهاند که قبلاً از تغییرات بوتلودر مورد نیاز برای دریافت وضعیت قفل فلاش پشتیبانی نمیکردند، در صورتی که از قابلیت قفل/باز کردن چشمک زن پشتیبانی میکردند، بازگردانده میشد.
|
FLASH_LOCK_LOCKED | توسط هر دستگاهی که از قفل/بازگشایی چشمک زن پشتیبانی نمی کند (یعنی دستگاه همیشه قفل است)، یا هر دستگاهی که از قفل/بازکردن چشمک زن پشتیبانی می کند و در حالت قفل است، برگردانده می شود. |
FLASH_LOCK_UNLOCKED | توسط هر دستگاهی که از قفل/باز کردن قفل چشمک زن پشتیبانی می کند و در حالت قفل باز است بازگردانده می شود. |
سازندگان باید مقادیر بازگردانده شده توسط دستگاههای دارای بوت لودر قفل و قفل را آزمایش کنند. برای مثال، پروژه منبع باز Android (AOSP) حاوی یک پیاده سازی مرجع است که مقداری را بر اساس ویژگی boot 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 |
Pixel 4a 5G | برامبل | aosp_bramble-userdebug |
پیکسل 4a | خورشید ماهی | aosp_sunfish-userdebug |
پیکسل 4 ایکس ال | مرجان | aosp_coral-userdebug |
پیکسل 4 | شعله | aosp_flame-userdebug |
Pixel 3a XL | بونیتو | aosp_bonito-userdebug |
پیکسل 3a | سارگو | aosp_sargo-userdebug |
Pixel 3 XL | متقاطع | aosp_crosshatch-userdebug |
پیکسل 3 | خط آبی | aosp_blueline-userdebug |
Pixel 2 XL | تایمن | aosp_taimen-userdebug |
پیکسل 2 | چشم دیواری | aosp_walleye-userdebug |
پیکسل XL | مارلین | aosp_marlin-userdebug |
پیکسل | ماهی بادبانی | aosp_sailfish-userdebug |
HiKey | پیاده روی | hikey-userdebug |
Nexus 6P | ماهی گیر | aosp_angler-userdebug |
Nexus 5X | کله گاو | aosp_bullhead-userdebug |
Nexus 6 | شامو | aosp_shamu-userdebug |
Nexus Player | فوگو | aosp_fugu-userdebug |
Nexus 9 | ولانتیس (دست انداز) | aosp_flounder-userdebug |
Nexus 5 (GSM/LTE) | سر چکش | aosp_hammerhead-userdebug |
Nexus 7 (Wi-Fi) | تیغ (flo) | aosp_flo-userdebug |
Nexus 7 (موبایل) | رازرگ (دب) | aosp_deb-userdebug |
Nexus 10 | مانتارای (مانتا) | full_manta-userdebug |
نکسوس 4 | اوکام (ماکو) | full_mako-userdebug |
Nexus 7 (Wi-Fi) | ناکاسی (گروهی) | full_grouper-userdebug |
Nexus 7 (موبایل) | ناکاسیگ (تیلاپیا) | full_tilapia-userdebug |
Galaxy Nexus (GSM/HSPA+) | یاکجو (ماگورو) | full_maguro-userdebug |
Galaxy Nexus (Verizon) | mysid (toro) | √aosp_toro-userdebug |
Galaxy Nexus (تجربی) | mysidspr (toroplus) | aosp_toroplus-userdebug |
Motorola Xoom (وای فای ایالات متحده) | wingray | full_wingray-userdebug |
Nexus S | سوجو (کرسپو) | full_crespo-userdebug |
Nexus S 4G | سوجوس (crespo4g) | full_crespo4g-userdebug |
فلش کردن یک دستگاه
شما می توانید کل سیستم اندروید را در یک دستور فلش کنید. با انجام این کار تأیید می کند که سیستمی که فلش می شود با بوت لودر و رادیوی نصب شده سازگار است، بوت، بازیابی و پارتیشن های سیستم را با هم می نویسد، سپس سیستم را راه اندازی مجدد می کند. فلش کردن همچنین تمام داده های کاربر را پاک می کند، مانند fastboot oem unlock
.
برای فلش کردن دستگاه:
- فایل تصویر را در دایرکتوری خودش از حالت فشرده خارج کنید.
- متغیر محیطی
ANDROID_PRODUCT_OUT
را طوری تنظیم کنید که به همان دایرکتوری استفاده شده در مرحله 1 اشاره کند. - با نگه داشتن کلید ترکیبی مناسب در هنگام بوت یا با استفاده از دستور زیر، دستگاه را در حالت
fastboot
قرار دهید:adb reboot bootloader
- پس از اینکه دستگاه در حالت فست بوت قرار گرفت، اجرا کنید:
fastboot flashall -w
گزینه-w
پارتیشن/data
را روی دستگاه پاک می کند. این برای اولین بار مفید است که یک دستگاه خاص را فلش کنید، اما در غیر این صورت غیر ضروری است.
تنظیمات فلش
دستورالعملهای Fastboot در مصنوعی به نام fastboot-info.txt که در $ANDROID_PRODUCT_OUT/*
این لیست سند .txt از وظایفی که برای اجرا کردن fastboot وجود دارد و میتوان از طریق m fastboot_info
دوباره تولید کرد، بیان شده است. منطق فلش سفارشی را می توان با اصلاح این فایل معرفی کرد
دستورات پشتیبانی شده:
- فلش %s : یک پارتیشن مشخص را فلش کنید. آرگومان های اختیاری عبارتند از
--slot-other, {filename_path}, --apply-vbmeta
- update-super : پارتیشن فوق العاده را به روز می کند
- if-wipe : اگر wipe مشخص شده باشد، به صورت مشروط برخی از عملکردهای دیگر را اجرا کنید
- erase %s : پاک کردن یک پارتیشن داده شده (فقط می تواند به همراه استفاده شود) با if-wipe -> به عنوان مثال.
if-wipe erase cache
دستگاه ها را به حالت کارخانه بازگردانید
تصاویر کارخانه برای دستگاههای Google از Factory Images برای Nexus و Pixel Devices در دسترس هستند. تصاویر کارخانه موتورولا Xoom مستقیماً توسط موتورولا توزیع می شود.
خطاهای مجوز رد شده را حل کنید
به طور پیش فرض در اکثر سیستم های لینوکس، کاربران غیرمجاز نمی توانند به پورت های USB دسترسی داشته باشند. اگر خطای رد مجوز را مشاهده کردید، به دستورالعملهای Android Studio برای راهاندازی دستگاه برای توسعه مراجعه کنید.
اگر adb قبلاً در حال اجرا بود و نمیتوانید به دستگاه متصل شوید، میتوانید adb را با adb kill-server
متوقف کنید. این دستور باعث می شود که adb با پیکربندی جدید راه اندازی مجدد شود.