nyan~

Engineering Rocks!

Android

Codenames

Google I/O

Debug

1
2
import java.lang.Thread
Thread.dumpStack();
1
2
3
#include <utils/CallStack.h>
CallStack stack;
stack.dump("[log prefix]");
  • KeyEvent

Find keycode in frameworks/base/core/java/android/view/KeyEvent.java

1
2
3
4
$adb shell input keyevent [key code]
$adb shell input keyevent 27    # camera
$adb shell input keyevent 82    # unlock screen
$adb shell input text "ANDROID" # input string

Optimization

Step1: Installing the bootchart tool

Download bootchart

1
2
3
$tar xjf bootchart-0.9.tar.bz2
$cd bootchart-0.9
$sudo ./install.sh

Step2: Compile init with bootchart enabled and flash images

1
2
3
$touch [mydroid]/system/core/init/init.c
$export INIT_BOOTCHART=true
$m init ramdisk bootimage

Step3: Trigger bootchart

1
2
$adb shell 'echo 20 > /data/bootchart-start'
$adb shell mkdir /data/bootchart

Step4: Get bootchart.tgz

1
$/system/core/init/grab-bootchart.sh

Step5: Generate bootchart image

1
$java -jar [path to bootchart]/bootchart-0.9/bootchart.jar bootchart.tgz

Display

set display timeout and stay awake
1
2
3
4
5
6
7
8
9
10
$adb shell
#sqlite3 /data/data/com.android.providers.settings/databases/settings.db
#.databases
#.tables
#.dump
#select * from <table>;
#delete from <table> where <condition>;
#update system set value="1800000" where name="screen_off_timeout";
#update system set value="3" where name="stay_on_while_plugged_in";
#.exit

Code Snippet

  • Property Permission

system/core/init/property_service.c

  • Device ID
Device ID
1
2
$adb shell cat /sys/class/android_usb/android0/iSerial
$adb shell getprop ro.serialno
out/target/product/[target name]/recovery/root/init.rc
1
write /sys/class/android_usb/android0/iSerial ${ro.serialno}
system/core/init/init.c
1
property_set("ro.serialno")

Others

Open Browser with url
1
$adb shell am start [url]
Start Java App
1
$adb shell am start -n [com.package.name]/[com.package.name.ActivityName]
Playback Video
1
$adb shell am start -a android.intent.action.VIEW -d ////[path to video]/[video file name] -t video/* -n com.android.gallery3d/.app.MovieActivity