Sering kali kita jumpai kata "Android SDK" dan "Terminal Command" dalam dunia developing android. Apakah android sdk itu? Bagaimana menggunakannya? Mari kita bahas bersama tentang Android SDK dan Terminal Command
Android SDK adalah perangkat lunak yang digunakan dalam pengembangan aplikasi pada android. Berikut command yang umum dipakai, selanjutnya akan saya update lagi ke yang lebih luas lagi. Kalau ada command yang salah, tolong diberi masukan, nanti saya update lagi.
Beda penggunaan command di SDK dan terminal, semua command di SDK selalu diawali dengan 'adb ', command yang sama dapat digunakan di terminal dengan menghilangkan 'adb'.
Get latest android SDK (4.0) : di sini
Android USB driver (nexus family) untuk windows : di sini
USB vendor ID :
Cara menggunakan android SDK :
Android SDK
Basic functional command
Kalau command dibawah tidak berhasil, gunakan busybox, lalu setiap command dibawah tambahkan string 'busybox'. kecuali kode tersebut sudah di symlink
copy file/dir to device (dari desktop komputer ke phone)
code:
adb push <local> <remote>
copy file/dir from device (dari phone ke desktop komputer)
code:
adb pull <remote> <local>
move file (phone to komputer, phone to phone)
code:
adb mv <remote> <local>
*catatan : ketiga command diatas dapat langsung merename file
*contoh 1 :
File hosts.txt diinginkan untuk dicopy ke dalam folder /system/etc
1. file contoh.txt dicopy ke desktop
2. masuk ke cmd (pc) / terminal (mac)
3. masuk ke directory android-sdk/tools/
4. ketik adb push contoh.txt /system/etc/contoh.txt
*contoh 2 :
File hosts.txt diinginkan untuk dicopy dari komputer ke dalam phone folder /system/etc dan direname menjadi file hosts (tanpa extention)
1. file contoh.txt dicopy ke desktop
2. masuk ke cmd (pc) / terminal (mac)
3. masuk ke directory android-sdk/tools/
4. ketik adb push hosts.txt /system/etc/hosts.txt
*contoh 3 :
File hosts diinginkan untuk dicopy dari phone folder /data ke desktop dan direname menjadi file hosts.txt
1. masuk ke cmd (pc) / terminal (mac)
2. masuk ke directory android-sdk/tools/
3. ketik adb pull /system/etc/hosts hosts.txt
copy host->device only if changed (see 'adb help all')
code:
adb sync [ <directory> ]
Untuk memastikan file yg dicopy sudah benar2 written sebelum reboot
Run remote shell interactively
code:
adb shell
Run remote shell command
code:
adb shell <command>
Run emulator console command
code:
adb emu <command>
View device log
code:
adb logcat [ <filter-spec> ]
Forward socket connections
code:
adb forward <local> <remote>
*catatan : forward specs :
tcp:<port>
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
dev:<character device name>
jdwp:<process pid> (remote only)
Push this package file to the device and install it
code:
adb install [-l] [-r] <file>
('-l' artinya forward-lock aplikasi itu)
('-r' artinya reinstall aplikasi, dan menjaga data)
Remove this app package from the device
code:
adb uninstall [-k] <package>
('-k' artinya tetap menjaga data dan cache directories)
System code
Superuser code / substitute user code
code:
su
Restart android phone
code:
adb reboot
Masuk ke menu Recovery
code:
adb reboot recovery
dmesg (untuk mengetahui dump dari system, termasuk mac address, memory, networking)
code:
#dmesg
Clear search history
code:
su
code:
rm / data / data / com.android.vending / databases / suggestions.db
Search text didalam file
code:
grep
* catatan : berguna untuk parsing command output. 'ls | grep *something* adalah cara tercepat untuk list files yang memiliki string "something"
Mengganti rights (aturan) / menghilangkan rights dari suatu file atau folder
code:
chmod <kode number>
* catatan : sebelum chmod dapat dilakukan, read only harus diganti menjadi write accessible :
code:
mount -o remount,rw -t ext3 /dev/block/mmcblk1p21 /system
Melihat free disk space
code:
df
Menampilkan running process on top
code:
top
ADB shell command reference
code:
Silakan melihat di sini atau masukan command ls /system/bin
Android Edify Script
Edify Functions and Expressions
contoh source tree code
code:
grep -rn RegisterFunction\(\" bootable/recovery/* device/* 2>/dev/null | sed -n 's/^.*RegisterFunction("\(.*\)",.*$/\1/p' | sort
Hasilnya:
Contoh Script Syntac :
1. copy_dir
Code:
copy_dir <src-dir> <dst-dir> [<timestamp>]
Copy the contents of <src-dir> to <dst-dir>. The original contents of <dst-dir> are preserved unless something in <src-dir> overwrote them.
Ex: copy_dir PACKAGE:system SYSTEM:
2. format
Code:
format <root>
Format a partiti0n
Ex: format SYSTEM:, will format entire /system . Note: formatting erases data irreversibly.
3. delete
Code:
delete <file1> [... <fileN>]
Delete file.
EX: delete SYSTEM:app/Calculator.apk, will delete Calculator.apk from system/app directory.
4. delete_recursive
Code:
delete_recursive <file-or-dir1> [... <file-or-dirN>]
Delete a file or directory with all of it’s contents recursively
Ex: delete_recursive DATA:dalvik-cache, will delete /data/dalvik-cache directory with all of it’s contents
5. run_program
Code:
run_program <program-file> [<args> ...]
Run an external program included in the update package.
Ex: run_program PACKAGE:install_busybox.sh, will run install_busybox.sh script (shell command) included in the update package.
6. set_perm
Code:
set_perm <uid> <gid> <mode> <path> [... <pathN>]
Set ownership and permission of single file or entire directory trees, like ‘chmod’, ‘chown’, and ‘chgrp’ all in one
Ex: set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh
7. set_perm_recursive
Code:
set_perm_recursive <uid> <gid> <dir-mode> <file-moe> <path> [... <pathN>]
Set ownership and permission of a directory with all of it’s contents recursively
Ex: set_perm_recursive 0 0 0755 0644 SYSTEM:app
8. show_progress
Code:
show_progress <fraction> <duration>
Use of the on-screen progress meter for the next operation, automatically advancing the meter over <duration> seconds (or more rapidly if the actual rate of progress can be determined).
Ex: show_progress 0.1 0
9. symlink
Code:
symlink <link-target> <link-path>
Create a symlink (like ‘ln-s’). The <link-path> is in rootath format, but <link-target> is
for the target filesystem (and may be relative)
Bagaimana membuat update.zip
Auto signer ini diperlukan supaya system mau flash update.zip. seandainya tidak sign, maka tidak akan diflash oleh system.
2. Buatlah folder structure.
Jika ingin membuat dari awal, buatlah folder baru dan beri nama sesuai keinginan. Folder dummy Ini akan diisi hasil kerja yg ingin diflash.
3. Buatlah folder baru didalam folder awal. Folder ini akan berisi file yg akan diflash, contoh jika ingin membuat update zip untuk membuat wallpaper dapat dibuat seperti : "New Folder/system/customize/resource"
4. Buatlah update-script (untuk memerintahkan apa yg akan dilakukan system)
Buatlah struktur sperti ini: "New Folder/META-INF/com/google/android"
"META-INF" harus huruf kapital.
buatlah sebuah file di dalam "android" folder dan rename menjadi "update-script"
Isilah string seperti contoh dibawah ini:
Code:
show_progress 0.1 0
copy_dir PACKAGE:(x) (X):
set_perm_recursive 0 0 0755 0644 (X):(y)
show_progress 0.1 10
replace (x) dengan directory di root system dalam huruf kecil, mis : system atau data atau sdcard.
replace (X) sperti (x) dalam huruf kapital mis: SYSTEM atau DATA atau SDCARD.
replace (y) untuk directory selanjutnya dalam huruf kecil sperti media atau app atau customize.
* catatan : Jika tujuan file adalah ke root (X) folder biarkan (X) blank, tanpa spasi.
Contoh : jika ingin flash sebuah app ke system
Code:
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 0755 0644 SYSTEM:app
show_progress 0.1 10
5. save dan close file. jika file di langkah diatas dibuat dgn wordpad, hapus extention file tsb.
6. kompres isi file New Folder tsb menjadi zip file. File zip tsb adalah seperti : "update.zip/(folders)" bukan "update.zip/New Folder/(folders)"
7. Sign file zip tsb, dan copy ke root sdcard. Reboot recovery dan flash file tsb
Enable Adhoc WiFi with wpa_supplicant mod
Sistem android pada dasarnya dapat menerima seluruh sinyal wifi baik yang dipancarkan oleh mode infrastructure ataupun adhoc. Namun kebijakan dari android sendiri yang membuat ad-hoc (IBSS) entry difilter dari hasil scan result yang dilaporkan dalam file the wpa_supplicant.
Solusi yang bisa dilakukan adalah dengan patch supaya WifiStateTracker tidak memfilter IBSS entry dan set wpa_supplicant in AP_SCAN 2 mode untuk memunculkan IBSS baru tanpa memunculkan hasil awal yang difilter. Cara ini adalah dengan modifikasi java framework.
hasil patch ini :
- removes the [IBSS] flag from scan results,
- masquerades and demasquerades ad-hoc ssid with (*) prefix
- sets mode 1 (ad-hoc) if the ssid is for IBSS
- permits the supplicant to select an IBSS when associating to a given ssid
hasil patch berupa update.zip dapat dicari sesuai di forum xda-developer. Karena file wpa_supplicant biasanya sudah dimodifikasi sesuai dengan hardware tertentu.
contoh file wpa_supplicant yang sudah dimodifikasi dari forum.xda-developers silakan buka di sini
Block Ad di sistem android
Android seperti pada operating system lainnya dapat memblok iklan dengan cara modifikasi file hosts. File hosts ini ditujukan agar semua koneksi yang berhubungan dengan iklan diredirect ke local host 127.0.0.1
File hosts pada android pada umumnya dapat ditemukan di /system/etc/
Edit file tsb dengan file explorer, lalu tambahkan alamat website yang diinginkan untuk diblok didalam file hosts tsb.
Modifikasi file apk
3 hal yang harus dimiliki : android sdk (folder dan subfolder dimana android sdk berada, tidak boleh memiliki spasi), 7zip, dan Stericsons autosign tool
1. klik kanan di file apk dan di menu 7zip pilih open archieve. Disini, kita dapan melakukan modifikasi yang diinginkan (mis : gambar, icon, dll).
2. Hapus folder Meta*** (folder ini berisi signature)
3. Setelah selesai, tutup 7zip, dan drag file apk ke autosign tool icon.
4. langkah ke-3 dapat diganti dgn app signapktic dari market.
Atau dapat juga menggunakan MaxiEdit dari sini
Jika ada syntac yang salah harap segera memberi masukan kepada saya, atau jika anda binggung menggunakannya dan ingin mengharapkan respone langsung anda dapat menuju link referensinya, sebagian besar dari syntac diatas berjalan lancar ketika saya coba.