כיצד לבצע יציאת DIY TWRP לאנדרואיד

, אתה יכול לנסות לעבוד עם עץ קטן יותר, כזה מינימום מניפסט TWRP . עם זאת, יתכנו מצבים שתזדקק ליותר repos ממה שמניפסט זה מאפשר.



הערה עיקרית לפני הידור: אם תוסיף או תשנה דגלים כלשהם, תצטרך לנקות (או לעשות clobber) לפני הידור מחדש, אחרת שינויי הדגל שלך לא ייכללו!

לאחר שיש לך את קוד המקור של TWRP, עלינו לשנות כמה מדגלי הבנייה עבור המכשיר הספציפי שלך. מצא את BoardConfig.mk עבור המכשיר שלך - בדרך כלל זה יימצא ב מכשירים / יצרן / שם קוד (למשל, מכשירים / lge / hammerhead / BoardConfig.mk)



תצורת הלוח צריכה לכלול הגדרות אדריכלות ופלטפורמה - בדרך כלל אלה כבר כלולים אם אתה משתמש בתצורת המכשיר של מישהו אחר. אבל אם יצרת משלך, תצטרך להוסיף אותם. הסיבה לכך היא שבלעדיהם, אתחול ההתאוששות עלול להיפגע והוא פשוט יהבהב את הלוגו של TeamWin על המסך שוב ושוב.



יש לשים דגלים בתחתית BoardConfig.mk, תחת כותרת של #twrp



ל את כל במכשירים, עליך להורות ל- TWRP באיזה נושא להשתמש. משתמשים בדגל TW_THEME במקום בדגל DEVICE_RESOLUTION הישן יותר, כלומר TWRP משתמש כעת בקנה מידה כדי למתוח כל נושא.

האפשרויות שלך הן: portrait_hdpi, portrait_mdpi, landscape_hdpi, landscape_mdpi, and watch_mdpi. למצב פורטרט, קרוב לוודאי שתרצו את ערכת הנושא hdpi של 720 × 1280 ומעלה, אך עבור מכשירי נוף תוכלו להשתמש עם 1280 × 720 ומעלה.

אז החלק של דגל הבנייה + דגל העיצוב שלך צריך להיראות כך:



#twrp

TW_THEME: = דיוקן_הדפי

כמה דגלי בנייה נוספים שתרצו לכלול בסעיף זה (זיכויים לפורומים של XDA):

  • RECOVERY_SDCARD_ON_DATA: = נכון (זה מאפשר טיפול נכון של / נתונים / מדיה במכשירים שיש להם את התיקיה הזו לאחסון (רוב חלת הדבש והתקנים שנשלחו במקור עם ICS כמו Galaxy Nexus). עם זאת, אין צורך בסמל זה עבור מכשירים מסוג זה. אל תגדיר דגל זה וגם אל תכלול הפניות ל- / sdcard, / internal_sd, / internal_sdcard, או / emmc ב- fstab שלך, ואז אנו נניח באופן אוטומטי שהמכשיר משתמש באחסון מדומה.)
  • BOARD_HAS_NO_REAL_SDCARD: = נכון - משבית דברים כמו חלוקת כרטיסי SD ועשוי לחסוך לך מקום אם TWRP אינו מתאים לטענת ההתאוששות שלך
  • TW_NO_BATT_PERCENT: = true - משבית את הצגת אחוז הסוללה עבור מכשירים שאינם תומכים בו כראוי
  • TW_CUSTOM_POWER_BUTTON: = 107 - ממפה אישית את לחצן ההפעלה למסך הנעילה
  • TW_NO_REBOOT_BOOTLOADER: = true - מסיר את כפתור טעינת האתחול מחדש מתפריט האתחול
  • TW_NO_REBOOT_RECOVERY: = true - מסיר את כפתור התאוששות האתחול מתפריט האתחול
  • RECOVERY_TOUCHSCREEN_SWAP_XY: = נכון - מחליף את מיפוי הנגיעות בין ציר X ו- Y
  • RECOVERY_TOUCHSCREEN_FLIP_Y: = נכון - הופך את ערכי מסך המגע של ציר y
  • RECOVERY_TOUCHSCREEN_FLIP_X: = נכון - הופך ערכי מסך מגע של ציר x
  • TWRP_EVENT_LOGGING: = נכון - מאפשר רישום אירועי מגע בכדי לעזור באגים בבעיות במסך המגע (אל תשאיר את זה לפעולה לשחרור - זה ימלא את קובץ היומן שלך מהר מאוד)
  • BOARD_HAS_FLIPPED_SCREEN: = נכון - הופך את המסך הפוך למסכים שהותקנו הפוך

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

באמצעות Recovery.Fstab

ל- TWRP 2.5 ומעלה יש תמיכה בתכונות.fstab התאוששות חדשות - בעיקר היכולת להרחיב את פונקציות הגיבוי / השחזור של TWRP. אינך צריך להוסיף דגלי fstab מכיוון שרוב המחיצות יטופלו באופן אוטומטי.

TWRP תומך רק ב- v2 fstabs בגרסה 3.2.0 ומעלה - בגרסאות ישנות יותר של TWRP תצטרך להשתמש בפורמט הישן של fstab. הנה דוגמה ל- TWRP fstab עבור גלקסי S4:

כדי למקסם את התאימות עם עץ הבנייה הספציפי שלך, תוכל ליצור twrp.fstab ולהשתמש ב- PRODUCT_COPY_FILES כדי למקם ב> etc> twrp.fstab.

כאשר TWRP יופעל ומוצא את twrp.fstab ברמדיסק, הוא ישנה את שמו לשם> וכו '> recovery.fstab.bak - בעצם הוא מחליף את ה- fstab מהמכשיר שלך עם ה- TWRP fstab, המרחיב את התאימות.

קוד לדוגמא:

PRODUCT_COPY_FILES + = מכשיר / lge / hammerhead / twrp.fstab: התאוששות> root> וכו '> twrp.fstab

ה- fstab ב- TWRP יכול להכיל כמה 'דגלים' לכל מחיצה הרשומה ב- fstab.

דגלים אלה מתווספים עד הסוף של רשימת המחיצות ב- fstab, מופרדת על ידי רווח לבן / רווחים / כרטיסיות. הדגל ישפיע רק על מחיצה זו, אך על אחרים. דגלים מופרדים באמצעות נקודה-פסיק. הנה קוד לדוגמא:

אז בואו נבחן את זה טיפין טיפין. הדגל כאן ייתן שם תצוגה של 'Micro SDcard'. דגל wipeingui יהפוך מחיצה זו לזמינה לניגוב בתפריט 'מחיקה מתקדמת'. הדגל הניתן להסרה מציין שלא תמיד קיימת מחיצה זו, מה שימנע הצגת שגיאות הרכבה.

רשימה מלאה של דגלים (זיכויים ל- TeamWin) :

  • נשלף - מציין כי ייתכן שהמחיצה אינה קיימת ומונעת הצגת שגיאות הרכבה במהלך האתחול
  • אִחסוּן - מציין כי המחיצה יכולה לשמש כאחסון מה שהופך את המחיצה לזמינה כאחסון לגיבוי, שחזור, התקנות zip וכו '.
  • אחסון הגדרות - יש להגדיר רק מחיצה אחת כאחסון הגדרות, מחיצה זו משמשת כמיקום לאחסון קובץ ההגדרות של TWRP
  • יכול להיות מותר - מציין כי המחיקה ניתנת לניגוב על ידי מערכת ה- Back-end, אך ייתכן שלא תופיע ברשימת הממשק הממשק לצורך ניגוב על ידי המשתמש.
  • userrmrf - עוקף את סוג הנגב הרגיל של ניגוב ומאפשר למחוק את המחיצה רק באמצעות הפקודה rm -rf
  • גיבוי = - חייב להיות מוצלח על ידי סימן השווה, לכן גיבוי = 1 או גיבוי = 0, 1 מציין שניתן לרשום את המחיצה ברשימת הגיבוי / שחזור בעוד 0 מבטיח כי מחיצה זו לא תופיע ברשימת הגיבויים.
  • wipeingui - גורם למחיצה להופיע ב- GUI כדי לאפשר למשתמש לבחור אותה לניגוב בתפריט הנגב המתקדם
  • מחק את הגדרת גורם - המחיקה תימחק במהלך איפוס למפעל
  • בלאקיד - blkid משמש לקביעת איזו מערכת קבצים נמצאת בשימוש על ידי TWRP, דגל זה יגרום ל- TWRP לדלג / להתעלם מתוצאות ה- blkid ולהשתמש במערכת הקבצים שצוינה ב- fstab בלבד
  • גרסת שיבוץ אחזק - גורם ל- TWRP לשמור על קובץ ה- .layoutversion ב- / data במכשירים כמו Sony Xperia S אשר משתמשים במידע / data / media אך עדיין יש מחיצה נפרדת / sdcard
  • סימלינק = - גורם ל- TWRP להריץ פקודת הרכבה נוספת בעת הרכבת המחיצה, המשמשת בדרך כלל עם / data / media ליצירת / sdcard
  • לְהַצִיג = - מגדיר שם תצוגה למחיצה לרישום בממשק המשתמש
  • שם החנות = - מגדיר שם אחסון למחיצה לרישום ברשימת האחסון של ממשק המשתמש
  • שם גיבוי = - מגדיר שם גיבוי למחיצה לרישום ברשימת הגיבוי / שחזור GUI
    אורך = - משמש בדרך כלל לשמירת מקום ריק בסוף מחיצת / נתונים לאחסון מפתח הפענוח כאשר קיימת הצפנת המכשירים המלאה של Android, אי הגדרה זו עלולה להוביל לחוסר יכולת להצפין את המכשיר
  • canencryptbackup = - 1 או 0 להפעלה / השבתה, גורם ל- TWRP להצפין את הגיבוי של מחיצה זו אם המשתמש בוחר בהצפנה (חל רק על גיבויי זפת, ולא על תמונות)
  • userdataencryptbackup = - 1 או 0 להפעלה / השבתה, גורם ל- TWRP להצפין רק את חלקי הנתונים של מחיצה זו, תת-קבצים מסוימים כמו / data / app לא היו מוצפנים כדי לחסוך זמן
  • חלוקת משנה של = - צריך להצליח על ידי סימן השווה ודרך המחיצה שהיא מחלקת משנה של. תתייחסו לחלוקה כאל 'חלק' מהמחיצה הראשית, כך למשל, TWRP הופכת / נתונים אוטומטית לחלוקה משנה של / data. המשמעות היא ש- / data-data לא יופיעו ברישומי ה- GUI, אך / data-data יימחקו, יגובו, ישוחזרו, יותקנו ויבוטלו בכל פעם שפעולות אלה יבוצעו ב- / data.

דוגמה טובה לשימוש במחיצות משנה היא מחיצות ה- 3x efs ב- LG Optimus G:

זה מגבש את כל 3 המחיצות לערך 'EFS' יחיד בממשק המשתמש של TWRP המאפשר גיבוי ושחזור של שלושתן יחד תחת ערך יחיד.

עם TWRP 3.2.0 ומעלה המשתמש ב- V2 Fstab, אתה לא צריך להוסיף שום דגלי בנייה . התמיכה ב- V2 Fstab היא אוטומטית. V2 Fstab תומך גם בתווים כלליים (הסמל *) שיכולים להיות שימושיים עבור USB OTG וכרטיסי מיקרו SD עם מספר מחיצות. אתה יכול גם להמשיך להשתמש בפורמט V1 Fstab, וניתן לחלוטין להשתמש בשני V1 ו- V2 באותה Fstab.

לדוגמא, הנה קו V1 Fstab עם תו כללי המיועד ל- USB OTG:

הנה קו V2 Fstab לאותו מכשיר שמשיג את אותה התוצאה:

בנוסף אתה יכול לכלול twrp.flags וכו 'המשתמשים בפורמט V1 Fstab, וניתן להשתמש בהם כדי להשלים את ה- V2 Fstab עם דגלי TWRP, מחיצות נוספות שאינן כלולות ב- V2 Fstab, או הגדרות עוקפות ב- V2 Fstab.

לדוגמה, מכשיר Huawei עשוי להכיל את ה- f2 של V2 בשחזור וכו '.

ייתכן שיהיו בו גם הדגלים הבאים:

אז הנה, שתי השורות הראשונות ב- TWRP.Flags יוסיפו את מחיצות האתחול והשחזור, אשר לא היו נוכחים ב- V2 Fstab. לאחר מכן, השורה / cust ב- TWRP.flags תנחה את TWRP לאפשר למשתמש הקצה לגבות את המחיצה (cust) ולתת לה שם תצוגה.

המחיצה / misc קיימת ב- twrp.flags, ומחיצת / oeminfo מורה ל- TWRP לאפשר גם גיבוי ולתת לו שם תצוגה.

אנו זקוקים לקו / נתונים מכיוון שמכשירי Huawei רבים מוצפנים, אך משתמשים בבינאריות מיוחדות של Huawei - לכן אנו משתמשים בבינאריות Huawei כדי לפענח את המכשיר באופן אוטומטי במצב שחזור. אז הנה / שורת הנתונים תנחה את TWRP להשתמש ב- / dev / block / dm -0, ולא / dev / block / bootdevice / by-name / userdata, המשמש בדרך כלל להרכבה 'נכונה'.

לבסוף יש / system_image, כך ש- TWRP יכלול אפשרות ליצור תמונת מערכת בתפריטי הגיבוי והשחזור.

ה- TeamWin הרשמי github צריך להכיל גם את עצי ההתקנים האחרונים לדוגמא למכשירים שיש להם יציאת TWRP רשמית. ניתן למצוא את ה- github של TeamWin כאן .

לאחר סנכרון Omni או CM, והגדרת את דגלי ה- TWRP שלך, עליך לבנות מקור ./build/envsetup.sh

ותרצה 'לארוחת צהריים' את המכשיר, כך שתוכל לעשות משהו כמו 'ארוחת צהריים omni_hammerhead.eng'.

לאחר ארוחת צהריים מוצלחת, רוב המכשירים ישתמשו בפקודה זו:

עליך להחליף את ה- # in –j # עם מספר הליבות +1. אז אם יש לך ליבה כפולה זה –j3, quadcore יהיה –j5 וכו 'החלף את ה- # עם מספר הליבות +1, אז אם יש לך ליבה כפולה זה -j3 וליבה מרובעת הופכת ל- -j5 וכו'.

כמו כן, מכשירי סמסונג טיפוסיים ידרשו זאת:

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

נכון לעכשיו, אתה צריך להרכיב TWRP למכשיר שלך ואני מקווה שזה עובד בסביבת אמולטור. אתה תמיד צריך לבדוק תחילה את יציאת ה- TWRP שלך בסביבת אמולטור, כך שלא תסתכן בחפירת המכשיר שלך.
הורד קבוצה זו של קבצי תצורת ההתקן.

ערוך תמונת שחזור באמצעות קבצי ההתקן האלה. ב- SDK של Android, לחץ על כלים -> נהל AVDs. לחץ על חדש. הגדר אותו כדלקמן:

לאחר מכן לחץ על אישור.

ברגע שיש לך את ה- AVD ואת תמונת ההתאוששות שלך, אתה יכול לאתחל את TWRP באמולטור על ידי גלישה לתיקיית Android-sdk / tools והפעלת פקודה זו:

שים לב ש- ADB לא עובד מייד. כ -10 עד 15 שניות לאחר סיום האתחול של TWRP, ADB יופעל ברשת. אנו מפעילים את ADB באמצעות init.rc כך שגם אם TWRP לא מצליח לאתחל עקב שגיאת קוד כלשהי שביצעת, ADB עדיין אמור לעבוד. תהנה!

מכשירי TWRP ו- A / B (זיכויים ל- TeamWin):

מנקודת מבט של TWRP, מכשירי A / B אינם שונים בהרבה ממכשירים רגילים, אך נראה שמפתחים ביישנים לעבוד על מכשירים אלה. אני אנסה לשפוך מעט אור על הנושא הזה ואני מקווה שזה ישמש כמדריך להעברת TWRP למכשירי A / B.

ראשית, בואו להבין מהו מכשיר A / B וכיצד הוא שונה. במכשירי A / B יש כפילויות של מחיצות רבות במכשיר. בהתקן A / B יש 2x מחיצות מערכת, 2x מחיצות אתחול, 2x מחיצות ספק, 2x מחיצות מודם / קושחה וכו '. רק חריץ אחד נמצא בשימוש בכל פעם. במהלך האתחול המוקדם, השלבים הראשונים של מטען האתחול קוראים כמות קטנה של נתונים הנקראים BCB או Bootloader Control Block ומחליטים אם לאתחל את מחיצות A או מחיצות B. כאשר זמין עדכון OTA, הנתונים מהחריץ הפעיל מועתקים מהחריץ הלא פעיל ומתוקנים / מתעדכנים. לדוגמא, אם אתה נמצא כעת בחריץ A, המכשיר שלך יוריד את העדכון ועתיק את מחיצת המערכת הקיימת מחריץ A ותיקון / עדכון עם העדכונים החדשים לחריץ B. לאחר סיום ההעתקה והעדכון, ה- BCB מתעדכן והמכשיר יופעל מחדש באמצעות חריץ B. בפעם הבאה שיש עדכון זמין, מחיצת המערכת בחריץ B מועתקת לחריץ A ומתעדכנת, ה- BCB מתעדכן ואנחנו מבצעים אתחול מחדש לחריץ A. בעת הצגת מחיצות במכשיר, תראה משהו כזה:

שים לב למחיצות האתחול הכפולות, המערכת והספק ברשימה שלעיל, אך רק מחיצת userdata אחת.

אמנם מבחינה טכנית אין דרישה שאני מודע לה, אך לכל מכשירי ה- A / B שנשלחו עד כה אין מחיצת שחזור נפרדת. במקום זאת, תמונת האתחול מכילה את ההתאוששות ברמדיסק שלה. הדבר החשוב הוא לדעת שתמונת האתחול מכילה כעת גם את ההתאוששות. לשם השלמה, מחיצת המערכת היא מערכת קבצי שורש מלאה. במהלך האתחול, אם נאמר לליבה לאתחל להתאוששות, הוא יחלץ את ה- ramdisk במחיצת האתחול. אם מטען האתחול לא אומר את הגרעין לאתחל להתאוששות, הגרעין ירכיב את מחיצת המערכת המתאימה (A או B) מכיוון שמחיצת המערכת היא מערכת קבצי שורש מלאה. משמעות הדבר היא כי מחיצת המערכת בהתקנים אלה מותקנת על / במקום ל- / system ומחיצת המערכת מכילה את כל הקבצים שבדרך כלל היו נמצאים ב- ramdisk של תמונת האתחול ובתיקיית משנה / system.

מנקודת מבט של TWRP, ישנם 3 דברים שאתה צריך לעשות עבור מכשיר A / B. ראשית, עליך להגדיר

קוד:

לבסוף, ברגע שתיכנס ל- TWRP, סביר להניח שתרצה לוודא כי bootctl hal-info מגיב כהלכה ללא שגיאות. בדרך כלל הבינארי bootctl דורש ספרייה קניינית או אפילו כמה שירותים כדי לעבוד כראוי. אם bootctl לא עובד כראוי, גם לא תוכל להחליף חריצים בתוך TWRP כראוי.

בנוסף להגדרה

קוד:

AB_OTA_UPDATER: = נכון

ייתכן שתרצה גם להגדיר:

קוד:

BOARD_USES_RECOVERY_AS_BOOT: = נכון

BOARD_BUILD_SYSTEM_ROOT_IMAGE: = נכון

אם אתה מגדיר

קוד:

BOARD_USES_RECOVERY_AS_BOOT: = נכון

ואז להפוך את ההחלמה תמונה לא תעבוד יותר ובמקום זה תצטרך לבצע אתחול. אני לא ממליץ להגדיר את אחד הדגלים האלה עבור עצים לבנות TWRP בלבד. דגלים אלה יידרשו ככל הנראה עבור מפתחים שבונים ROM מלאים למכשירי A / B.

התקנת / מהבהב TWRP במכשירי A / B:

מכיוון שלכל מכשירי A / B הידועים אין מחיצת שחזור נפרדת, בסופו של דבר תצטרך להבהב את TWRP למחיצת האתחול. בפיקסל 1 ו -2 אנו משתמשים באתחול מהיר כדי לאתחל את TWRP באופן זמני מבלי להבהב את ה- TWRP. לאחר מכן אנו מספקים מיקוד כדי לאפשר למשתמשים להבהב TWRP לשני החריצים. אתה יכול להוריד את אחד הרוכסנים האלה מאתרנו ולעדכן את ה- zip לפי הצורך כדי לתמוך במכשירים שלך. בסופו של דבר נוסיף כלים ל- TWRP כדי לאפשר למשתמשים להבהב התאוששות במכשירים אלה מבלי להזדקק לשימוש ברוכסנים.

לאחרונה עבדתי בטלפון Razer. טלפון Razer למרבה הצער אינו תומך באתחול מהיר. במקום זאת, המשתמשים צריכים לקבוע באמצעותם את חריץ האתחול הפעיל שלהם

קוד:

להיכנס ל- TWRP. ברגע שהם ב- TWRP הם יכולים לעבור לדף האתחול ולחזור לחריץ הפעיל במקור, לבצע גיבוי ואז להתקין את TWRP. השימוש בחריץ הלא פעיל מאפשר למשתמשים לקבל גיבוי טוב ולא שונה של המכשיר שלהם לפני התקנת TWRP.

הערות נוספות:

אם תרצה לקבל TWRP נתמך רשמית עבור המכשיר שלך כדי שניתן יהיה להתקין אותה אוטומטית עם אפליקציית TWRP, ואתה באמת רוצה לעשות זאת כדי שבעלי אחרים של אותו מכשיר יוכלו ליהנות מתמיכה רשמית של TWRP וזה הדבר הנחמד לעשות, יהיה עליך לשלוח את המידע הבא אל TeamWin:

  1. קבצי תצורת התקן להרכבת TWRP מהמקור למכשיר שלך - אין לארוז מחדש התאוששות.ימג ביד , הם צריכים לאסוף את זה מהמקור.
  2. לאחר ש- TeamWin יבנה עותק של TWRP, הם ישלחו אותו אליכם לאימות - לאחר שתאמתו אותו, TeamWin תבנה תמונה עובדת למכשיר שלכם, ותוסיף אותו לאפליקציית TWRP הרשמית.
13 דקות קריאה