נעילה/ביטול נעילה של טוען האתחול

כברירת מחדל, רוב מכשירי האנדרואיד נשלחים עם טוען אתחול נעול, כלומר המשתמשים לא יכולים להבהב את טוען האתחול או מחיצות המכשיר. במידת הצורך, אתה (ומשתמשי מכשיר עם אפשרויות מפתח מופעלות) יכולים לבטל את נעילת טוען האתחול כדי להבהב תמונות חדשות.

כניסה למטען האתחול

כדי להנפיק פקודות fastboot , עליך להיות במצב טוען האתחול. דרך אחת לעשות זאת היא לשלוח את פקודת adb adb reboot bootloader . טלפונים מסוימים גם מאפשרים לך לאתחל מחדש לתוך טוען האתחול על ידי לחיצה על צירוף מקשים (בדרך כלל הורדת עוצמת הקול) בזמן אתחול המכשיר.

ביטול נעילת טוען האתחול

ברגע שאתה נמצא במצב טוען האתחול, כדי לבטל את נעילת טוען האתחול ולאפשר חידוש של מחיצות, הפעל את פקודת fastboot flashing unlock במכשיר. לאחר ההגדרה, מצב ביטול הנעילה נמשך לאורך אתחולים מחדש.

התקנים צריכים לדחות את פקודת fastboot flashing unlock אלא אם כן get_unlock_ability מוגדרת ל 1 . אם מוגדר ל 0 , המשתמש צריך לאתחל למסך הבית, לפתוח את התפריט Settings > System > Developer options ולהפעיל את אפשרות פתיחת הנעילה של OEM (המגדירה את get_unlock_ability ל 1 ). לאחר ההגדרה, מצב זה נמשך לאורך אתחול מחדש ואיפוס נתוני היצרן.

כאשר נשלחת פקודת fastboot flashing unlock , המכשיר אמור לבקש מהמשתמשים להזהיר אותם שהם עלולים להיתקל בבעיות עם תמונות לא רשמיות. לאחר שהמשתמש יאשר את האזהרה, המכשיר צריך לבצע איפוס לנתוני היצרן כדי למנוע גישה לא מורשית לנתונים. טוען האתחול אמור לאפס את המכשיר גם אם הוא לא מצליח לפרמט אותו מחדש כראוי. רק לאחר איפוס ניתן להגדיר את הדגל המתמשך כך שניתן יהיה להחזיר את המכשיר.

יש לאפס את כל זיכרון ה-RAM שטרם הוחלף במהלך תהליך fastboot flashing unlock . אמצעי זה מונע התקפות הקוראות תוכן RAM שנשאר מהאתחול הקודם. באופן דומה, התקנים לא נעולים צריכים לנקות את זיכרון ה-RAM בכל אתחול (אלא אם זה יוצר עיכוב בלתי מתקבל על הדעת), אך צריכים לעזוב את האזור המשמש ל- ramoops של הקרנל.

נעילת טוען האתחול

כדי לנעול את טוען האתחול ולאפס את המכשיר, הפעל את פקודת fastboot flashing lock במכשיר. התקנים המיועדים לקמעונאות צריכים להישלח במצב נעול (עם get_unlock_ability מחזירה 0 ) כדי להבטיח שתוקפים לא יוכלו לסכן את המכשיר על ידי התקנת מערכת חדשה או תמונת אתחול.

הגדרת מאפייני נעילה/ביטול נעילה

יש להגדיר את המאפיין ro.oem_unlock_supported בזמן הבנייה בהתבסס על האם המכשיר תומך בביטול נעילה מהבהב.

  • אם המכשיר תומך בביטול נעילה מהבהב, הגדר את ro.oem_unlock_supported ל 1 .
  • אם המכשיר אינו תומך בפתיחה מהבהבת, הגדר את ro.oem_unlock_supported ל 0 .

אם ההתקן תומך בביטול נעילה מהבהב, טוען האתחול אמור לציין את מצב הנעילה על ידי הגדרת משתנה שורת הפקודה androidboot.flash.locked ל 1 אם הוא נעול או ל 0 אם אינו נעול. משתנה זה חייב להיות מוגדר ב-bootconfig במקום בשורת הפקודה של הליבה באנדרואיד 12.

עבור מכשירים התומכים ב-dm-verity , השתמש ב- ro.boot.verifiedbootstate כדי להגדיר את הערך של ro.boot.flash.locked ל 0 ; פעולה זו מבטלת את הנעילה של טוען האתחול אם מצב האתחול המאומת כתום.

הגנה על חלקים קריטיים

התקנים צריכים לתמוך בנעילה וביטול נעילה של קטעים קריטיים, המוגדרים ככל הדרוש כדי לאתחל את המכשיר לתוך טוען האתחול. קטעים כאלה עשויים לכלול נתיכים, מחיצות וירטואליות עבור רכזת חיישנים, טוען אתחול שלב ראשון ועוד. כדי לנעול קטעים קריטיים, עליך להשתמש במנגנון שמונע מקוד (קרנל, תמונת שחזור, קוד OTA וכו') שפועל במכשיר לשנות בכוונה כל קטע קריטי. OTAs לא אמורים לעדכן קטעים קריטיים אם המכשיר נמצא במצב קריטי של נעילה.

המעבר ממצב נעול למצב לא נעול צריך לדרוש אינטראקציה פיזית עם המכשיר. אינטראקציה זו דומה להשפעות של הפעלת פקודת fastboot flashing unlock , אך מחייבת את המשתמש ללחוץ על כפתור פיזי במכשיר. מכשירים לא אמורים לאפשר מעבר פרוגרמטי lock critical לביטול unlock critical ללא אינטראקציה פיזית, ומכשירים לא אמורים לשלוח במצב unlock critical .