You are on page 1of 5

Dch ngc ng dng Android tham kho hay chnh sa m ngun

C th bn mun xem m ngun ca mt ng dng no tham kho, thc tp bng


cch chnh sa cho ng dng chy theo mnh... Sau y l cch thc hin, t vic lm
lt file apk ca ng dng trn Google Play n vic dch ngc, chnh sa ri built li...
1. Ly file APK ca ng dng
Cc ng dng ci t chy trn Android l nhng file c ui apk, bn c th tm v ti
chng t nhiu ngun trn mng, thm ch mt s ngun cn cho php ti v file apk, sau
em ci t trc tip ln in thoi. Ngun ng dng di do v phong ph nht phi k ti l
ca hng Google Play (play.google.com), tuy nhin, Google Play ch cho php bn ti ng dng
v t thit b Android ch khng cung cp trc tip file apk. lm vic ny, gii php l s
dng cng c Real APK Leecher. chy Real APK Leecher, my tnh ca bn phi c Java SE
Runtime Environment (ti v ti http://www.mediafire. com/?cifi0vkfi39qcrf hoc
http://goo.gl/FjaJvQ). Bn c th ti Real APK Leecher t a ch http://www. mediafire.com/?
bmbhvkd6sxu66fw. Sau khi ti v v gii nn, bn chy file Real APK Leecher.exe.
u tin, mt hp thoi xut hin. Bn cn in thng tin ng nhp ca mnh ti phn
General Info. Ti mc Device ID, ly m Device ID trn thit b ca mnh, bn s dng tnh
nng gi in ca in thoi Android, nhp vo m *#*#8255#*#*. Mt trang thng tin s t
ng xut hin, cho bit cc thng tin thit b, trong c thng tin v Device ID.
n gin hn, bn c th s dng ng dng Device ID trn Google Play
(http://goo.gl/TVbc1v) ly Device ID ca thit b ca mnh. Tr li hp thoi, chn ngn ng
ti Default language/country, ti phn Choose default folder to save downloaded apps, bn chn
ng dn lu file apk ca ng dng khi ti v. Xong, bm Save vo ca s chnh. Nu c
thng bo li xut hin, bn bm OK b qua. Ti giao din chnh, cha c ng dng no xut
hin. tm, bn g tn ng dng mong mun vo khung tm kim pha trn, bn phi, v chng
s xut hin. ti v, bn phi bm chut chn ng dng mun ti, sau bm chut phi v
chn Download this app. Sau khi qu trnh ti v hon tt, bn tm n th mc cha file apk
c ch nh trong hp thoi lc ny ly file.
Cch ny ch gip bn ti cc ng dng min ph, i vi cc ng dng c thu ph, bn
vn c th ti sau khi tr ph ht nh ti v trn thit b Android, ch khc l vi cng c ny, bn
c th ly c trc tip file apk ca ng dng t Google Play.
2. Dch ngc ng dng vi mc ch tham kho m ngun
Bn cht file apk l mt dng file ng gi, bn c th gii nn bng 7zip (http://www.7zip.org/ download.html) v thu c nhng file ng gi c dng c dch dng, khng

th c c m ngun. By gi, bn cn dch ngc file apk sang jar (Java Archive), l mt
dng ng gi ca Java. lm iu ny, bn ti cng c dex2jar v ti https://
code.google.com/p/dex2jar/downloads/list. Sau khi ti v, gii nn dex2jar. thun tin, bn
copy file .apk vo cng th mc ca dex2jar. Trong v d ny, file .apk c s dng l
iDict.apk, v th mc dex2jar-0.0.9.15 gii nn xong c i tn l dex2jar, lu theo ng dn
C:\dex2jar\.
Bn vo ca s Command Prompt (Start > Run > cmd), g theo c php cd <ng dn
th mc dex2jar>, trong v d ny l cd C:\dex2jar.
Sau , bn g theo c php dex2jar.bat <ng dn tuyt i ca file .apk>, y l
dex2jar.bat iDict.apk (v y file iDict.apk nm sn trong th mc dex2jar). Sau khi lm
xong, chng trnh s bo v tr file dch ngc. File dch ngc s nm trong th mc cha file
apk, c t tn theo c php [tn file .apk]_ dex2jar.jar, v d y l iDict_dex2jar.jar.
File jar xut ra l file gm cc bytes code nh phn ca Java, rt kh c trc tip, bn
cn s dng cng c jd-gui (http://java.decompiler. free.fr/?q=jdgui) c file ny. Sau khi ti,
vo File > Open m file jar. Vi jd-gui, file jar dch ngc d c hn so vi vic c trc
tip rt nhiu.
i vi nhng nh lp trnh, trnh b dch ngc ng dng ca mnh, h c th s
dng cc k thut nh obfuscate code, anti-reverse, hoc m ha bt i xng... lm cho mt s
thng tin ca cc hm, bin b xa khi ng dng. V vy i vi mt s ng dng, khi dch
ngc xong, khi xem bn s thy cc file a, b, c, d... vi mc ch lm cho sn phm tr nn kh
c.
Vic dch ngc ny cng khng m bo ton vn code, c ngha l bn dch ngc
xong, mang vo NetBean hay Eclipse khng phi lc no cng build ra c. Chng ta s dng
cch ny tham kho m ngun, cu trc chng trnh, phc v cho vic hc l chnh.
3. Dch ngc, sa i ng dng
Vi vic dch ngc sau sa i v ng gi li ng dng, bn c th Vit ha ng
dng Android hoc thm ch hiu chnh ng dng (k c ng dng h thng), chy theo mnh.
lm vic ny, trn my tnh, bn cn chun b cc cng c: Java SE Runtime Environment (
c gii thiu lc ny), Java SE Development Kit (http://goo.gl/xR76he hoc http://goo.gl/
TfUlf). Bn ti v Apktool & baksmali/smali ti http://goo.gl/peqd67 (i vi Windows 7 hoc 8,
bn c th th ti ti http://goo.gl/b2T4Bc). Ngoi ra, nn trang b WinRAR hoc 7zip v ci t
thm Notepad++ (http://notepad-plus-plus.org/download) hiu chnh code d dng hn. Trn
thit b Android, bn cn ci t ng dng duyt file, v d nh Explorer (http://goo. gl/D1wjdF),
truy xut vo cc file ca h thng (c th yu cu root).
Sau khi ti Apktool & baksmali/smali v, bn gii nn v t v tr C: d thao tc.
Bn cng nn i tn th mc Apktool & baksmali/ smali thnh apktool nh v d trong bi vit
ny. Trn thit b Android, bn dng ng dng duyt file i vo ng dn /system/framework/,
chp file framework-res.apk t thit b Android vo my tnh. Lu bn ch chp ch khng di
chuyn hay can thip g thm v c th nh hng ti h thng. Nu mun dch ngc cc file
ng dng ca h thng Android nh Contacts.apk, Phone.apk. MusicPlayer.apk... (lu trong
/system/app/), bn cn chp thm file twframework-res.apk.
Bn em file framework-res.apk, cng vi file apk ca ng dng cn dch ngc (v d
y l iDict.apk), vo cng th mc apktool. Sau , trong th mc apktool, m file Command
Prompt.bat. Ti y, bn tin hnh dch ngc file apk bng cch g theo c php:
apktool if framework-res.apk
apktool d <tn file .apk cn dch ngc>

V d y l
apktool if framework-res.apk
apktool d iDict.apk
i vi cc ng dng h thng (Contacs.apk, Phone.apk, Camera.apk, Settings.apk...),
bn s dng c php:
apktool if framework-res.apk
apktool if twframework-res.apk
apktool d <tn file .apk cn dch ngc>
Sau khi thc hin xong, bn s thy xut hin mt th mc c tn ca ng dng cn dch
ngc ngay trong th mc apktool. Trong th mc , c th hiu chnh li cc file png, dng
Notepad++ hiu chnh cc file xml, smali... chnh l cc file d liu lp trnh ca ng dng.
Sau khi hiu chnh xong, bc tip theo l bin dch li (recompile) file apk. Trong ca
s Command Prompt lc ny, bn nhp theo c php:
apktool b -f -d <tn th mc cha cc file ca ng dng>
V d y l:
apktool b -f -d iDict
Khi lm xong, bn vo th mc cha cc file ca ng dng lc ny, s thy c thm th
mc dist cha file apk sa i, c th m bng WinRAR hoc 7zip. Sau , quay tr li file
apk gc cha sa i ( th mc apktool), bn cng m bng WinRAR hay 7zip. Nh vy, bn
ang m hai ca s WinRAR hoc 7zip, mt l ca file apk gc (cha trong th mc apktool),
mt l ca file apk sa i (cha trong th mc dist). Hy nhn vo ca s file apk gc, nu
thy c cc th mc META-INF, lib v file android.manifest. xml (nu bn khng chnh sa g
file ny) m ca s file apk hiu chnh khng c, bn chn ht, sau ko v th vo ca s
file apk sa i.
Hy chn OK nu c thng bo xc nhn. n y, c th chp file apk hiu chnh vo
thit b Android s dng, tuy nhin, bn nn tin hnh zipalign ng dng trc. Zipalign
l mt tin ch ti u ha mt ng dng Android (apk) c ng gi, cho php Android tng
tc vi ng dng hiu qu hn, v khi lm nh vy, n c kh nng lm cho cc ng dng v
ton b h thng Android nhanh hn nhiu. ng dng c zipalign s hot ng nhanh hn,
v s dng t b nh RAM.
zipalign, bn cn ti v ci t Android SDK (http://goo.gl/pLS9Up) trn my nu
cha c, sau , vo ng dn C:\Program Files\Android\ android-sdk\tools, tm v chp 2 file
zipalign.exe v draw9patch.bat dn vo th mc C:\Windows\here. Tip theo, bn g trong
Commander Prompt c php:
zipalign -fv 4 <ng dn km tn file .apk cn zipalign> <ng dn km tn file .apk
thnh phm zipalign>
4. Mt s v d can thip ng dng h thng
Bng cch trn, bn c th sa i rt nhiu ng dng, thm ch thay i vo su bn
trong ty kh nng ca mnh, n gin nht l c th Vit ha giao din ng dng . Sau y l
mt s v d v vic hiu chnh ng dng khi dch ngc c cp trn. Cc v d ny l
cc v d can thip vo ng dng h thng Android, v vy khi lm bn phi tht cn thn v sao
lu h thng trc. Sau khi hiu chnh xong v ng gi li theo cc bc hng dn trn, bn
chp file hiu chnh ln file c ca h thng.
Thay i hnh nn cho menu s xung ca thanh trng thi hot ng:
- File cn dch ngc: framework-res.apk (/system/ framework/).
- p dng cho: ICS, Jelly Bean.

Sau khi dch ngc, bn vo th mc framework-res v theo ng dn /res/drawablehdpi (hoc mdpi/ xhdpi), tm cc file c ui png c tn sau:
ab_bottom_solid_dark_holo.9.png
ab_solid_dark_holo.9.png
ab_stacked_transparent_light_holo.9.png
ab_transparent_dark_holo.9.png
ab_transparent_light_holo.9.png
Bn thay th cc file hnh nh ny bng cc file hnh nh mong mun (ghi ln), nn
ly phn gii 720x100 nu l th mc xhdpi, sau , dch li v chp vo h thng Android.
Nu mun thay i cc biu tng menu ny, bn c th dch ngc file Settings.apk
(\system\app\) ri sau vo ng dn settings/res/drawable-***dpi, sa i file
ic_launcher_settings.png ri dch li.
Thay i hnh nn trong menu ci t nhanh:
- File cn dch ngc: SystemUI.apk (/system/ framework/)
- p dng cho: CyanogenMod 10.1
Sau khi dch ngc, bn vo ng dn SystemUI\ res\drawable, dng Notepad++ m
file qs_tile_ background.xml, tm v i on m sau:
<?xml version=1.0 encoding=utf-8?>
<selector
xmlns:android=http://schemas.android.com/apk/ res/android>
<item android:state_pressed=true>
<color android:color=#ff212121 />
</item>
<item>
<color android:color=#ff161616 />
</item>
</selector>
thnh
<?xml version=1.0 encoding=utf-8?>
<selector
xmlns:android=http://schemas.android.com/apk/ res/android>
<item android:state_pressed=true android:drawable
=@drawable/qs_tile_background_pressed />
<item android:drawable=@drawable/qs_tile_background_normal />
</selector>
Sau , bn chn 2 file hnh nn c ui png, t tn qs_ tile_background_pressed.png v
qs_tile_background_ normal.png cho vo th mc drawable-xxxxdpi (bn c th chn bt c
hnh nh no, k c hnh trong sut) ri dch li.
Chnh sa thng bo pin:
- File cn dch ngc: systemUI.apk
Bn vo ng dn \systemUI\res\values-vi (vi ting Vit) hoc \systemUI\res\values
(vi ting Anh), m file strings.xml bng Notepad++ ri thay i theo mun. Bn lu trong
k hiu %d%% l k hiu s phn trm ca pin cn li.
Sau khi sa i v dch li xong, bn m file systemUI. apk lc ny ln bng
WinRAR/7zip, copy 2 file META-INF v AndroidManifest.xml vo th mc

SystemUI\build\apk. Sau khi copy xong, bn vo li ca s Command Prompt, g apktool b


systemUI. File SystemUI.apk thnh phm s nm trong th mc systemUI\dist.

You might also like