כיצד לבנות ROM מותאם אישית מפרויקט קוד פתוח של Android

מָקוֹר ידוע בשם AOSP (פרויקט קוד פתוח של Android) .



עכשיו העניין ב- AOSP הוא שקוד המקור הטהור לא כולל קנייני חומרה ספציפיים למכשירים. במונחים של הדיוט, חומרה כמו המצלמה וה- GPU שלך לא יעבדו 'מחוץ לקופסה' בעת פיתוח עם AOSP. למעשה, המכשיר שלך אפילו לא יאתחל ללא קבצים בינאריים אלה של החומרה.

אם אתה מפתח טלפון ממותג של Google (Pixel, Nexus וכו ') תוכל למצוא את קבצי הבינאריה של החומרה ישירות מגוגל , ומדריך זה יוביל אותך להשגתם ולבנייתם ​​ב- ROM שלך. עם זאת, אם אתה מפתח ROM עבור טלפון מותג (סוני, סמסונג וכו ') ... ובכן, ברך את לבך, כי אתה בנסיעה.



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



מרכז שחרור קוד פתוח של סמסונג
עולם המפתחים של סוני
תמיכה של לנובו
מרכז שחרור קוד פתוח של Huawei
מפתחי מוטורולה



עם זה מהדרך, בואו נמשיך בהנחה שאנחנו בונים ROM לחוויית אנדרואיד הבסיסית ביותר של וניל, למכשיר Google Pixel. עם הידע הזה בחגורה, תוכל להסתעף לבד ולהתחיל לפתח גרסאות מותאמות אישית של ה- ROM של היצרן הספציפי.

הדרישות למדריך זה:

  • פרויקט קוד פתוח של Android
  • טלפון פיקסל XL אוֹ אמולטור אנדרואיד עבור לינוקס
  • מערכת הפעלה לינוקס של 64 סיביות - אובונטו אוֹ מנטה לינוקס הם ההפצות הכי ידידותיות למתחילים, ואילו BBQLinux פותח במיוחד מתוך מחשבה על מפתחי אנדרואיד.
  • פִּיתוֹן
  • מחשב בשרני (קומפילציה של קוד לוקח הרבה זיכרון ומקום!)

הגדרת סביבת הבניין שלך

נתחיל בהגדרת אמולטור האנדרואיד במכונת הלינוקס שלך. בין אם יש לכם מכשיר Google Pixel XL ובין אם לאו, תמיד הכי בטוח לנסות את ה- ROM החדש שלכם באמולטור של Android לפני מהבהב למכשיר שלך. הפייבוריט האישי שלי הוא Genymotion, אז אלווה אותך בהתקנת האמולטור המסוים הזה. עם זאת, תוכלו גם לבדוק את המדריך הזה ' אמולטורי אנדרואיד הטובים ביותר ”, מכיוון שלרובם יש גם תאימות לינוקס.

עבור אל אתר Genymotion , רשום חשבון, אמת אותו באמצעות דואר אלקטרוני והורד את ההפעלה לשולחן העבודה של לינוקס.



כעת פתח מסוף לינוקס והקלד:

Chmod + x genymotion-xxxxx.bin (החלף את xxxx במספר הגרסה בשם הקובץ)
./genymotion-xxxxxx.bin

ללחוץ AND כדי ליצור את ספריית Genymotion. כעת הקלד את הטרמינל:

cd genymotion && ./genymotion

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

בואו נגדיר את פייתון:

$ apt-get להתקין פיתון

כעת עלינו להתקין את ערכת הפיתוח של Java במחשב הלינוקס שלך. פתח את מסוף Linux והקלד את הפקודות הבאות:

עדכון $ sudo apt-get
$ sudo apt-get להתקין openjdk-8-jdk

כעת תצטרך להגדיר את מערכת לינוקס כך שתאפשר גישה להתקני USB. הפעל את הקוד הבא במסוף לינוקס:

פעולה זו תוריד את הקובץ הנדרש 51-android.txt המאפשר גישה למכשיר ה- USB הנ'ל. פתח את קובץ ה- .txt ושנה אותו כך שיכלול את שם המשתמש שלך ב- Linux, ואז מקם את קובץ ה- txt במיקום הבא: (כמו משתמש שורש ). כעת חבר את המכשיר למחשב באמצעות USB כדי שהכללים החדשים ייכנסו לתוקף באופן אוטומטי.

מוריד את מקור אנדרואיד

ה- AOSP מתארח ב- Git, לכן אנו נשתמש בכלי בשם Repo כדי לתקשר עם Git.

ראשית עלינו להתקין תיקיית / bin בספריית הבית שלך. הקלד את הפקודות הבאות למסוף לינוקס:

$ mkdir ~ / bin
$ PATH = ~ / bin: $ PATH

כעת נוריד את הכלי Repo, אז הקלד למסוף Linux:

$ curl https://storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo
$ chmod a + x ~ / bin / repo

לאחר התקנת Repo, עלינו ליצור כעת ספריה ריקה שתחזיק את קבצי העבודה שלך. אז הקלד את זה למסוף לינוקס:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

כעת נגדיר את Git עם שמך וכתובת הדוא'ל שלך - השתמש בכתובת Gmail שאתה בודק באופן קבוע , אחרת לא תוכל להשתמש בכלי בדיקת הקוד של חריט.

$ git config –global user.name 'השם שלך'
$ git config – global user.email
you@gmail.com

עכשיו נגיד לריפו לשלוף את המניפסט האחרון של AOSP מ- Git:

init $ repo -u https://android.googlesource.com/platform/manifest

אם תעשה זאת בהצלחה, תקבל הודעה על כך ש- Repo בוצעה מאותחל בספריית העבודה שלך. תוכלו למצוא גם ' .repo ” בספריית הלקוח. אז עכשיו אנו מורידים את עץ המקור של Android עם:

סנכרון ריפו $

בניית מקור אנדרואיד

זה המקום בו בינאריות החומרה שהוזכרו בתחילת המדריך הזה נכנסות לפעולה. בואו ניגש אל ה- מנהלי התקן AOSP עמוד והורד את הבינאריות של Pixel XL לאנדרואיד 7.1.0 (NDE63P). אתה רוצה להוריד גם את תמונת הספק וגם את רכיבי החומרה. אלה מגיעים כארכיונים דחוסים, לכן חילצו אותם לשולחן העבודה והפעילו את סקריפט החילוץ העצמי מתיקיית השורש. בחר להתקין את הבינאריות לשורש ה- WORKING_DIRECTORY שיצרנו קודם.

כעת הקלד למסוף לינוקס שלך:

$ לעשות clobber
$ source build / envsetup.sh

עכשיו נבחר את היעד לבנות, אז הקלד:

ארוחת צהריים $ aosp_marlin-userdebug
$ setpaths
$ make –j4

שם, כעת 'בנינו' אנדרואיד ROM מהמקור. אז בואו לבדוק את זה באמולטור, על ידי הקלדה למסוף:

אמולטור $

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

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

הישאר מעודכן, מכיוון שהחלק השני של מדריך זה יעבור דרך הוספת גופנים, ערכות נושא ואנימציית אתחול ל- ROM שלך!

5 דקות לקרוא