كيفية إنشاء ROM مخصص من مشروع Android مفتوح المصدر

مصدر المعروف باسم AOSP (مشروع Android مفتوح المصدر) .



الآن الشيء المتعلق بـ AOSP هو شفرة المصدر الخالصة لا يشمل خصائص الأجهزة الخاصة بالجهاز. من منظور الشخص العادي ، لن تعمل الأجهزة مثل الكاميرا ووحدة معالجة الرسومات 'خارج الصندوق' عند التطوير باستخدام AOSP. في الواقع ، لن يتم تشغيل جهازك بدون ثنائيات الأجهزة هذه.

إذا كنت تعمل على تطوير هاتف يحمل علامة Google التجارية (Pixel و Nexus وما إلى ذلك) ، فيمكنك العثور على ثنائيات الأجهزة مباشرة من جوجل ، وسيرشدك هذا الدليل خلال عملية الحصول عليها وبناءها في ذاكرة القراءة فقط. ومع ذلك ، إذا كنت تطور ذاكرة قراءة فقط (ROM) لهاتف ذي علامة تجارية (Sony ، Samsung ، إلخ) ... حسنًا ، بارك الله في قلبك ، لأنك في جولة.



بعض يمتلك المصنعون مشاريعهم مفتوحة المصدر أو يطلقون أدوات تطوير للمطورين المحتملين ، بينما يحتفظ المصنعون الآخرون بغطاء محكم على أكواد الملكية الخاصة بهم. فيما يلي قائمة مختصرة بالمشاريع مفتوحة المصدر من أشهر الشركات المصنعة:



مركز إصدار سامسونج مفتوح المصدر
عالم مطوري سوني
دعم Lenovo
مركز الإصدار المفتوح المصدر من Huawei
مطورو موتورولا



مع هذا بعيدًا ، دعنا نواصل على افتراض أننا نبني ROM لأبسط تجربة Android ، لجهاز Google Pixel. مع هذه المعرفة تحت حزامك ، ستكون قادرًا على التفرع بمفردك والبدء في تطوير إصدارات مخصصة من ذاكرات ROM الخاصة بالشركة المصنعة.

متطلبات هذا الدليل:

  • مشروع Android مفتوح المصدر
  • هاتف Pixel XL أو محاكي Android لنظام Linux
  • نظام تشغيل Linux 64 بت - أوبونتو أو لينكس النعناع هي التوزيعات الأكثر ملائمة للمبتدئين ، بينما BBQLinux تم تطويره خصيصًا مع وضع مطوري Android في الاعتبار.
  • بايثون
  • كمبيوتر قوي (يتطلب تجميع التعليمات البرمجية الكثير من الذاكرة والمساحة!)

إعداد بيئة البناء الخاصة بك

لنبدأ بإعداد محاكي Android على جهاز Linux الخاص بك. سواء كان لديك جهاز Google Pixel XL أم لا ، فمن الأفضل دائمًا تجربة ROM الجديد على محاكي Android قبل وامضه على جهازك. المفضل لدي شخصيًا هو Genymotion ، لذا سأوجهك خلال تثبيت هذا المحاكي المحدد. ومع ذلك ، يمكنك أيضًا الاطلاع على هذا الدليل ' أفضل محاكيات Android '، حيث أن معظمها متوافق أيضًا مع Linux.

توجه إلى موقع Genymotion ، قم بتسجيل حساب ، وتحقق منه عبر البريد الإلكتروني ، وقم بتنزيل الملف القابل للتنفيذ على سطح مكتب Linux.



افتح الآن محطة Linux ، واكتب:

Chmod + x genymotion-xxxxx.bin (استبدل xxxx برقم الإصدار في اسم الملف)
./genymotion-xxxxxx.bin

صحافة و لإنشاء دليل Genymotion. اكتب الآن في المحطة:

جينيموشن cd && ./genymotion

سيطلب منك الآن بدء عملية التثبيت ، لذا استمر في النقر فوق التالي حتى تصل إلى نافذة إضافة أجهزة افتراضية. حدد 'Pixel XL' ضمن خيار طراز الجهاز ، ثم أكمل التثبيت. يمكنك اختبار الجهاز الظاهري إذا كنت تريد ذلك ، فسيكون ذلك في الأساس مثل وجود هاتف Pixel XL على سطح المكتب.

لنقم الآن بإعداد بايثون:

apt-get install python

نحتاج الآن إلى إعداد Java Development Kit على جهاز Linux الخاص بك. افتح محطة Linux واكتب الأوامر التالية:

sudo apt-get update
sudo apt-get install openjdk-8-jdk

ستحتاج الآن إلى تكوين نظام Linux للسماح بالوصول إلى جهاز USB. قم بتشغيل الكود التالي في محطة Linux:

سيؤدي هذا إلى تنزيل ملف 51-android.txt المطلوب الذي يسمح بالوصول إلى جهاز USB المذكور أعلاه. افتح ملف .txt وقم بتعديله ليشمل اسم مستخدم Linux الخاص بك ، ثم ضع ملف .txt في الموقع التالي: (مثل مستخدم الجذر ). الآن قم بتوصيل جهازك بجهاز الكمبيوتر الخاص بك عبر USB لتفعيل القواعد الجديدة تلقائيًا.

تنزيل مصدر Android

يتم استضافة AOSP على Git ، لذلك سنستخدم أداة تسمى Repo للتواصل مع Git.

نحتاج أولاً إلى إعداد مجلد / bin في الدليل الرئيسي الخاص بك. اكتب الأوامر التالية في محطة Linux:

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

سنقوم الآن بتنزيل أداة Repo ، لذا اكتب في محطة Linux:

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

بعد تثبيت Repo ، يجب علينا الآن إنشاء دليل فارغ للاحتفاظ بملفات عملك. لذا اكتب هذا في محطة Linux:

mkdir $ WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

سنقوم الآن بتهيئة Git باستخدام اسمك وعنوان بريدك الإلكتروني - استخدم عنوان Gmail الذي تتحقق منه بانتظام ، وإلا فلن تتمكن من استخدام أداة مراجعة كود Gerrit.

$ git config –global user.name 'اسمك'
$ git config - global user.email $
you@gmail.com

الآن سنطلب من Repo سحب أحدث بيان رئيسي لـ AOSP من Git:

الريبو $ init -u https://android.googlesource.com/platform/manifest

إذا تم ذلك بنجاح ، فستتلقى رسالة تفيد بأنه قد تمت تهيئة الريبو في دليل العمل الخاص بك. ستجد أيضًا ' .repo ' الدليل داخل دليل العميل. سنقوم الآن بتنزيل شجرة مصدر Android باستخدام:

إعادة مزامنة $

بناء مصدر Android

هذا هو المكان الذي يتم فيه تشغيل ثنائيات الأجهزة المذكورة في بداية هذا الدليل. دعنا نتوجه إلى برامج تشغيل AOSP الصفحة وتنزيل ثنائيات Pixel XL لنظام Android 7.1.0 (NDE63P). تريد تنزيل كل من صورة البائع ومكونات الأجهزة. تأتي هذه في شكل أرشيفات مضغوطة ، لذا استخرجها إلى سطح المكتب وقم بتشغيل البرنامج النصي للاستخراج الذاتي من المجلد الجذر. اختر تثبيت الثنائيات في جذر WORKING_DIRECTORY الذي أنشأناه سابقًا.

اكتب الآن في محطة Linux الخاصة بك:

$ صنع الضربات
بناء مصدر $ / envsetup.sh

الآن سنختار الهدف المراد إنشاؤه ، لذا اكتب:

الغداء $ aosp_marlin-userdebug
$ setpaths
$ make –j4

هناك ، قمنا الآن 'ببناء' Android ROM من المصدر. فلنختبرها في المحاكي ، عن طريق الكتابة في Terminal:

محاكي $

لذا العب في المحاكي قليلاً. كما ترون ، فإن تجربة Android الفانيليا البحتة ضئيلة للغاية ، ولهذا السبب يخصص المصنعون AOSP وفقًا لاحتياجاتهم. وانت ايضا استطاع فلاش هذا ROM الذي أنشأناه للتو على جهازك إذا أردت ، ولكن دون إضافة أي تحسينات ، ستكون تجربة Android الفانيليا البحتة أمرًا مملًا للغاية بالفعل.

لذا فإن ما سيفعله المصنعون عادةً باستخدام AOSP هو تفرعها ، وإضافة ثنائيات الملكية الخاصة بهم ، وتخصيص واجهة المستخدم ، وإضافة شعار التمهيد ، وما إلى ذلك. .

ابق على اتصال ، حيث سيتناول الجزء الثاني من هذا الدليل إضافة الخطوط والسمات والرسوم المتحركة للتمهيد إلى ذاكرة القراءة فقط!

5 دقائق للقراءة