บทเรียนวันนี้ผมขอนำเสนอวิธีทำกลับไปยังไฟล์ odex หลังจากที่เราทำ de-odex ไฟล์เพื่อแก้ไขต่างๆ เรียบร้อยแล้วสำหรับรอมที่เป็น odex ROM ผมขอข้ามขั้นตอนต่างๆ บางขั้นตอนไปครับสงสัยตรงส่วนไหนสามารถเข้าไปอ่านใน Note ของ Page ได้ครับ
สำหรับบทเรียนนี้สมมติว่าเรามีการแก้ไข android.policy.jar เพื่อ MOD Advance Power Menu ส่วนตัวเสร็จแล้วต้องการจะ Package กลับไปในรอมศูนย์ในรูปแบบของ odex มาดูกันครับว่าทำกันยังไง ?
1. เตรียมไฟล์ android.policy.jar ที่ผ่านการ MOD เรียบร้อยแล้ว (เครื่องที่ทำต้องผ่านการ ROOT เรียบร้อยแล้วครับ)
2. Download ไฟล์ดังนี้
- dexopt-wrapper
- busybox
สำหรับบทเรียนนี้สมมติว่าเรามีการแก้ไข android.policy.jar เพื่อ MOD Advance Power Menu ส่วนตัวเสร็จแล้วต้องการจะ Package กลับไปในรอมศูนย์ในรูปแบบของ odex มาดูกันครับว่าทำกันยังไง ?
1. เตรียมไฟล์ android.policy.jar ที่ผ่านการ MOD เรียบร้อยแล้ว (เครื่องที่ทำต้องผ่านการ ROOT เรียบร้อยแล้วครับ)
2. Download ไฟล์ดังนี้
- dexopt-wrapper
- busybox

3. unzip platform-tools แล้วนำไฟล์ android.policy.jar , dexopt-wrapper , busybox ใส่ลงไป

4. ต่อโทรศัพท์เข้ากับคอมพิเตอร์ครับ (อย่าลืม Enable Debugging Mode) ทดสอบการเชื่อมต่อโทรศัพท์กับคอมพิเตอร์ว่าเชื่อมต่อกันได้มั้ยโดยใช้คำสั่ง
> adb devices จะต้องแสดงผลตามรูป

5. ขั้นตอนต่อมาเราจะทำการหา BOOTCLASSPATH โดยใช้คำสั่งดังนี้
> adb shell
# echo $BOOTCLASSPATH <แล้วกด ENTER>

6. ทำการ Copy BOOTCLASSPATH เก็บเอาไว้โดยมีวิธีดังนี้
- คลิกขวาเลือก Select All

- เมื่อไฮไลท์สีขาวขึ้นมาขึ้นมาก็ให้กด <ENTER>

- จากนั้นก็เปิดโปรแกรม Text Editor ผมจะเลือกใช้โปรแกรม Notepad++ หาโหลดได้จาก Google ได้เลยครับ เปิดโปรแกรมขึ้นมาแล้วทำการ Paste ลงไปเลยครับ ส่วนที่ ไฮไลท์คือ BOOTCLASSPATH ที่เราต้องการ

7. เปิด DOS ขึ้นมาแล้วใช้ adb shell เข้าไปทำการสร้าง Folder ใน sdcard เพื่อทำการเก็บไฟล์
- original framework file
- tools (busybox,dexopt-wrapper)
- mod เก็บไฟล์ android.policy.jar ที่เราทำการ MOD
>adb shell
# mkdir /sdcard/original
# mkdir /sdcard/tools
# mkdir /sdcard/mod

8. จากนั้นทำการ push ไฟล์ใส่ใน folder ต่างๆ
adb push busybox /sdcard/tools/busybox
adb push dexopt-wrapper /sdcard/tools/dexopt-wrapper
adb push android.policy.jar /sdcard/mod/android.policy.jar

9. ใช้ adb shell แล้วใช้คำสั่ง > mount -o remount,rw /system เพื่อทำการยินยอมให้สามารถอ่านเขียนไฟล์ใน Folder /system ได้

10. ทำการคัดลอกไฟล์ original ของ MOD ที่เราทำการแก้ไขไปใส่ใน /sdcard/original ในที่นี้คือ anroid.policy.jar/anroid.policy.odex
cp /system/framework/android.policy.jar /sdcard/original/android.policy.jar
cp /system/framework/android.policy.odex /sdcard/original/android.policy.odex

11. ทำการ copy busybox,dexopt-wrapper ไปใส่ใน /system/xbin แล้วทำการกำหนด permission เป็น 750
cp /sdcard/tools/busybox /system/xbin/busybox
chmod 750 /system/xbin/busybox
cp /sdcard/tools/dexopt-wrapper /system/xbin/dexopt-wrapper
chmod 750 /system/xbin/dexopt-wrapper

12. ทำการ copy MOD (android.policy.jar) ไปไว้ใน /system/framework
cp /sdcard/mod/android.policy.jar /system/framework/android.policy.jar
13. ใช้คำสั่ง dexopt-wrapper + /system/framework/android.policy.jar +/system/framework/new-android.policy.odex+BOOTCLASSPATH เพื่อทำการสร้างไฟล์ odex ใหม่จาก MOD ที่เราทำการแก้ไขมาโดย
dexopt-wrapper /system/framework/android.policy.jar /system/framework/new-android.policy.odex /system/framework/core.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/webviewchromium.jar:/system/framework/com.lge.frameworks.jar:/system/framework/WfdCommon.jar:/system/framework/org.codeaurora.Performance.jar
จะได้ผลลัพธ์ประมาณนี้ครับ

14. ทำการ copy ไฟล์ original ที่เราทำการ backup ไว้ใน sdcard กลับคืนลงไปใน /system/framework
cp /sdcard/original/android.policy.jar /system/framework/android.policy.jar
cp /sdcard/original/android.policy.odex /system/framework/android.policy.odex

15. ทำการกำหนด permission ของไฟล์เป็น 777 ดังต่อไปนี้
/system/framework/android.policy.jar
/system/framework/android.policy.odex
/system/framework/new-android.policy.odex
chmod 777 /system/framework/android.policy.jar
chmod 777 /system/framework/android.policy.odex
chmod 777 /system/framework/new-android.policy.odex

16. ทำการใช้คำสั่ง dd เพื่อทำการ copy original sign ของไฟล์ android.policy.odex ให้กับ new-android.policy.odex ที่เราเพิ่งสร้างขึ้นมา
/system/xbin/busybox dd if=/system/framework/android.policy.odex of=/system/framework/new-android.policy.odex bs=1 count=20 skip=52 seek=52 conv=notrunc

17. ทำการ copy /system/framework/new-android.policy.odex ไปทับไฟล์เก่า /system/framework/android.policy.odex
cp -f /system/framework/new-android.policy.odex /system/framework/android.policy.odex

18. สุดท้ายทำการเคลียร์ไฟล์ที่ไม่จำเป็นทิ้ง
/system/framework/new-android.policy.odex
rm /system/framework/new-android.policy.odex
จากนั้นทำการกำหนด permission ไฟล์ เป็น 644
/system/framework/android.policy.jar
/system/framework/android.policy.odex
chmod 644 /system/framework/android.policy.odex
chmod 644 /system/framework/android.policy.jar
จากนั้นออกจาก shell ใช้คำสั่ง exit แล้วทำการ Reboot เครื่องใช้คำสั่ง adb reboot

ชอบ แต่ งง ไม่เห็นภาพ อิอิ
ตอบลบชอบ แต่ งง ไม่เห็นภาพ อิอิ
ตอบลบ