วิธีใช้ธีม Android System UI ด้วยตนเอง

และคำถามอื่น ๆ ที่คล้ายกันที่เกี่ยวข้องกับ UI ของ Android บางแบรนด์อนุญาตให้ใช้ผ่านร้านค้าธีมได้ แต่ระยะทางอาจแตกต่างกันไปตามธีมที่เปลี่ยนแปลงได้



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

เนื่องจากคู่มือนี้เกี่ยวข้องกับการแก้ไขไฟล์ระบบ Android และการปรับแต่ง ROM ของคุณคุณควรดูคู่มือ Appual ต่อไปนี้:



ข้อกำหนด:

  • อุปกรณ์ที่รูท ( ค้นหา Appual สำหรับ คู่มือรูท Android )
  • ADB & Fastboot เครื่องมือ ( ดูคู่มือของ Appual วิธีติดตั้ง ADB บน ​​Windows )
  • Java SDK
  • APKTool หรือ APKMultiTool
  • NotePad ++ ( หรือโปรแกรมแก้ไขข้อความที่เป็นมิตรกับรหัสอื่น ๆ สำหรับการแก้ไขบรรทัด XML และ Smali )
  • ซอฟต์แวร์แก้ไขภาพเช่น GIMP หรือ Photoshop
  • 7-Zip หรือ Winrar

หมายเหตุ: สำหรับคำแนะนำนี้ฉันจะใช้ APKTool เป็นข้อมูลอ้างอิงหากคุณใช้ APKMultiTool แทนขั้นตอนการตั้งค่าเริ่มต้นและการแยกคอมไพล์ / คอมไพล์ใหม่อาจแตกต่างกัน แต่โดยรวมแล้วขั้นตอนจะเหมือนกัน



นอกจากนี้คุณอาจต้องการพิจารณาติดตั้ง ROM ของอุปกรณ์ลงใน Android Emulator บนคอมพิวเตอร์ของคุณเพื่อให้คุณสามารถทดสอบและดูตัวอย่างการเปลี่ยนแปลง SystemUI ก่อนที่จะโหลดลงในอุปกรณ์



APKTool Setup สำหรับ Windows

  1. ดาวน์โหลด Windows สคริปต์ wrapper (คลิกขวาบันทึกลิงค์เป็น apktool.bat)
  2. ดาวน์โหลด apktool-2 ( ค้นหาใหม่ล่าสุดที่นี่ )
  3. เปลี่ยนชื่อ jar ที่ดาวน์โหลดมาเป็น apktool.jar
  4. ย้ายทั้งสองไฟล์ (apktool.jar & apktool.bat) ไปยังไดเร็กทอรี Windows ของคุณ (โดยปกติคือ C: // Windows)
  5. หากคุณไม่สามารถเข้าถึง C: // Windows คุณสามารถวางไฟล์ทั้งสองไว้ที่ใดก็ได้จากนั้นเพิ่มไดเร็กทอรีนั้นในตัวแปร Environment Variables System PATH ของคุณ
  6. ลองเรียกใช้ apktool ผ่านพร้อมรับคำสั่ง

การตั้งค่า APKTool สำหรับ Linux

  1. ดาวน์โหลด Linux สคริปต์ wrapper (คลิกขวาบันทึกลิงค์เป็น apktool)
  2. ดาวน์โหลด apktool-2 ( ค้นหาใหม่ล่าสุดที่นี่ )
  3. เปลี่ยนชื่อ jar ที่ดาวน์โหลดมาเป็น apktool.jar
  4. ย้ายทั้งสองไฟล์ (apktool.jar & apktool) ไปที่ / usr / local / bin (จำเป็นต้องรูท)
  5. ตรวจสอบให้แน่ใจว่าไฟล์ทั้งสองสามารถเรียกใช้งานได้ (chmod + x)
  6. ลองรัน apktool ผ่าน cli

APKTool Setup สำหรับ Mac OS X

  1. ดาวน์โหลด Mac สคริปต์ wrapper (คลิกขวาบันทึกลิงค์เป็น apktool)
  2. ดาวน์โหลด apktool-2 ( ค้นหาใหม่ล่าสุดที่นี่ )
  3. เปลี่ยนชื่อ jar ที่ดาวน์โหลดมาเป็น apktool.jar
  4. ย้ายทั้งสองไฟล์ (apktool.jar & apktool) ไปที่ / usr / local / bin (จำเป็นต้องรูท)
  5. ตรวจสอบให้แน่ใจว่าไฟล์ทั้งสองสามารถเรียกใช้งานได้ (chmod + x)
  6. ลองรัน apktool ผ่าน cli

Decompiling SystemUI.Apk ด้วย APKTool

  1. หลังจากติดตั้ง APKTool แล้วเราจำเป็นต้องดึงไฟล์เฟรมเวิร์กของคุณจากอุปกรณ์ของคุณผ่าน ADB AOSP ทั่วไป ไฟล์เฟรมเวิร์กชื่อ ‘ framework-res.apk ’ พบใน / system / framework เส้นทางบนอุปกรณ์ของคุณ แต่ผู้ผลิตส่วนใหญ่มีไฟล์เฟรมเวิร์กของตัวเองนอกเหนือจากเฟรมเวิร์ก AOSP
  2. อาจเป็นเรื่องยุ่งยากเนื่องจากคุณจะต้องทราบว่าผู้ผลิตตั้งชื่อไฟล์ทรัพยากรกรอบงานบนอุปกรณ์ของคุณ พวกเขามักจะพบใน / system / framework แต่บางครั้งอาจซ่อนอยู่ใน / data / system-framework หรือ / system / priv-app . โดยทั่วไปไฟล์จะมี ' ทรัพยากร ’ , 'เนื้อวัว' , หรือ ' กรอบ' ในชื่อไฟล์
  3. เมื่อคุณพบไฟล์เฟรมเวิร์กแล้วให้ดึงมาพร้อมกับ SystemUI.apk ของคุณผ่านคอนโซล ADB คุณจะทำสิ่งนี้ด้วยคำสั่ง:
  4. adb pull /system/framework/framework-res.apk (เปลี่ยนเส้นทางหากจำเป็นและทำคำสั่งเดียวกันสำหรับ SystemUI.apk)
  5. คุณจะพบไฟล์ที่ดึงมาในโฟลเดอร์การติดตั้ง ADB หลักบนคอมพิวเตอร์ของคุณ
  6. ตอนนี้เรากำลังจะติดตั้งลงใน APKTool ดังนั้นในพรอมต์คำสั่งพิมพ์:
  7. Apktool ถ้า ตัวอย่างเช่น apktool ถ้า C: ADB framework-res.apk
  8. ทำซ้ำด้านบนสำหรับ SystemUI.apk
  9. ตอนนี้เรากำลังจะถอดรหัส SystemUI.apk ดังนั้นพิมพ์ลงในหน้าต่างคำสั่ง: apktool d SystemUI.apk
  10. สิ่งนี้จะแยก SystemUI.apk ทั้งหมดออกเป็นชุดโฟลเดอร์

การแก้ไขไอคอนและสี UI

ตอนนี้คุณต้องหา DPI ของโทรศัพท์ของคุณเพราะคุณจะมีโฟลเดอร์ต่างๆ SystemUI / res / drawable-hdpi, SystemUI / res / xhdpi ฯลฯ นี่คือวิธีการทำงาน:



  • ldpi (ต่ำ) ~ 120dpi
  • mdpi (ปานกลาง) ~ 160dpi
  • hdpi (สูง) ~ 240dpi
  • xhdpi (สูงพิเศษ) ~ 320dpi
  • xxhdpi (สูงพิเศษ) ~ 480dpi
  • xxxhdpi (พิเศษ - พิเศษ - สูงพิเศษ) ~ 640dpi

ดังนั้นในการแก้ไขทรัพยากร SystemUI คุณจะต้องพิจารณาว่าหน้าจอของคุณอยู่ในหมวดหมู่ใด

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

  • Notification_panel_bg.9 ( พื้นหลังแถบสถานะของคุณ)
  • ic_qs _ ####. png ( ไอคอนแผงการตั้งค่าด่วน)
  • stat_syst _ ####. png ( ไอคอนแถบสถานะ)

แต่ผู้ผลิตของคุณอาจไม่ปฏิบัติตามหลักเกณฑ์การตั้งชื่อเหล่านั้นดังนั้นคุณเพียงแค่ต้องดูที่. png อย่างใกล้ชิดเพื่อให้เข้าใจว่ามีไว้เพื่ออะไร

ข้อสำคัญ: หากคุณพบไฟล์. 9.png อย่าพยายามแก้ไขโดยตรงใน GIMP หรือ Photoshop โดยไม่มีบทช่วยสอนก่อน นี่คือไฟล์ 9Patch .png ซึ่งมีเส้นขอบที่มองเห็นได้เมื่อแก้ไขภาพ แต่เส้นขอบเหล่านี้จะมองไม่เห็นใน UI ของ Android ด้วยเทคนิคพิเศษ ( ยาวเกินไปที่จะอธิบาย) และมีวิธีพิเศษในการจัดการพวกมัน คุณควรใช้ไฟล์ วาดเครื่องมือ 9-Patch จาก Android Studio หรือเรียนรู้วิธีแก้ไข / สร้างภาพ 9Patch ใน Photoshop / GIMP อย่างถูกต้อง

หากต้องการแก้ไขสีพื้นหลังจริงของแผงการตั้งค่าด่วนเองคุณจะต้องเปิด /res/values/colors.xml และแก้ไขบรรทัดตามนั้น บรรทัดควรแสดงความคิดเห็นพร้อมคำอธิบายหรืออย่างน้อยก็เข้าใจง่ายในการตั้งชื่อ นี่คือเหตุผลที่ฉันแนะนำให้ใช้ Android Emulator เพื่อดูตัวอย่างและปรับแต่งตามที่คุณทำ

การแก้ไขสีข้อความ

ตรวจสอบใน /res/layout/tw_statusbar.xml สำหรับบรรทัดเหล่านี้:

สีข้อความไอคอนแบตเตอรี่ ( หากแบตเตอรี่ของคุณแสดงเป็นเปอร์เซ็นต์ข้อความ)

สีข้อความนาฬิกา:

ตรวจสอบใน /res/layout/tw_status_bar_expanded_header.xml สำหรับบรรทัดเหล่านี้:

สีนาฬิกาแบบดึงลง

สีวันที่

“ @ style / TextAppearance.StatusBar.Expanded.Date” android: textColor =” # something”

มีหลายสิ่งหลายอย่างที่ต้องปรับแต่งใน SystemUI ฉันไม่สามารถอธิบายทุกสิ่งเล็กน้อยในคู่มือนี้ - คุณสามารถหาคู่มือธีม SystemUI ที่อธิบายแต่ละบรรทัดในไฟล์. XML แต่คุณจะสบายดีถ้าคุณทำ ดูการเปลี่ยนแปลงของคุณในโปรแกรมจำลอง Android และปรับแต่งตามที่คุณทำ

การคอมไพล์และการติดตั้ง SystemUI ที่แก้ไขแล้วของคุณ

  1. ในหน้าต่างคำสั่งพิมพ์: apktool b SystemUI
  2. สิ่งนี้จะสร้างโฟลเดอร์. apk ใหม่ในไฟล์ ระยะทาง โฟลเดอร์ในไดเร็กทอรี APK ที่แยกส่วน ดังนั้นมองเข้าไป / systemUI / dist สำหรับไฟล์ SystemUI.apk ใหม่
  3. ตอนนี้คุณต้องใช้บางอย่างเช่น 7-Zip เพื่อคัดลอกและแทนที่โฟลเดอร์ META-INF และ AndroidManifest.XML จาก APK ดั้งเดิม เข้าไปใน APK ใหม่ จากนั้นคอมไพล์ใหม่อีกครั้ง
  4. ตอนนี้คุณสามารถแฟลช SystemUI.apk ใหม่บนอุปกรณ์ของคุณได้แล้ว

มีความสุข modding!

อ่าน 5 นาที