ตอนนี้สิ่งที่เกี่ยวกับ 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
นี่คือที่ที่ไบนารีฮาร์ดแวร์ที่กล่าวถึงในตอนต้นของคู่มือนี้เข้ามามีบทบาท ไปที่ไฟล์ ไดรเวอร์ 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 นาที