Computer >> คอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Android

วิธีสร้าง Lineage OS บน Windows 10

LineageOS ซึ่งเป็นผู้สืบทอดต่อจาก CyanogenMod เป็น ROM แบบกำหนดเองที่ได้รับความนิยมมากที่สุดสำหรับ Android มันถูกย้ายไปยังโทรศัพท์กว่า 200 รุ่นและมีคุณสมบัติมากมายเมื่อเทียบกับประสบการณ์ Android ที่มีอยู่

อย่างไรก็ตาม แม้ว่าจะมีอุปกรณ์จำนวนมากที่มีพอร์ต LineageOS แต่ก็มีอุปกรณ์อีกมากมายที่ไม่มีพอร์ต ในคู่มือ Appual ที่ง่ายและรวดเร็วนี้ เราจะแสดงวิธีสร้าง LineageOS ในสภาพแวดล้อม Windows 10 . โปรดทราบว่าการดำเนินการนี้จะไม่สร้าง ROM ของ LineageOS ที่เข้ากันได้กับอุปกรณ์ของคุณทันที คู่มือนี้มีไว้เพื่อให้คุณตั้งค่าและทำงานบนสภาพแวดล้อม Windows 10 เพื่อสร้าง LineageOS จาก Git repo อย่างเป็นทางการเท่านั้น

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

หากคุณสนใจในการสร้าง ROM แบบกำหนดเองและบทช่วยสอน DIY Android อื่นๆ คุณควรอ่านคู่มือ Appual อื่นๆ เหล่านี้:

  • วิธีการ DIY Port TWRP สำหรับ Android
  • วิธีการกำหนดธีม UI ระบบ Android ด้วยตนเอง
  • วิธีการสร้าง ROM แบบกำหนดเองจาก AOSP | ปตท. 2

ข้อกำหนด:

  • Windows 10 (64 บิต) (แนะนำให้ติดตั้งบน SSD)
  • อย่างน้อย RAM ขนาด 16GB (การคอมไพล์ใช้ทรัพยากรมาก!)

ดังนั้นโดยพื้นฐานแล้วเราจะทำการตั้งค่าระบบย่อย Windows สำหรับ Linux (WSL) สำหรับสภาพแวดล้อมการสร้างของเรา วิธีนี้ง่ายอย่างเหลือเชื่อแต่มักถูกมองข้าม เนื่องจากสิ่งที่เราต้องการส่วนใหญ่มีอยู่ใน Microsoft Store
วิธีสร้าง Lineage OS บน Windows 10

ขั้นตอนแรกของคุณคือเปิด Microsoft Store และค้นหา Ubuntu 18.04 และติดตั้งแอป

ถัดไป เปิดแอป Ubuntu 18.04 และดำเนินการตามวิซาร์ดการตั้งค่าเริ่มต้น

ตอนนี้เปิดเทอร์มินัล Ubuntu และติดตั้งแพ็คเกจต่อไปนี้:

sudo apt install android-sdk-platform-tools bc build-essential ccache curl g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop m4 openjdk-8-jdk pngcrush repo rsync schedtool squashfs-tools xsltproc zip zlib1g-dev

ถัดไป คุณต้องสร้างไดเร็กทอรีใหม่สำหรับซอร์สโค้ดและไปที่:

mkdir -p ~/android/lineage && cd android/lineage

ตอนนี้เราจะเริ่มต้น repo ต้นทาง LineageOS:

repo init -u https://github.com/LineageOS/android.git -b lineage-15.1

เพิ่มโค้ดนี้ใน .repo/local_manifests/roomservice.xml (ถ้าไฟล์นี้ไม่มี คุณก็สร้างมันขึ้นมาได้เลย)

<project name="TheMuppets/proprietary_vendor_your device brand" path="vendor/your device brand" remote="github" />

และเราจะดาวน์โหลดซอร์สโค้ด:

repo sync

ตอนนี้เป็นทางเลือกเท่านั้น แต่ขอแนะนำให้เปิดการแคชเพื่อเพิ่มความเร็วในงานสร้างของคุณ เราทำสิ่งนี้ผ่าน "ccache"

โดยทั่วไปคุณต้องการเพิ่มบรรทัดต่อไปนี้ในไฟล์ ~/.bashrc ของคุณ:

Export USE_CCACHE=1

จากนั้นระบุจำนวนเนื้อที่ดิสก์สูงสุดที่คุณต้องการให้ ccache ใช้ประโยชน์:

Ccache -M 50G

แทนที่ "50G" ในบรรทัดนั้นด้วยค่ากำหนดของคุณ ซึ่งสอดคล้องกับจำนวนแคชที่คุณจัดสรรเป็นกิกะไบต์ หากคุณกำลังสร้างอุปกรณ์เพียงเครื่องเดียว คุณสามารถใช้ระหว่าง 25G - 50G ได้ แต่ถ้าคุณกำลังสร้างสำหรับอุปกรณ์หลายเครื่องที่ ไม่ใช้แหล่งเคอร์เนลเดียวกัน คุณควรกระแทกได้ถึงประมาณ 75 - 100G ไม่ว่าในกรณีใด การใช้ ccache จะช่วยประหยัดเวลาในการสร้างของคุณมาก

ต่อไป คุณควรเลือกการคอมมิทต่อไปนี้:

source build/envsetup.sh && repopick -t wsl-compile

จากนั้นคุณจะต้องเตรียมรหัสเฉพาะอุปกรณ์:

breakfast your device codename

ทำวัวกระทิง 64 บิตและไอจาร์:

make bison && make ijar

ตั้งค่า BISON_EXEC ให้เรียกใช้ bison รุ่น 64 บิต และตั้งค่า IJAR_EXEC ให้เรียกใช้ ijar ที่ดัดแปลง:

export BISON_EXEC=~/android/lineage/out/host/linux-x86/bin/bison

export IJAR_EXEC=~/android/lineage/out/host/linux-x86/bin/ijar

(เพิ่มคำสั่งใน ~/.bashrc หากคุณไม่ต้องการรันคำสั่งทุกครั้งที่เปิดบรรทัดคำสั่งอีกครั้ง)

และตอนนี้คุณก็เริ่มสร้างได้แล้ว!

brunch your device codename

สำหรับการสร้างในอนาคต คุณเพียงแค่ต้องทำซ้ำขั้นตอนในการเพิ่ม .repo/local_manifests เปิดใช้งาน ccache และตั้งค่า BISON_EXEC และ IJAR ที่ดัดแปลง

คุณต้องสร้างกระทิง &&ทำ ijar ทุกครั้งที่คุณล้างไดเร็กทอรี

หมายเหตุสุดท้ายบางส่วน:

  • อย่า เพิ่ม/แก้ไขไฟล์ Linux ของคุณจาก Windows ไฟล์ส่วนใหญ่มักจะเสียหายใน bash ทำภายในระบบย่อย Linux
  • อย่า ใช้ mnt เพื่อดาวน์โหลดซอร์สโค้ดไปยังไดรฟ์อื่นแล้วทำตามคำแนะนำนี้ คุณควรดาวน์โหลดซอร์สโค้ดไปยังโฟลเดอร์ เฉพาะภายในระบบย่อย Linux!