Thêm bớt ngôn ngữ vào ROM

ngochoangimsat

Administrator
Hi all!
Mình xin hướng dẫ cách clean language cho ROM, cách này sẽ rất hiệu quả đối với các máy có RAM yếu nhưng lại thích chạy các ROM nặng như CM (nếu hỗ trợ). Khi đó máy sẽ trống RAM nhiều hơn, chạy nhẹ nhàng hơn,mướt hơn...
Công cụ gồm có:
[FONT=&quot]1. [/FONT]Apktool để decompile/re_compile file apk
[FONT=&quot]2. [/FONT]Apk manager, dùng để sign app, trong tut này sẽ rất hạn chế dùng cái này vì không cần thiết.
[FONT=&quot]3. [/FONT]Total commander trên window, đây là công cụ quản lý file rất hữu ích trong tut này (các bạn search google để tải).
Các bước thực hiện:
[FONT=&quot]1. [/FONT]Tải apktool về, giải nén, copy hết các file vào thư mục c:\windows, về sau chỉ cần mở cmd lên là có thể gõ luôn đc apk.
[FONT=&quot]2. [/FONT]Tạo một thư mục (ví dụ d:\apk), copy các file apk cần clean vào thư mục đó, thường clean các file sau:
system\framework\framework-res.apk
system\app\AccountAndSyncSettings.apk
system\app\Bluetooth.apk
system\app\Browser.apk
system\app\Calculator.apk
system\app\Calendar.apk
system\app\CalendarProvider.apk
system\app\Camera.apk
system\app\CMParts.apk
system\app\Contacts.apk
system\app\DeskClock.apk
system\app\Email.apk
system\app\Gallery3D.apk
system\app\LatinIME.apk
system\app\Mms.apk
system\app\Music.apk
system\app\Phone.apk
system\app\Settings.apk
system\app\SystemUI.apk
[FONT=&quot]3. [/FONT]Tạo liên kết với framework, điều này rất cần thiết vì các system apps thường có liên kết với framework của chính ROM đó
Mở cmd, gõ:
Apktool if d:/apk/framework-res.apk
[FONT=&quot]4. [/FONT]Thực hiện clean file framework-res.apk:
Apktool d –f d:/apk/framework-res.apk
Thư mục framework-res sẽ được tạo theo đường dẫn:
C:\documents and setting\your_user_name\
Mở thư mục framework-res sẽ thấy thư mục /res/ đây là thư mục chứa các ngôn ngữ khác nhau, tương ứng là các thư mục như raw, values, xml (chứa ngôn ngữ default, không được xóa) và các thư mục như raw-xx, values-xx-, xml-xx, với xx là tên viết tắt của các nước (VD tiếng Việt sẽ là vi và vi-rVN). Các thư mục raw-xx, values-xx-, xml-xx có thể xóa hết. Các thư mục sau nếu có thì không xóa: values-land, values-finger, values-nokeys, values-keyhidden… (túm lại là thư mục nào không có từ viết tắt của quốc gia nào đó thì không xóa). Sauk hi xóa, sẽ trông như cửa sổ bên trái hình dưới:



Sauk hi xóa xong, thực hiện build (re_compile) file apk:
Apktool b ./framework-res
(./ là thay cho thư mục C:\documents and setting\your_user_name\).
Quá trình build sẽ nhanh hay chậm phụ thuộc vào app bạn build. Trong quá trình build sẽ xuất hiện các thông báo trên màn hình, nếu là warning thì không cần để ý, file apk vẫn sẽ đc buil, nếu là lỗi thì chỉ cần để ý thông báo lỗi trên màn hình thì có thể khắc phục đc.
Sauk hi build, mở thư mục ./framework-res/build/apk/ sẽ thấy có 1 file resources.arsc mới đc tạo ra, có dung lượng nhỏ hơn file resources.arsc của app gốc, dùng total commander, 1 cửa sổ tìm tới thư mục ./framework-res/build/apk/, một cửa sổ tìm tới thư mục d:\apk\, trông như ở dưới:



Click đúp vào file framework-res.apk ở cửa sổ bên phải để mở, rồi kéo file resources.arsc từ trái qua phải để ghi đè.



Như vậy đã clean xong file framework-res.apk và không cần phải resign.
Làm tương tự với các app khác.
Riêng với file latinime.apk, do rom mình dùng là CM7 nên dung lượng file latinime rất lớn, 17 mb+, sau khi clean, và build, dung lượng file latinime.apk trong ./latinime/dist/ chỉ còn 400 kb+, mình lấy file đó để vào thư mục “place here for signing” của apkmanager rồi sign, như vậy là có 1 file latinime mới dung lượng rất nhỏ.
Đây cũng là cách để add them TV cho các ROM chưa có TV (tạo thư mục values-vi, copy file string.xml đã dịch vào thư mục đó rồi build).
Cách thêm TV:
Nếu ROM không có TV thì bổ xung như sau:
tạo thư mục values-vi trong thư mục /res. Mở thư mục /res/value, copy file string.xml vào thư mục values-vi vừa tạo, mở file string vừa copy để dịch (hoặc cũng có thể extract TV từ các ROM khác có sẵn TV rồi lấy file string copy vào thư mục values-vi). Sau đó build lại, app đã có thêm TV.
Cách đọc và dịch file string:
Cấu tạo file string có dạng như sau:
Code:
<string name="additional_system_update" />
<string name="additional_system_update_menu" />
<string name="yes">Yes</string>
<string name="no">No</string>
<string name="device_info_default">Unknown</string>
<string name="turn_on_radio">Turn on radio</string>
<string name="turn_off_radio">Turn off radio</string>
<string name="radioInfo_menu_viewADN">View SIM address book</string>
<string name="radioInfo_menu_viewFDN">View Fixed Dialing Numbers</string>
<string name="radioInfo_menu_viewSDN">View Service Dialing Numbers</string>
Trong đó dòng trong dấu nháy kép là các attribute, dòng ở giữa hai dấu >< là string value, các bạn dịch dòng này. Chú ý trong dòng này thường có các ký tự như %s, %d... để nguyên các ký tự này.
Chúc các bạn tự mod đc 1 ROM theo ý muốn!
Nguồn:
https://tinhte.vn/threads/tut-clean-add-language-cho-rom.712984/
Nguồn:
https://forum.xda-developers.com/showthread.php?t=2213985
 
Sửa lần cuối:

ngochoangimsat

Administrator
Ở bài này, mình cũng làm một ví dụ của 1 Rom P500 (V20i T-mobile) để các bạn tham khảo và thực hành.

A. Apktool là gì?
- Đơn giản hãy tạm hiểu nó có thể giải mã các file apk và jar, phục vụ cho việc tùy chỉnh, sửa đổi các file đó
B. Apktool gồm file gì để hoạt động ( cách làm chi tiết đi kèm với ví dụ để các bạn dễ hiểu nhé)
- Đầy đủ gồm 3 file:
http://www.mediafire.com/?20zpfpa08aa39j7

apktool.zip
MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.
MEDIAFIRE.COM


2. Để vào đâu đó cho dễ nhớ (ví dụ máy mình là D:\apktool)
3. Đưa file apk hay jar cần giải mã vào thư mục trên
-> Thư mục lúc này gồm 3 file gốc của apktool và các file apk/jar mà ta đưa vào
4. Thực hiện giải mã:
- Vào Run gõ cmd, tại cửa sổ cmd chuyển đến thư mục apktool của bạn
Ví dụ máy mình:

D: -> Chuyển tới ổ D:\
cd apktool -> Chuyển tới thư mục D:\apktool\
apktool.bat d [file apk/jar cần giải mã] ./[thư mục cần tạo để đưa file đã giải mã vào]
(Ở đây mình lấy file framework-res.apk, chi tiết lệnh là: apktool.bat d framework-res.apk ./framework-res -> Lúc này trong thư mục apktool có thêm thư mục framework-res. Đây là file ta đã giải mã, việc ta cần làm là tùy chỉnh thư mục này và nén lại thôi)
5. Bắt đầu tùy chỉnh: thêm ngôn ngữ Việt cho bản Rom:
- Việc thêm ngôn ngữ này thực chất là add vào file framework-res.apk
- Ngoài ra có một chút của việc thiết Local và APN nhà mạng VN, nên mình nhân tiện hướng dẫn luôn ở đây.
->Mình đi vào chi tiết để thêm tiếng Việt nhanh và chuẩn nhất cho bản Rom V20i này:
+) Trước tiên ta thấy ở file framework-res.apk gốc của ta không có gói tiếng Việt (tức là thiếu thư mục value-vi tại D:\apktool\framework-res\res)
+) Ta thực hiện giải mã file framework-res của Rom V20G VN
Một lưu ý nhỏ ở bước này là do 2 file của 2 bản V20i và V20g trùng tên, nên ta phải đổi tên file framework của V20G, ví dụ đặt là framework-resV20G.apk. Sau đó đưa vào thư mục apktool để tiến hành giải mã như hướng dẫn ở trên
Giải mã xong ta vào thư mục D:\apktool\framework-resV20G\res, copy thư mục value-vi và đưa vào D:\apktool\framework-res\res.
6. Tiến hành nén file mà ta đã giải mã (cụ thể ở đây ta cần file framework của bản v20i sau khi được thêm gói tiếng Việt)
- Tại cửa sổ cmd, hãy chắc chắn bạn vẫn đang ở D:\apktool
- Gõ như sau:
apktool.bat b -f -d [tên thư mục đã giải mã]
(Ví dụ ở đây: apktool.bat b -f -d framework-res)
-> Lúc này tại thư mục D:\apktool\framework-res\dist sẽ chứa file bạn cần. Copy nó và thay thế cho file apk gốc trên bản Rom của bạn.
7. Các bước cuối cùng của ví dụ (ngoài lề):
Mình gọi là ngoài lề vì nó không liên quan đến việc dùng apktool, nhưng lại cần thiết để gói Tiếng Việt hoạt động.
- Ta vào thư mục System/etc của Rom V20G VN, cope file apns-conf.xml và thư mục flex để đưa vào thư mục system/etc của bản Rom V20I
-> Bạn đã có gói tiếng Việt và APN nhà mạng Việt Nam
- Tuy nhiên lúc này, do file setting gốc của V20i chưa tích hợp gói Tiếng Việt
-> Bạn copy file setting.apk từ bản V20G thay cho file này trên bản V20I. Và bạn đã có tiếng Việt hoàn chỉnh!
* Việc tùy chỉnh các file .jar tương tự nhé mọi người ^^
Hãy đọc thật kỹ trước khi thực hiện, chắn chắn bạn sẽ thành công
:)
Bài viết này bạn có thể copy đi đâu tùy thích, nhưng xin nhớ ghi rõ nguồn: PentiumT - tinhte.vn. Và nếu bạn thấy bài viết có ích, hãy "Thích" để động viên mình nhé :)
Xin cảm ơn đã đọc!


Nguồn: https://tinhte.vn/threads/p500-apktool-tinh-chinh-file-apk-va-jar-huong-dan-qua-vi-du-co-ban.1229091/
 
Top