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

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

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

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

  • วิธีแยกส่วนประกอบและธีม Android APKs
  • วิธีสร้างรอม Android ที่กำหนดเองจากแหล่งที่มา
  • วิธีการสร้างรอม Android ที่กำหนดเองจากจุดที่มา 2

ที่ต้องการ:

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

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

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

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

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

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

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

การตั้งค่า APKTool สำหรับ Mac OS X

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

การคอมไพล์ SystemUI.Apk ด้วย APKTool

PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่
  1. หลังจากติดตั้ง APKTool แล้วเราจำเป็นต้องดึงไฟล์กรอบงานจากอุปกรณ์ของคุณผ่านทาง ADB ไฟล์กรอบงาน AOSp ทั่วไป มีชื่อว่า ' framework-res.apk' ใน / system / framework path บนอุปกรณ์ของคุณ แต่ผู้ผลิตส่วนใหญ่จะมีไฟล์กรอบงานของตนเองนอกเหนือจากกรอบงาน AOSP
  2. ซึ่งอาจเป็นเรื่องยุ่งยากเพราะคุณจะต้องเข้าใจว่าผู้ผลิตชื่อไฟล์ทรัพยากรกรอบในอุปกรณ์ของคุณ โดยทั่วไปจะพบใน / system / framework แต่บางครั้งอาจถูกซ่อนไว้ใน / data / system-framework หรือ / system / priv-app โดยทั่วไปไฟล์เหล่านี้จะมี ' ทรัพยากร', 'res' หรือ ' กรอบงาน' ในชื่อไฟล์
  3. เมื่อคุณพบไฟล์โครงร่างแล้วให้ดึงมาพร้อมกับ SystemUI.apk ผ่านทาง ADB console คุณจะทำเช่นนี้กับคำสั่ง:
  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 (extra-extra-extra-high) ~ 640dpi

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

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

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

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

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

การคอมไพล์และติดตั้ง Modified SystemUI.Apk ของคุณ

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

modding ความสุข!

PRO TIP: หากปัญหาเกิดขึ้นกับคอมพิวเตอร์หรือแล็ปท็อป / โน้ตบุ๊คคุณควรลองใช้ซอฟต์แวร์ Reimage Plus ซึ่งสามารถสแกนที่เก็บข้อมูลและแทนที่ไฟล์ที่เสียหายได้ วิธีนี้ใช้ได้ผลในกรณีส่วนใหญ่เนื่องจากปัญหาเกิดจากความเสียหายของระบบ คุณสามารถดาวน์โหลด Reimage Plus โดยคลิกที่นี่

Facebook Twitter Google Plus Pinterest