Hướng dẫn tạo bản ROM và đóng gói đuôi Zip cho điện thoại Android

Thứ bảy - 07/10/2017 06:07
hướng dẫn tạo và đóng gói bản ROM có đuôi Zip.
1(618)
1(618)

Bạn có thể dùng phần mềm Dump Rom để thực hiện tải ở link bên dưới

Link tải phần mền tạo bản ROM đuôi Zip bằng phần mềm Dump

Khi tải về bạn giải nén bằng phần mềm Winzip ra một thư mục mới.

Trên điện thoại bạn muốn tạo bản ROM bật chế độ USB debugging (Cài Đặt > Tùy chọn phát triển > Gỡ lỗi USB) sau đó kết nối với máy tính bằng cáp microUSB

Trong folder mới giải nén phần mềm Dump chạy file Dump theo nền tẳng Windows của bạn là 32 bit hoặc 64 bit.

Trên điện thoại của bạn phải Root và có Super user, lúc này nến Super User đòi cấp quyền thì bạn chọn Cho phép.

Quá trình bắt đầu như hình dưới trong khoảng 10 phút, có thể hơn phụ thuộc vào nhiều yếu tố > Trong quá trình diễn ra sẽ có lúc dừng lại để bạn điền tên điện thoại thì bạn điền tên bất kỳ theo ý thích của bạn

 2(499)

Quá trình diễn ra khá lâu

Sau khi Dump thành công, ở bộ nhớ trong điện thoại có một thư mục tên như bạn đã đặt bước bên trên, bạn copy cả thư mục này ra ngoài máy tính

 3(377)

Tiếp theo chúng ta sẽ sử lại file update-script trước khi nén bằng phần mềm Zip, trong folder bạn đã copy từ bộ nhớ trong điện thoại ra máy tính tìm file “Update-script” > chuột phải và chọn Open Note Pad++

Bạn chú ý: sửa các file từ: Demo_xxx > thành tên tương ứng với các file ở hình 2 > chọn lưu lại ra màn hình Desktop

 4(306)

Trong file tải vể ở bên trên có file.zip tên: ROM_demo.zip > bạn mở file đó bằng Winrar > kéo thả file update-script bên trên vào thư mục tên META-INF/com/google/android > chọn OK nếu có bảng hiện lên.

Tiếp theo copy toàn bộ file.img vào thư mục META-INF sau đó tắt đi là OK

 5(240)

Bây giờ là lúc bạn test thử xem file ROM của bạn đã hoạt động được chưa > copy vào bộ nhớ trong của máy và chạy Recovery thử xem nhé. Hãy để lại ý kiến của bạn về cách làm này ở phần bình luận của diễn đàn cho anh em cùng tham khảo nhé. Chúc bạn thành công

Bài 2:

Hướng dẫn các bạn cách đóng gói rom zip dạng file tar ngay trên điện thoại,...

Công cụ:
Apktool mobile và cách sử dụng
-Thiết bị,(tất nhiên:D:D)
-Lệnh flash updater script
-Một chút kiên nhẫn...

Tiến hành: Các bạn cài apktool như link hướng dẫn ở trên truy cập vào app,nhấn phím menu cứng ở máy mình là bên phải cạnh phím home=> nhấn Tạo rom
[​IMG]
Chờ khoảng 15-20 phút tùy thuộc bản rom trong máy của bạn nặng hay nhẹ,
Khi dump xong nó sẽ tạo một thư mục Rom trong thư mục apktool,các bạn lần theo đường dẫn Meta-inf/com/google/android/updater-script. Mở file này bằng bất cứ giá nào,edit lại tên hoặc lệnh theo hướng dẫn tạo lệnh mình đưa ở trên,có thể add thêm recovery vĩnh viễn,thư mục data....,hoặc bạn nào chưa hiểu lệnh thì để vậy cũng được.
Tiếp theo đến phần đóng gói,có thể dùng phần mềm đóng gói zip chuyên nghiệp hay root explorer vào chọn thư mục rom trong apktool nhấn giữ chọn zip this folder,thời gian có thể dài 1h hoặc hơn cần sự kiên nhẫn:D:D
Cuối cùng xong xuôi các bạn đổi tên file zip vào recovery flash thử xem,
Thân ái!!!!


I. Giới thiệu
Apktool.apk là một ứng dụng chỉnh sửa apk khá tốt ngay trên điện thoại. Được phát triển bởi thành viên trên xda. Apktool.apk việt hóa bởi (hyunhnhan886) gần giống như apktool trên máy tính, có khả năng dịch ngược và biên dịch apk khá hiệu quả. Được phát triển trên điện thoại đã được 1 thời gian và được cộng đồng đánh giá khá cao. Tuy nhiên khi sử dụng trên những điện thoại có bộ nhớ thấp và phải sử dụng bằng thẻ nhớ sẽ rất đơ và chậm. Vì vậy nên khuyên các bạn sử dụng trên những máy có bộ nhớ trong cao. Và bài viết này mình sẽ thực hiện trên LGoptimus G.
Công cụ cần thiết.
Bộ phần mềm apktool
link tải http://www.mediafire.com/download/pdzzvnrqjydvtvq/apktool4.4_armel.zip
Rootexplore.
Link tham khảo https://play.google.com/store/apps/details?id=com.speedsoftware.rootexplorer&hl=vi
Zarchiver
Link tham khảo và tải https://play.google.com/store/apps/details?id=ru.zdevs.zarchiver&hl=vi
Droidedit.
Link tải http://www.mediafire.com/download/by56r6sopju6l1b/DroidEdit_Pro_(code_editor)_1.19.1.apk
* sơ lược: DroidEdit là một văn bản và trình biên tập mã nguồn (tương tự như Notepad + + hoặc gedit) cho máy tính bảng Android và điện thoại với các tính năng sau:
★ tô sáng cú pháp cho một số ngôn ngữ (C, C + +, C #, Java, HTML, CSS, Javascript, Python, Ruby, Lua, LaTeX, SQL, ...) nó còn có tính năng rất hay là chỉnh sửa file hệ thống như build.prop ... mà không cần phải coppy file đó ra ngoài.

II. Hướng dẫn sử dụng apktool việt hóa và cách mod âm lịch lên status bar. Dành cho tất cả máy android.
Bước 1
dùng zarchiver Giải nén bộ phần mềm apktool được thư mục apktool chép vào bộ nhớ máy theo đường dẫn sdcar/ 2014-04-25-20-18-45.jpg
Mở mục apktool ra cài đặt file apktool.apk. Dùng rootexplorer lấy 2 file framework.Apk và lge-res.apk trong đường dẫn system/framework và file LGSystemUI.apk trong đường dẫn system/app . copy 3 file đó vào thư mục apktool/
Bước 2
Mở apktool vừa cài đặt Tìm đến thư mục apktool , mở nó ra tìm đến file framework.apk ấn vào và chọn sáp nhập framework, tiếp tục tìm đến flie lge_res.apk chọn sáp nhập framework, tiếp tục tìm đến file LGSystemUI.apk và làm như trên. Xong phần cài đặt. 2014-04-25-20-05-22.jpg
Bước 3
Tiến hành Mod âm lịch
lấy file LGSystemUI.apk cần mod chép vào thư mục nào đó dễ quản lý
Mở app apktool tìm đến mục có file LGSystemUI.apk chọn dịch ngược tất cả 2014-04-25-20-22-25.jpg . Ngồi đợi...
2014-04-25-20-22-15.jpg
Dịch ngược xong sẻ có thư mục tên là LGSystemUI_src
tải file này về http://www.mediafire.com/download/3du23cjp55jk73g/amlichduonglich.zip
- Trong đó có 9 file gồm dateview.smali 1và 2 dayofweb.smali 1và 2 duonglich2amlich. Giải thích sơ về các file này. Trước tiên mình xin cám ơn @yeucongnghe
Dateview.smali đây là file hiển thị ngày/tháng/năm dương lịch.
Dayofweb.smali đây là file hiển thị các thứ trong tuần.
Và duonglich2amlich đây là file hiển thị ngày/tháng/năm âm lịch
- lấy 9 file đã tải về chép vào đường dẫn LGSystemUI_src/smali/com/android/systemui/statusbar/policy.
- Tiếp tục mở file status_bar_expanded_setting_layout.xml theo đường dẫn LGSystemUI_src/res/layout mở bằng droidedit nhé. 2014-04-25-20-31-10.jpg
- Xóa mục khoanh tròn đi và thêm vào đoạn code này

Mã:
 <com.android.systemui.statusbar.policy.DayOfWeek android:textAppearance="@style/TextAppearance.StatusBar.DayOfWeek" android:gravity="center" android:orientation="vertical" android:id="@id/dayofweek" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:lines="2" android:layout_alignParentLeft="true" />
    <View android:gravity="center_vertical" android:id="@id/settings_divider3" android:background="@drawable/indi_noti_list_title_line" android:layout_width="@dimen/setting_divider_width" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/setting_divider_margin_left" android:layout_marginTop="@dimen/setting_divider_margin_top" android:layout_marginBottom="@dimen/setting_divider_margin_bottom" android:layout_toRightOf="@id/dayofweek" />
    <com.android.systemui.statusbar.policy.DuongLich2AmLich android:textAppearance="@style/TextAppearance.StatusBar.Date" android:gravity="center" android:id="@id/amlich" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:lines="2" android:layout_toRightOf="@id/settings_divider3" />
    <com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Date" android:gravity="center_vertical" android:id="@id/date" android:paddingLeft="8.0dip" android:layout_width="0.0dip" android:layout_height="fill_parent" android:singleLine="true" android:layout_toRightOf="@id/amlich" />
VÀ SAVE LẠI
- Tiếp tục mở file ids.xml trong đường dẫn LGSystemUI_src/res/values/ids.xml bằng siêu phần mềm droidedit. thêm đoạn code này vào dưới cuối cùng.
Mã:
 <item type="id" name="dayofweek">false</item>
    <item type="id" name="amlich">false</item>
    <item type="id" name="settings_divider3">false</item>
VÀ SAVE LẠI
2014-04-25-20-38-57.jpg
- Tiếp tục mở file styles.xml trong đường dẫn LGSystemUI_src/res/values/styles.xml . thêm đoạn code này vào cuối cùng
Mã:
 <style name="TextAppearance.StatusBar.DayOfWeek" parent="@*android:style/TextAppearance.StatusBar.Icon">
        <item name="android:textSize">14.0sp</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">#ff5dcde6</item>
    </style>

VÀ SAVE LẠI
2014-04-25-20-41-24.jpg
- Xong bây giờ mở app apktool ra tìm đến file LGSystemUI_src chọn biên dịch lại và chờ... 2014-04-25-20-51-35.jpg
2014-04-25-20-51-45.jpg
- Thành công sẽ hiện 1 file LGSystemUI_src.apk.
2014-04-25-20-54-31.jpg
- Tiếp tục chọn file LGSystemUI.apk nhớ là file LGSystemUI.apk chọn trích xuất (META-INF) 2014-04-25-20-54-42.jpg
- Tiếp tục chọn file LGSystemUI_src.apk nhớ là LGSystemUI_src.apk chọn thêm (META-INF) 2014-04-25-20-55-00.jpg

- Cuối cùng đã xong dùng rootexplorer đổi tên file LGSystemUI_src.apk thành LGSystemUI.apk chép vào đường dẫn system/app và set 644 2014-04-26-01-32-32.jpg
khởi động lại và thưởng thức.
[​IMG]

* Lưu ý : trong 1 số trường hợp thêm META-INF vào nhưng file không hoạt động thì các bạn làm như thế này.
- Dùng zarchiver tìm đến file LGSystemUI.apk chọn view mở nó ra [​IMG] . Chọn 2 file META-INF và AndroidManifest.xml[​IMG] .
Chọn extract... Tiến hành mở file LGSystemUI-src.apk mở nó ra như file trên và thêm nó vào là xong [​IMG][​IMG]
P

 

Một số lệnh updater-script khi tạo file updater-script.

*Lưu ý ko nhầm lẫn giữa updater-script và update-script nhé, 2 cái này khác nhau.


In một cái gì đó ra màn hình lúc flash.

Ví dụ:
 
Mã:
ui_print("");
ui_print(" :  Update SphinX Escape P870        :");
Mount system / data / cache
 
Mã:
ui_print("Mounting /system, /data, /cache ...");
run_program("/sbin/busybox", "mount", "/system");
run_program("/sbin/busybox", "mount", "/data");
run_program("/sbin/busybox", "mount", "/cache");
Tùy nhu cầu mình định làm gì thì mount cái đó, ví dụ mình thường wipe dalvik-cache thì mount data
và chạy lệnh

 
Mã:
ui_print("Wiping dalvik-cache ...");
delete_recursive("/data/dalvik-cache");
Tạo 1 process có cái bar chạy chạy, thể hiện rằng đang flash
 
Mã:
show_progress(1.34, 42);
Xóa 1 file :
 
Mã:
delete("/system/app/Videos.apk");
delete("/system/app/Videos.odex");
Một số lệnh cơ bản updater-script - LGViet.com. Bài viết được thực hiện bởi hoangnova từ LGViet.com
Lưu ý là để xóa file trong system thì ta phải mount system, xóa file trong data thì phải mount data

Xóa nhiều file
Ví dụ xóa tất cả các file trong /data/dalvik-cache
Mã:
ui_print("Wiping dalvik-cache ...");
delete_recursive("/data/dalvik-cache");
Xóa tất cả các file trong system/app
 
Mã:
delete_recursive("/system/app/");
Giải nén 1 thư mục hoặc 1 file từ trong file zip flash của mình ra
Ví dụ giải nén thư mục system. Nó sẽ tự copy vào theo đúng cấu trúc ta đã sắp xếp ở trong.

 
Mã:
package_extract_dir("system", "/system");
Giải nén 1 file :
 
Mã:
package_extract_file("system/app/LGViet.apk", "/system/app/LGViet.apk");
Extract 1 img ra 1 phân vùng:

Ví dụ mình extract system.img ra phân vùng system của hệ thống. Cẩn thận không nhầm phân vùng nhé.
Mã:
package_extract_file("system.img", "/dev/block/mmcblk0p14");
Format 1 phân vùng, định dạng lại và xóa hết mọi thứ bên trong phân vùng đó.

Phần này cần chú ý mount đúng kiểu. Nhưng thông thường thì ta chỉ có nhu cầu format phân vùng system (chú ý cho đúng phân vùng nhé)
 
Mã:
format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/mmcblk0p14", "0");
Sét quyền - Mình chỉ ví dụ những quyền thông thường như 644 và 755 nhé.
 
Mã:
set_perm(0, 0, 0644, "/system/build.prop");
Mã:
set_perm(0, 0, 0755, "/system/xbin/zipalign");
Sét quyền cho tất cả các file trong 1 thư mục

Ví dụ mình set tất cả các file trong thư mục system/app thành 644
 
Mã:
set_perm_recursive(0, 0, 0755, 0644, "/system/app");
Unmount 1 phân vùng. Khi flash xong ta nên unmount các phân vùng đã mount nhé
Ví dụ
Mã:
unmount("/system");
hoặc
unmount("/data");
hoặc
unmount("/cache");
Chạy 1 bin file của hệ thống.

Ví dụ cho nó nghỉ một tí rồi mới chạy phía dưới thì chạy
 
Mã:
run_program("/sbin/sleep", "2");
Ví dụ mình khởi động lại máy thì chạy
 
Mã:
run_program("/sbin/reboot"); 
Một số lệnh cơ bản updater-script - LGViet.com. Bài viết được thực hiện bởi hoangnova từ LGViet.com

Note:
Nói thêm. Khi làm file updater-script nếu động chạm đến việc format phân vùng, hoặc extract img ra 1 phân vùng cần hết sức chú tên của các phân vùng.
Và Khuyến cáo, ko bao giờ được động tới phân vùng aboot, nó chính là bootloader, chẳng may gây lỗi cho nó là làm máy brick luôn.

Nếu ko biết chính xác tên thì cần check bằng lệnh.

Chạy (phổ biến)
Mã:
adb shell ls -la /dev/block/platform/msm_sdcc.1/by-name/
Hoặc (với các dòng dùng chíp OMAP):
Mã:
adb shell ls -la /dev/block/platform/omap/omap_hsmmc.1/by-name/
Có thể dùng tên phân vùng thay thế cho số của phân vùng (by-name thay cho by-num)

ví dụ
Mã:
/dev/block/platform/msm_sdcc.1/by-name/system

có thể thay cho
Mã:
/dev/block/platform/msm_sdcc.1/mmcblk0p14

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết

  Ý kiến bạn đọc

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây