วิธีสร้าง ROM ที่กำหนดเองจากโครงการโอเพ่นซอร์สของ Android

แหล่งที่มา เรียกว่า AOSP (Android Open Source Project) .



ตอนนี้สิ่งที่เกี่ยวกับ AOSP ก็คือซอร์สโค้ดที่แท้จริง ไม่รวมถึง ความเป็นเจ้าของฮาร์ดแวร์เฉพาะอุปกรณ์ ในแง่ของคนธรรมดาฮาร์ดแวร์เช่นกล้องและ GPU ของคุณจะไม่ทำงาน“ นอกกรอบ” เมื่อพัฒนาด้วย AOSP ในความเป็นจริงอุปกรณ์ของคุณจะไม่สามารถบู๊ตได้หากไม่มีไบนารีฮาร์ดแวร์เหล่านี้

หากคุณกำลังพัฒนาสำหรับโทรศัพท์แบรนด์ Google (Pixel, Nexus ฯลฯ ) คุณจะพบไบนารีของฮาร์ดแวร์ โดยตรงจาก Google และคู่มือนี้จะแนะนำคุณตลอดขั้นตอนการรับและสร้างลงใน ROM ของคุณ อย่างไรก็ตามหากคุณกำลังพัฒนา ROM สำหรับโทรศัพท์แบรนด์เนม (Sony, Samsung และอื่น ๆ ) ... ขออวยพรให้หัวใจของคุณเพราะคุณอยู่ในระหว่างการเดินทาง



บาง ผู้ผลิตมีโครงการโอเพ่นซอร์สของตนเองหรือเครื่องมือพัฒนารุ่นสำหรับนักพัฒนาที่จะเป็นนักพัฒนาในขณะที่ผู้ผลิตรายอื่นให้รหัสที่เป็นกรรมสิทธิ์ของตนอย่างแน่นหนา นี่คือรายการโดยย่อของโครงการโอเพนซอร์สจากผู้ผลิตยอดนิยม:



Samsung Open Source Release Center
Sony Developer World
ฝ่ายสนับสนุนของ Lenovo
Huawei Open Source Release Center
นักพัฒนา Motorola



เมื่อไม่เป็นเช่นนั้นเรามาดำเนินการต่อภายใต้สมมติฐานว่าเรากำลังสร้าง ROM สำหรับประสบการณ์การใช้งาน Android แบบวานิลลาขั้นพื้นฐานที่สุดสำหรับอุปกรณ์ Google Pixel ด้วยความรู้นี้คุณจะสามารถแยกสาขาออกได้ด้วยตัวคุณเองและเริ่มพัฒนา ROM ของผู้ผลิตเฉพาะรุ่นที่กำหนดเองได้

ข้อกำหนดสำหรับคู่มือนี้:

  • โครงการโอเพนซอร์สของ Android
  • โทรศัพท์ Pixel XL หรือ โปรแกรมจำลอง Android สำหรับ Linux
  • ระบบปฏิบัติการ Linux 64 บิต - Ubuntu หรือ ลินุกซ์มิ้นต์ เป็น Distros ที่เป็นมิตรกับมือใหม่ที่สุดในขณะที่ BBQLinux ได้รับการพัฒนาโดยเฉพาะโดยคำนึงถึงนักพัฒนา Android
  • Python
  • คอมพิวเตอร์ที่มีน้ำหนักมาก (การรวบรวมรหัสใช้หน่วยความจำและพื้นที่มาก!)

การตั้งค่าสภาพแวดล้อมการสร้างของคุณ

เริ่มต้นด้วยการตั้งค่าโปรแกรมจำลอง 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 && ./genymotion

ตอนนี้ระบบจะขอให้คุณเริ่มกระบวนการติดตั้งดังนั้นเพียงแค่คลิก Next ต่อไปจนกว่าคุณจะไปที่หน้าต่าง Add Virtual Devices เลือก“ Pixel XL” ภายใต้ตัวเลือกรุ่นอุปกรณ์จากนั้นทำการติดตั้งให้เสร็จสิ้น คุณสามารถทดสอบอุปกรณ์เสมือนได้หากต้องการโดยพื้นฐานแล้วจะเหมือนกับการมีโทรศัพท์ Pixel XL บนเดสก์ท็อปของคุณ

มาตั้งค่า Python กัน:

$ apt-get ติดตั้ง python

ตอนนี้เราจำเป็นต้องตั้งค่า Java Development Kit บนเครื่อง Linux ของคุณ เปิดเทอร์มินัล Linux และพิมพ์คำสั่งต่อไปนี้:

$ sudo apt-get update
$ sudo apt-get ติดตั้ง openjdk-8-jdk

ตอนนี้คุณจะต้องกำหนดค่าระบบ Linux เพื่ออนุญาตการเข้าถึงอุปกรณ์ USB เรียกใช้รหัสต่อไปนี้ในเทอร์มินัล Linux:

สิ่งนี้จะดาวน์โหลดไฟล์ 51-android.txt ที่จำเป็นซึ่งอนุญาตให้เข้าถึงอุปกรณ์ USB ดังกล่าวข้างต้น เปิดไฟล์. txt และแก้ไขให้รวมชื่อผู้ใช้ Linux ของคุณจากนั้นวางไฟล์. txt ในตำแหน่งต่อไปนี้: (เป็นไฟล์ ผู้ใช้รูท ). ตอนนี้เสียบอุปกรณ์ของคุณเข้ากับคอมพิวเตอร์ผ่าน USB เพื่อให้กฎใหม่มีผลโดยอัตโนมัติ

กำลังดาวน์โหลดซอร์ส Android

AOSP โฮสต์อยู่บน Git ดังนั้นเราจะใช้เครื่องมือที่เรียกว่า Repo เพื่อสื่อสารกับ Git

ก่อนอื่นเราต้องตั้งค่าโฟลเดอร์ / bin ในโฮมไดเร็กทอรีของคุณ พิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล Linux:

$ mkdir ~ / bin
$ 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:

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

หากดำเนินการสำเร็จคุณจะได้รับข้อความว่า Repo ได้รับการเตรียมใช้งานแล้วในไดเรกทอรีการทำงานของคุณ นอกจากนี้คุณยังจะได้พบกับ“ .repo” ไดเร็กทอรีภายในไดเร็กทอรีไคลเอนต์ ตอนนี้เราจะดาวน์โหลดแผนผังแหล่งที่มาของ Android ด้วย:

$ repo sync

การสร้างซอร์ส Android

1

นี่คือที่ที่ไบนารีฮาร์ดแวร์ที่กล่าวถึงในตอนต้นของคู่มือนี้เข้ามามีบทบาท ไปที่ไฟล์ ไดรเวอร์ AOSP และดาวน์โหลดไบนารี Pixel XL สำหรับ Android 7.1.0 (NDE63P) คุณต้องการดาวน์โหลดทั้งอิมเมจผู้จำหน่ายและส่วนประกอบฮาร์ดแวร์ สิ่งเหล่านี้มาเป็นไฟล์เก็บถาวรที่บีบอัดดังนั้นแตกไฟล์เหล่านี้ไปยังเดสก์ท็อปของคุณและเรียกใช้สคริปต์การขยายตัวเองจากโฟลเดอร์ราก เลือกติดตั้งไบนารีในรูทของ WORKING_DIRECTORY ที่เราสร้างไว้ก่อนหน้านี้

ตอนนี้พิมพ์ลงในเทอร์มินัล Linux ของคุณ:

$ ทำ clobber
$ source build / envsetup.sh

ตอนนี้เราจะเลือกเป้าหมายที่จะสร้างดังนั้นพิมพ์:

$ lunch aosp_marlin-userdebug
$ setpaths
$ make –j4

ตอนนี้เราได้ 'สร้าง' Android ROM จากแหล่งที่มา ลองทดสอบในโปรแกรมจำลองโดยพิมพ์ลงในเทอร์มินัล:

$ emulator

ดังนั้นลองเล่นในโปรแกรมจำลองสักหน่อย อย่างที่คุณเห็นประสบการณ์การใช้งาน Android วานิลลาล้วนๆนั้นค่อนข้างน้อยและนี่คือเหตุผลที่ผู้ผลิตปรับแต่ง AOSP ตามความต้องการ แล้วคุณละ สามารถ แฟลช ROM นี้ที่เราสร้างขึ้นในอุปกรณ์ของคุณหากคุณต้องการ แต่หากไม่มีการเพิ่มการปรับปรุงใด ๆ ประสบการณ์การใช้งานแอนดรอยด์วานิลลาอย่างแท้จริงจะเป็นสิ่งที่น่าเบื่อ

ดังนั้นสิ่งที่ผู้ผลิตมักจะทำกับ AOSP คือการแยกมันเพิ่มไบนารีที่เป็นกรรมสิทธิ์ของตัวเองปรับแต่ง UI เพิ่มโลโก้สำหรับบูตเป็นต้นโดยพื้นฐานแล้วผู้ผลิตเพียงแค่ระบายสีบน ROM Android ของสต็อกและนั่นจะเป็นเป้าหมายต่อไปของคุณเช่นกัน .

โปรดอดใจรอเนื่องจากส่วนที่สองของคู่มือนี้จะกล่าวถึงการเพิ่มแบบอักษรธีมและภาพเคลื่อนไหวสำหรับบูตลงใน ROM ของคุณ!

อ่าน 5 นาที