วิธีการสร้างรอมที่กำหนดเองจากโครงการโอเพ่นซอร์ส Android
ถ้าคุณคุ้นเคยกับการขลิบโทรศัพท์ Android หรือดาวน์โหลดรอมที่กำหนดเองเช่น CyanogenMod ที่ได้รับความนิยมอย่างสูงหรือระบบสืบทอดตระกูล Lineage OS คุณอาจสงสัยว่าคนเหล่านี้สร้างรอมเหล่านี้อย่างไร? เท่าไหร่ทำงานตรงไปในการพัฒนา ROM เอง?
คู่มือนี้จะนำคุณสู่พื้นฐานของการพัฒนา ROM Android ของคุณเอง ควรสังเกตว่านี่เป็นงานที่ใหญ่มากหากคุณไม่มีประสบการณ์ด้านรหัสหรือหลอกลวงในเทอร์มินัลลินุกซ์คุณอาจต้องได้รับความรู้จากสายพานของคุณก่อนที่จะดำน้ำลึกลงไป แต่ถ้าคุณมีความคิดพื้นฐานเกี่ยวกับสิ่งเหล่านี้อย่างน้อยฉันจะพยายามอธิบายสิ่งต่างๆให้มากที่สุดเท่าที่จะเป็นไปได้เพื่อให้คุณสามารถทำตามได้
โดยทั่วไปสิ่งที่เรากำลังทำอยู่คือการดาวน์โหลดซอร์สโค้ด Android (AOSP) และปรับเปลี่ยนตามความชอบของเรา เนื่องจากมีแหล่งข้อมูลจำนวนมากให้เลือกสำหรับอุปกรณ์ต่างๆคำแนะนำนี้จะอ้างอิง แหล่งข้อมูล หลัก ที่ เรียกว่า AOSP (Android Open Source Project)
ตอนนี้สิ่งที่เกี่ยวกับ AOSP คือรหัสต้นฉบับที่บริสุทธิ์ ไม่รวมถึง คุณสมบัติเฉพาะของอุปกรณ์เฉพาะ ในแง่ของคนธรรมดาฮาร์ดแวร์เช่นกล้องถ่ายรูปและ GPU จะไม่ทำงานออกจากกล่องเมื่อพัฒนากับ AOSP ในความเป็นจริงอุปกรณ์ของคุณจะไม่สามารถบูตได้หากไม่มีไบนารีฮาร์ดแวร์เหล่านี้
หากคุณพัฒนาโทรศัพท์ที่มีตราสินค้าของ Google (Pixel, Nexus ฯลฯ ) คุณสามารถหาแอดแวร์ไบนารีได้โดยตรงจาก Google และคู่มือนี้จะนำคุณไปสู่การได้รับและสร้างไว้ในรอมของคุณ อย่างไรก็ตามหากคุณกำลังพัฒนา ROM สำหรับโทรศัพท์แบรนด์เนม (Sony, Samsung ฯลฯ ) ให้อวยพรหัวใจของคุณเพราะคุณอยู่ในระหว่างการเดินทาง
ผู้ผลิต บาง รายมีโครงการโอเพนซอร์สของตนเองหรือปล่อยเครื่องมือการพัฒนาสำหรับนักพัฒนาซอฟต์แวร์ที่ต้องการ แต่ผู้ผลิตรายอื่น ๆ ยังคงรักษารหัสที่เป็นกรรมสิทธิ์ของตนไว้อย่างแน่นหนา ต่อไปนี้เป็นรายการย่อ ๆ ของโครงการโอเพนซอร์สจากผู้ผลิตยอดนิยม:
ศูนย์ประชาสัมพันธ์ซัมซุงโอเพนซอร์ส
โลกของ Sony Developer
การสนับสนุน Lenovo
ศูนย์ประชาสัมพันธ์โอเพนซอร์ส Huawei
นักพัฒนาโมโตโรล่า
ด้วยวิธีการดังกล่าวให้ดำเนินการต่อภายใต้สมมติฐานที่เรากำลังสร้าง ROM สำหรับพื้นฐานประสบการณ์วานิลลา Android สำหรับอุปกรณ์ Google Pixel ด้วยความรู้นี้ภายใต้เข็มขัดของคุณคุณจะสามารถแยกออกด้วยตัวคุณเองและเริ่มต้นการพัฒนารอมรอมของผู้ผลิตเฉพาะรุ่นที่กำหนดเอง
ข้อกำหนดสำหรับคู่มือนี้:
- โครงการโอเพ่นซอร์ส Android
- โทรศัพท์ Pixel XL หรือ เครื่องจำลอง Android สำหรับ Linux
- ระบบปฏิบัติการ Linux ขนาด 64 บิต - อูบุนตูหรือ Linux Mint เป็นระบบปฏิบัติการใหม่ที่เป็นมิตรกับเด็กในขณะที่ BBQLinux ได้รับการพัฒนาขึ้นโดยเฉพาะกับนักพัฒนาระบบแอนดรอยด์
- หลาม
- คอมพิวเตอร์ที่มีกำลังมาก (การรวบรวมโค้ดจะใช้หน่วยความจำและพื้นที่มาก!)
การสร้างสภาพแวดล้อมการสร้างของคุณ
เริ่มต้นด้วยการตั้งค่าโปรแกรมจำลอง Android บนเครื่อง Linux ของคุณ ไม่ว่าคุณจะมีอุปกรณ์ Google Pixel XL หรือไม่ก็ปลอดภัยที่สุดในการทดลองใช้รอมใหม่ของคุณบนเครื่องจำลอง Android ก่อนที่จะ กระพริบไปที่อุปกรณ์ของคุณ สิ่งที่ฉันชอบคือ Genymotion ดังนั้นฉันจะแนะนำคุณให้รู้จักกับการติดตั้งโปรแกรมจำลองนั้น อย่างไรก็ตามคุณสามารถดูคู่มือนี้ได้สำหรับ Emulators Android ที่ดีที่สุดสำหรับ Windows ในปี 2017 เนื่องจากส่วนใหญ่มีความเข้ากันได้กับ Linux
ไปที่เว็บไซต์ Genymotion ลงทะเบียนบัญชียืนยันอีเมลและดาวน์โหลดไฟล์ปฏิบัติการไปยังเดสก์ท็อป Linux ของคุณ
ตอนนี้เปิดลินุกซ์เทอร์มินัลแล้วพิมพ์:
Chmod + x genymotion-xxxxx.bin (แทนที่ xxxx ด้วยหมายเลขเวอร์ชันในชื่อไฟล์)
./genymotion-xxxxxx.bin
กด Y เพื่อสร้างไดเร็กทอรี Genymotion ตอนนี้พิมพ์ใน terminal:
cd genymotion && ./genymotion
ตอนนี้จะขอให้คุณเริ่มต้นกระบวนการติดตั้งดังนั้นเพียงคลิก Next ต่อไปจนกว่าจะถึงหน้าต่าง Add Virtual Devices เลือก Pixel XL ภายใต้ Device Model และดำเนินการติดตั้งเสร็จสิ้น คุณสามารถทดสอบอุปกรณ์เสมือนได้หากต้องการโดยทั่วไปจะเหมือนกับการใช้โทรศัพท์ Pixel XL บนเดสก์ท็อปของคุณ
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่ตอนนี้เราตั้งค่า Python:
$ apt-get install python
ตอนนี้เราจำเป็นต้องติดตั้ง Java Development Kit บนเครื่อง Linux ของคุณ เปิดเทอร์มินัล Linux และพิมพ์คำสั่งต่อไปนี้:
$ sudo apt-get update
$ sudo apt-get ติดตั้ง openjdk-8-jdk
ตอนนี้คุณจะต้องกำหนดค่าระบบ Linux เพื่อให้สามารถเข้าถึงอุปกรณ์ USB ได้ เรียกใช้รหัสต่อไปนี้ใน terminal Linux:
ซึ่งจะดาวน์โหลดไฟล์ 51-android.txt ที่จำเป็นซึ่งช่วยให้สามารถเข้าถึงอุปกรณ์ USB ดังกล่าวได้ เปิดไฟล์. txt และแก้ไขเพื่อรวมชื่อผู้ใช้ Linux ของคุณจากนั้นวางไฟล์. txt ในตำแหน่งต่อไปนี้: (เป็น ผู้ใช้ root ) ตอนนี้เสียบอุปกรณ์ของคุณเข้ากับคอมพิวเตอร์ของคุณผ่านทาง USB เพื่อให้กฎใหม่มีผลโดยอัตโนมัติ
กำลังดาวน์โหลด Android Source
AOSP เป็นเจ้าภาพใน Git ดังนั้นเราจะใช้เครื่องมือที่เรียกว่า Repo เพื่อสื่อสารกับ Git
อันดับแรกเราต้องตั้งค่าโฟลเดอร์ / bin ในโฮมไดเร็กตอรี่ พิมพ์คำสั่งต่อไปนี้ลงในลินุกซ์เทอร์มินัล:
$ mkdir ~ / bin
$ PATH = ~ / bin: $ PATH
ตอนนี้เราจะดาวน์โหลดเครื่องมือ repo เพื่อพิมพ์ลงใน terminal Linux:
$ curl https://storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo
$ chmod a + x ~ / bin / repo
หลังจากติดตั้ง Repo แล้วเราจะต้องสร้างไดเร็กทอรีว่างไว้เพื่อเก็บไฟล์งานของคุณไว้ ดังนั้นพิมพ์ลงใน terminal Linux:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
ตอนนี้เราจะกำหนดค่า Git ด้วยชื่อและที่อยู่อีเมลของคุณ - ใช้ที่อยู่ Gmail ที่คุณตรวจสอบอย่างสม่ำเสมอ มิฉะนั้นคุณจะไม่สามารถใช้เครื่องมือตรวจสอบรหัส Gerrit ได้
$ git config -global user.name ชื่อของคุณ
$ git config - global user.email [email protected]
ตอนนี้เราจะบอก Repo เพื่อดึงไฟล์ Manifest ล่าสุดของ AOSP จาก Git:
$ repo init -u https://android.googlesource.com/platform/manifest
ถ้าทำสำเร็จคุณจะได้รับข้อความว่า Repo ได้รับการเตรียมใช้งานในไดเรกทอรีการทำงานของคุณแล้ว นอกจากนี้คุณจะพบไดเร็กทอรี . repo ภายในไดเร็กทอรีไคลเอ็นต์ ตอนนี้เราจะดาวน์โหลดต้นทางแหล่งข้อมูล Android ด้วย:
ซิงค์ repo $
การสร้างที่มา Android
นี่คือที่ไบนารีของฮาร์ดแวร์ที่กล่าวถึงในตอนต้นของคู่มือนี้จะเข้ามาเล่น ลองไปที่หน้าไดรเวอร์ AOSP แล้วดาวน์โหลด Pixel XL binaries สำหรับ Android 7.1.0 (NDE63P) คุณต้องการดาวน์โหลดทั้งภาพผู้จำหน่ายและส่วนประกอบฮาร์ดแวร์ เหล่านี้มาเป็นที่เก็บถาวรบีบอัดดังนั้นจึงแยกไฟล์เหล่านี้ไปยังเดสก์ท็อปของคุณและเรียกใช้สคริปต์การขยายตัวด้วยตัวเองจากโฟลเดอร์ราก เลือกติดตั้งไบนารีลงในรากของ WORKING_DIRECTORY ที่เราสร้างขึ้นก่อนหน้านี้
ตอนนี้พิมพ์ลงใน terminal Linux ของคุณ:
ทำกระจุ๋มกระจิ๋ม
$ source build / envsetup.sh
ตอนนี้เราจะเลือกเป้าหมายที่จะสร้างดังนั้นพิมพ์:
$ lunch aosp_marlin-userdebug
$ setpaths
$ make -j4
ที่นี่เราได้สร้าง ROM Android จากแหล่งข้อมูลแล้ว ลองทดสอบในโปรแกรมจำลองโดยพิมพ์ลงในเทอร์มินัล:
$ emulator
ดังนั้นเล่นรอบในจำลองได้เล็กน้อย ดังที่คุณจะเห็นประสบการณ์การใช้งาน Android แบบวานิลลาอย่างหมดจดนั้นค่อนข้างน้อยและนี่คือเหตุผลที่ผู้ผลิตกำหนด AOSP ตามความต้องการของตนเอง ดังนั้นคุณ สามารถ แฟลชรอมนี้เราเพิ่งสร้างลงในอุปกรณ์ของคุณหากคุณต้องการ แต่ไม่ต้องเพิ่มการปรับปรุงใด ๆ ประสบการณ์ Android แบบวานิลลาหมดจดจะเป็นสิ่งที่น่าเบื่อจริงๆแน่นอน
ดังนั้นสิ่งที่ผู้ผลิตมักจะทำกับ AOSP เป็นส้อมมันเพิ่มไบนารีที่เป็นกรรมสิทธิ์ของตัวเองปรับแต่ง UI เพิ่มโลโก้บูต ฯลฯ ผู้ผลิตของพื้นเพียงสีมากกว่าสต็อก Android รอมและเพื่อที่จะเป็นเป้าหมายต่อไปของคุณเช่นกัน .
คอยติดตามกันเนื่องจากส่วนที่สองของคู่มือเล่มนี้จะมีการเพิ่มแบบอักษรธีมและภาพเคลื่อนไหวสำหรับบู๊ตสู่รอมของคุณ!
PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่