• Hiện tại trang web đang trong quá hình chuyển đổi và tái cấu trúc lại chuyên mục nên có thể một vài chức năng chưa hoàn thiện, một số bài viết và chuyên mục sẽ thay đổi. Nếu sự thay đổi này làm bạn phiền lòng, mong bạn thông cảm. Chúng tôi luôn hoan nghênh mọi ý kiến đóng góp để chúng tôi hoàn thiện và phát triển. Cảm ơn

Tìm hiểu về tweak/ mod cho Android phone/HOX cho người mới bắt đầu.

batanguyen

New Member
Bài này của mình chứ đâu :))
http://android24h.com/threads/3/

Có đọc và thấy cái phần này được ghi trong bài post không ??

Tôi rất tôn trọng việc chia sẽ của mọi người và bài này tôi search trên google và thấy trên softvnn thì ghi nguồn là của softvnn thế thôi, thậm chí post link qua tới đúng bài post đó. Còn nếu bài này của bạn mà bạn không đồng ý cho post thì tôi lập tức xóa ngay thôi.

Và tôi đã thêm cái nguồn gốc của bạn vào bài post
 
Chỉnh sửa cuối:

minhlc1958

Active Member
Có đọc và thấy cái phần này được ghi trong bài post không ??


Tôi rất tôn trọng việc chia sẽ của mọi người và bài này tôi search trên google và thấy trên softvnn thì ghi nguồn là của softvnn thế thôi, thậm chí post link qua tới đúng bài post đó. Còn nếu bài này của bạn mà bạn không đồng ý cho post thì tôi lập tức xóa ngay thôi.

Và tôi đã thêm cái nguồn gốc của bạn vào bài post

Mình hoan nghênh tinh thần sưu tầm và chia sẻ của bạn, mình nghĩ bạn ấy ko đến nỗi hẹp hòi đến thế đâu có lẽ bạn ấy tự muốn giới thiệu về mình tí thôi
 

minhlc1958

Active Member
[ICONS] Stock battery percentage
battpercentmodpreview.png


Path


Link hướng dẫn decompile file apk
http://forum.xda-developers.com/showthread.php?t=1601511

Một số mẫu icon up qua recovery nè
http://forum.xda-developers.com/showthread.php?t=1588789

Nguồn
Mã:
http://forum.xda-developers.com/showthread.php?t=1610539

Mình góp ý thêm chỗ này nếu các bạn dùng cách 2 tức là khi up qua recovery nó sẽ thay cả ứng dụng SystemUI.apk chứ không phải chỉ đơn giản là thay icon pin
Như vậy cũng đồng nghĩa nó sẽ thay đổi những tính năng thuộc ứng dụng SystemUI.apk
 
Chỉnh sửa cuối:

minhlc1958

Active Member
Mod % pin bằng cách chỉnh sửa file framework-res.apk


Giải nén 2 file đó trong 1 thư mục, ở đây mình giải nén trong thư mục Android ở ổ C.

Tiếp theo copy file framework-res.apk từ máy của bạn vào thư mục Android, Start -> run -> cmd nhập lệnh: cd C:\Android

Tiếp tục decompiler file framework-res.apk bằng lệnh: apktool d -f framework-res.apk và bạn có folder framework-res trong thư mục Android.

Vào tiếp thư mục framework-res -> res -> drawable-hdpi và thay thế các file hình ảnh pin trong thư mục này, cái này bạn tự làm nhé vì mỗi rom tên mấy file này lại khác nhau =.=

Ở đây mình có 1 bộ đầy đủ, bạn nào ko thích search bên xda đầy: http://www.mediafire.com/?4fstdiboeyc7950

Thường các máy android chỉ có 5 bậc pin thôi (cũng chả nhớ =.=)

Tiếp theo các bạn vào thư mục drawable, tìm tập tin stat_sys_battery.xml, nhìn các dòng dưới cùng chắc các bạn cũng đủ hiểu, máy mình là SHW-M110S nên chỉ có 5 bậc pin, mình thêm vào cho đủ 100 bậc tương ứng với tên các file hình ảnh lúc nãy vừa thay thế vào thư mục drawable-hdpi, cụ thể:
Mã:
<item android:drawable="@drawable/stat_sys_battery_1" android:maxLevel="1" />
<item android:drawable="@drawable/stat_sys_battery_2" android:maxLevel="2" />
<item android:drawable="@drawable/stat_sys_battery_3" android:maxLevel="3" />
<item android:drawable="@drawable/stat_sys_battery_4" android:maxLevel="4" />
<item android:drawable="@drawable/stat_sys_battery_5" android:maxLevel="5" />
<item android:drawable="@drawable/stat_sys_battery_6" android:maxLevel="6" />
<item android:drawable="@drawable/stat_sys_battery_7" android:maxLevel="7" />
<item android:drawable="@drawable/stat_sys_battery_8" android:maxLevel="8" />
<item android:drawable="@drawable/stat_sys_battery_9" android:maxLevel="9" />
<item android:drawable="@drawable/stat_sys_battery_10" android:maxLevel="10" />
<item android:drawable="@drawable/stat_sys_battery_11" android:maxLevel="11" />
<item android:drawable="@drawable/stat_sys_battery_12" android:maxLevel="12" />
<item android:drawable="@drawable/stat_sys_battery_13" android:maxLevel="13" />
<item android:drawable="@drawable/stat_sys_battery_14" android:maxLevel="14" />
<item android:drawable="@drawable/stat_sys_battery_15" android:maxLevel="15" />
<item android:drawable="@drawable/stat_sys_battery_16" android:maxLevel="16" />
<item android:drawable="@drawable/stat_sys_battery_17" android:maxLevel="17" />
<item android:drawable="@drawable/stat_sys_battery_18" android:maxLevel="18" />
<item android:drawable="@drawable/stat_sys_battery_19" android:maxLevel="19" />
<item android:drawable="@drawable/stat_sys_battery_20" android:maxLevel="20" />
<item android:drawable="@drawable/stat_sys_battery_21" android:maxLevel="21" />
<item android:drawable="@drawable/stat_sys_battery_22" android:maxLevel="22" />
<item android:drawable="@drawable/stat_sys_battery_23" android:maxLevel="23" />
<item android:drawable="@drawable/stat_sys_battery_24" android:maxLevel="24" />
<item android:drawable="@drawable/stat_sys_battery_25" android:maxLevel="25" />
<item android:drawable="@drawable/stat_sys_battery_26" android:maxLevel="26" />
<item android:drawable="@drawable/stat_sys_battery_27" android:maxLevel="27" />
<item android:drawable="@drawable/stat_sys_battery_28" android:maxLevel="28" />
<item android:drawable="@drawable/stat_sys_battery_29" android:maxLevel="29" />
<item android:drawable="@drawable/stat_sys_battery_30" android:maxLevel="30" />
<item android:drawable="@drawable/stat_sys_battery_31" android:maxLevel="31" />
<item android:drawable="@drawable/stat_sys_battery_32" android:maxLevel="32" />
<item android:drawable="@drawable/stat_sys_battery_33" android:maxLevel="33" />
<item android:drawable="@drawable/stat_sys_battery_34" android:maxLevel="34" />
<item android:drawable="@drawable/stat_sys_battery_35" android:maxLevel="35" />
<item android:drawable="@drawable/stat_sys_battery_36" android:maxLevel="36" />
<item android:drawable="@drawable/stat_sys_battery_37" android:maxLevel="37" />
<item android:drawable="@drawable/stat_sys_battery_38" android:maxLevel="38" />
<item android:drawable="@drawable/stat_sys_battery_39" android:maxLevel="39" />
<item android:drawable="@drawable/stat_sys_battery_40" android:maxLevel="40" />
<item android:drawable="@drawable/stat_sys_battery_41" android:maxLevel="41" />
<item android:drawable="@drawable/stat_sys_battery_42" android:maxLevel="42" />
<item android:drawable="@drawable/stat_sys_battery_43" android:maxLevel="43" />
<item android:drawable="@drawable/stat_sys_battery_44" android:maxLevel="44" />
<item android:drawable="@drawable/stat_sys_battery_45" android:maxLevel="45" />
<item android:drawable="@drawable/stat_sys_battery_46" android:maxLevel="46" />
<item android:drawable="@drawable/stat_sys_battery_47" android:maxLevel="47" />
<item android:drawable="@drawable/stat_sys_battery_48" android:maxLevel="48" />
<item android:drawable="@drawable/stat_sys_battery_49" android:maxLevel="49" />
<item android:drawable="@drawable/stat_sys_battery_50" android:maxLevel="50" />
<item android:drawable="@drawable/stat_sys_battery_51" android:maxLevel="51" />
<item android:drawable="@drawable/stat_sys_battery_52" android:maxLevel="52" />
<item android:drawable="@drawable/stat_sys_battery_53" android:maxLevel="53" />
<item android:drawable="@drawable/stat_sys_battery_54" android:maxLevel="54" />
<item android:drawable="@drawable/stat_sys_battery_55" android:maxLevel="55" />
<item android:drawable="@drawable/stat_sys_battery_56" android:maxLevel="56" />
<item android:drawable="@drawable/stat_sys_battery_57" android:maxLevel="57" />
<item android:drawable="@drawable/stat_sys_battery_58" android:maxLevel="58" />
<item android:drawable="@drawable/stat_sys_battery_59" android:maxLevel="59" />
<item android:drawable="@drawable/stat_sys_battery_60" android:maxLevel="60" />
<item android:drawable="@drawable/stat_sys_battery_61" android:maxLevel="61" />
<item android:drawable="@drawable/stat_sys_battery_62" android:maxLevel="62" />
<item android:drawable="@drawable/stat_sys_battery_63" android:maxLevel="63" />
<item android:drawable="@drawable/stat_sys_battery_64" android:maxLevel="64" />
<item android:drawable="@drawable/stat_sys_battery_65" android:maxLevel="65" />
<item android:drawable="@drawable/stat_sys_battery_66" android:maxLevel="66" />
<item android:drawable="@drawable/stat_sys_battery_67" android:maxLevel="67" />
<item android:drawable="@drawable/stat_sys_battery_68" android:maxLevel="68" />
<item android:drawable="@drawable/stat_sys_battery_69" android:maxLevel="69" />
<item android:drawable="@drawable/stat_sys_battery_70" android:maxLevel="70" />
<item android:drawable="@drawable/stat_sys_battery_71" android:maxLevel="71" />
<item android:drawable="@drawable/stat_sys_battery_72" android:maxLevel="72" />
<item android:drawable="@drawable/stat_sys_battery_73" android:maxLevel="73" />
<item android:drawable="@drawable/stat_sys_battery_74" android:maxLevel="74" />
<item android:drawable="@drawable/stat_sys_battery_75" android:maxLevel="75" />
<item android:drawable="@drawable/stat_sys_battery_76" android:maxLevel="76" />
<item android:drawable="@drawable/stat_sys_battery_77" android:maxLevel="77" />
<item android:drawable="@drawable/stat_sys_battery_78" android:maxLevel="78" />
<item android:drawable="@drawable/stat_sys_battery_79" android:maxLevel="79" />
<item android:drawable="@drawable/stat_sys_battery_80" android:maxLevel="80" />
<item android:drawable="@drawable/stat_sys_battery_81" android:maxLevel="81" />
<item android:drawable="@drawable/stat_sys_battery_82" android:maxLevel="82" />
<item android:drawable="@drawable/stat_sys_battery_83" android:maxLevel="83" />
<item android:drawable="@drawable/stat_sys_battery_84" android:maxLevel="84" />
<item android:drawable="@drawable/stat_sys_battery_85" android:maxLevel="85" />
<item android:drawable="@drawable/stat_sys_battery_86" android:maxLevel="86" />
<item android:drawable="@drawable/stat_sys_battery_87" android:maxLevel="87" />
<item android:drawable="@drawable/stat_sys_battery_88" android:maxLevel="88" />
<item android:drawable="@drawable/stat_sys_battery_89" android:maxLevel="89" />
<item android:drawable="@drawable/stat_sys_battery_90" android:maxLevel="90" />
<item android:drawable="@drawable/stat_sys_battery_91" android:maxLevel="91" />
<item android:drawable="@drawable/stat_sys_battery_92" android:maxLevel="92" />
<item android:drawable="@drawable/stat_sys_battery_93" android:maxLevel="93" />
<item android:drawable="@drawable/stat_sys_battery_94" android:maxLevel="94" />
<item android:drawable="@drawable/stat_sys_battery_95" android:maxLevel="95" />
<item android:drawable="@drawable/stat_sys_battery_96" android:maxLevel="96" />
<item android:drawable="@drawable/stat_sys_battery_97" android:maxLevel="97" />
<item android:drawable="@drawable/stat_sys_battery_98" android:maxLevel="98" />
<item android:drawable="@drawable/stat_sys_battery_99" android:maxLevel="99" />
<item android:drawable="@drawable/stat_sys_battery_100" android:maxLevel="100" />
Mình nghĩ các dòng khác thì code khác nhau nên các bạn chỉnh sửa cho phù hợp với dòng máy của mình, con samsung thì giống cái này hết đấy ^^

Xong rồi Recompilation file framework-res.apk bằng lệnh: apktool b -f framework-res(Lưu ý ko có đuôi .apk nhé)

Xong đâu đấy open file framework-res.apk trong folder Android bằng winrar, rồi vào thư mục framework-res/build/apk/res kéo các thư mục drawable và drawable-hdpi vào thay thế các thư mục tương ứng trong framework-res đang mở bằng winrar, tiếp tục ra lại framework-res/build/apk/resources.arsc cũng làm như trên. (Làm nãy giờ cốt để có file resources.arsc này =.=)

Sau đó copy file framework-res.apk vừa chỉnh sửa vào system/framework/ set quyền (không hiểu chổ này) và reboot là xong!

Từ cách trên bạn có thể mod đủ thứ như: animation, dock, thanh status...

Ở đây mình up file framework-res.apk của con SHW-M110S của mình, bạn nào thích thì copy thẳng vào system/framework/ set quyền và reboot là xong (các dòng khác đừng có thử nhé): http://www.mediafire.com/?6ys4o9w9h97pg7u

Nguồn
Mã:
http://www.tinhte.vn/threads/1261261/

Theo mình hiểu thôi nha thì thấy Custom ROM của One X thì chỉnh sửa trong file SystemUI.apk
Còn bài trên này thì lại sửa trong framework-res.apk
Không biết cái nào đúng nữa mong các bác chỉnh sửa cho ý kiến hộ để có bài hoàn chỉnh hơn một tý cho newbie như em.

Mod %pin ở 1x là chỉnh sửa và thay icon pin ở file SystemUI.apk cách thực hiện như trên
 

batanguyen

New Member
Mình hoan nghênh tinh thần sưu tầm và chia sẻ của bạn, mình nghĩ bạn ấy ko đến nỗi hẹp hòi đến thế đâu có lẽ bạn ấy tự muốn giới thiệu về mình tí thôi
Cháu xin tiếp thu ý kiến của bác và xin nhận khuyết điểm :|

Mình góp ý thêm chỗ này nếu các bạn dùng cách 2 tức là khi up qua recovery nó sẽ thay cả ứng dụng SystemUI.apk chứ không phải chỉ đơn giản là thay icon pin
Như vậy cũng đồng nghĩa nó sẽ thay đổi những tính năng thuộc ứng dụng SystemUI.apk
Vì khi bung 2 file framework-res và SystemUI thì đều thấy có icon pin trong ấy nhưng chỉ khác là bên framework-res chỉ có icon pin thứ là 0,10,15,20,28,40,43,57,60,71,80,85,100 và cũng tương tự cho icon charge_aim. Còn SystemUI thì nó có đủ hết từ 0 đến 100.

Và bên framework-res + SystemUI cũng có file stat_sys_battery.xml + stat_sys_battery_chargle.xml và không biết nên chỉnh sửa ở bên nào và không nên làm bên nào.

Mod %pin ở 1x là chỉnh sửa và thay icon pin ở file SystemUI.apk cách thực hiện như trên
Xin cảm ơn chia sẽ của bác
Sẳn bác cho cháu hỏi là để lấy được file framework-res.apk, SystemUI.apk, com.htc.resources.apk thì dùng cygwin exctract ROM ra rồi lấy sau đó dùng apktool để decompile file *.apk từ ROM phải không bác. Hay mở ROM bằng Winrar rồi tìm đến 3 file trên rồi click phải chọn "Extract to specticifed folder" rồi bắt đầu decompile nó được không bác?
 
Chỉnh sửa cuối:

thanhvo31

New Member
Sẳn bác cho cháu hỏi là để lấy được file framework-res.apk, SystemUI.apk, com.htc.resources.apk thì dùng cygwin exctract ROM ra rồi lấy sau đó dùng apktool để decompile file *.apk từ ROM phải không bác. Hay mở ROM bằng Winrar rồi tìm đến 3 file trên rồi click phải chọn "Extract to specticifed folder" rồi bắt đầu decompile nó được không bác?
Bạn cần apkmanager (khá thân thiện).

Làm theo hướng dẫn.

bạn cần bung systemui.apk

200 png, file battery stat, battery charge anim và public.xml nữa. ( cái naỳ cầ,n cấp resourceid cho từng icon khá đau đầu)
 

batanguyen

New Member
Hôm nay lang thang tìm thấy một bài trên blog của một bạn tên thangns
Mà không biết cái này có thể dùng để uprom để test được không nhỉ hay chỉ để test app thôi.

Nguồn

[Android Emulator] Cách tạo Android Virtual Devices(AVD) - Android Emulator trên Windows
1. Khởi động [Android SDK and AVD Manager]
Để tạo, tạo Android Virtual Devices(AVD), cần phải khởi động Android SDK and AVD Manager, nếu sử dụng installer_rx-windows.exe để cài đặt Android SDK thì có thể khởi động theo cách:
Nhấn [Start] -> [Programs] ->[Android SDK Tools]->[SDK Manager]
Còn nếu đã cài ADT Plugin for Eclipse thì có thể khởi động từ menu của Eclipse :
[Windows] -> [Android SDK and AVD Manager]
p01.jpg


Khởi động Android SDK and AVD Manager
2. Tạo Android Virtual Devices(AVD)
p02.jpg


Nhập các thông số cần thiết cho AVD
Name: Tên của AVD
Target: Chỉ định version cho AVD
SD Card: Chỉ định size cho SD-Card của AVD
Snapshot: Không cần chec
Skin: Chỉ định Skin, size của màn hình AVD sẽ phụ thuộc vào Skin được chọn. Hiện tại thì màn hình WVGA800 được coi là phổ biến nhất
Sau khi đã nhập các thông số cần thiết, nhấn nút [Create AVD] để tiến hành tạo AVD

Với hệ điều hành Windows, các file, thư mục liên quan đến AVD nằm ở thư mục
[USER_HOME]\.android\avd
Ví dụ với Windows 7, sẽ nằm tại : [C:\Users\TÊN_USER\.android\avd]

3. Khởi động AVD
p03.jpg

Mục bên trái chọn phần [Virtual], rồi trong danh sách các AVD chọn AVD muốn khởi động rồi nhấn [Start...]
----------------------------------
p04.jpg

Nếu muốn khởi động màn hình của AVD theo kích thước phóng to hoặc thu nhỏ thì chọn hộp [Scale display ...] rồi nhập giá trị vào khung phía dưới [Screen Size] -> theo kinh nghiệm thì 7 hoặc 8
-----------------------------------
p05.jpg

AVD khởi động
------------------------------
p06.jpg

Sau khi khởi động xong
-------------------------------------------
p07.jpg

Trong trường hợp màn hình bị khóa ....
-------------------------------------------
p08.jpg

Thì kéo hình cái khóa về bên phải để mở (Unlock)

Cách setup AVD HTC EVO mà mình tìm được từ

Mã:
[B]Step 1: Getting Comfortable with the Android SDK and AVD Manager[/B]
The Android SDK and AVD Manager is integrated into the Eclipse IDE when you install the Android Development Tools (ADT) plug-in. The Android SDK and AVD Manager is used to keep track of the different Android SDK targets installed on your development machine, as well as to manage the Android Virtual Devices (AVDs) used by the Android Emulator to mimic the behavior of real Android devices.
An Android Emulator must have an AVD configuration in order to function. An AVD represents a unique, persistent system image. Any Settings changed and applications installed while using the AVD within the Emulator will be stored within the system image.
An AVD configuration also describes how the emulator should emulate a real device, including:
What version of the Android platform to emulate (API Level) (Note: The target platform is subject to change if, and when, devices receive over-the-air updates)
Screen size, density, and resolution
SD Card size and contents
Hardware details (Camera? Keyboard? Trackball? D-Pad?)
A complete list of hardware emulation options, including settings and their default values, is available in the Android SDK documentation.
You can launch the Android SDK and AVD Manager from the Eclipse toolbar by pressing the button with the green Android icon with the arrow () or by choosing Window->Android SDK and AVD Manager.

[B]Step 2: Creating an AVD to Emulate the HTC Evo 4G[/B]
One of the newest Android devices on the market, the HTC Evo 4G is a powerful new phone with a nice big screen, a powerful processor, and a great camera.
The important specs of this device from an Emulator perspective are:
Target platform: Currently Android 2.1
Screen info: Large screen, high density
Lack of keyboard and DPad
Lack of trackball
Therefore, let’s create an AVD configuration called Evo4G:
Within Eclipse, launch the Android SDK and AVD Manager
Select “Virtual Devices” from the left-hand options
Click the “New” button to create a new AVD configuration
Name the AVD: “Evo4G”
Select the Target: “Google APIs API Level 7”
Input the SD Card Size: “8GB”
Input the Skin Details: “800×480”
Edit the Hardware Property for Abstracted LCD Density: “217”
Add another Hardware Property for DPad Support: “No”
Add another Hardware Property for Keyboard Support: “No”
Add another Hardware Property for Track-ball Support: “No”
Save the AVD

You have now created an AVD that can be used by the Android Emulator to closely resemble and behave like the HTC Evo 4G. If you launch an Android application in emulator while this AVD, you can see that the screen closely resembles the experience one would have on the actual device. If you own one of these devices, you may immediately notice that the screen doesn’t look the same (software-wise). The emulator does not provide third-party add-ons, such as the HTC Sense UI.
 

batanguyen

New Member
Bạn cần apkmanager (khá thân thiện).

Làm theo hướng dẫn.

bạn cần bung systemui.apk

200 png, file battery stat, battery charge anim và public.xml nữa. ( cái naỳ cầ,n cấp resourceid cho từng icon khá đau đầu)

Ví dụ thế này nhé :
Mình muốn lấy file SystemUI từ một custom nào đó thì chỉ việc exctract nó ra bằng winrar là được phải không bạn. Hay là phải dùng soft nào đó để bung ROM như cygwin chẳng hạn
 

thanhvo31

New Member
Ví dụ thế này nhé :
Mình muốn lấy file SystemUI từ một custom nào đó thì chỉ việc exctract nó ra bằng winrar là được phải không bạn. Hay là phải dùng soft nào đó để bung ROM như cygwin chẳng hạn

soft cygwin không phải để bung ROM mà là
nó là platform thôi, ko phải tool.

extract bằng winrar thì được file như ảnh thôi, còn xml thì dạng binary phải decompile, sau đó compile lại.
 
Top