Skip to content

Instantly share code, notes, and snippets.

@s7ephen
Created October 1, 2010 18:06
Show Gist options
  • Save s7ephen/606598 to your computer and use it in GitHub Desktop.
Save s7ephen/606598 to your computer and use it in GitHub Desktop.
Viewing Android binary XML (kinda)
Below is the tool (and its arguments) for reading/viewing the data inside Android's binary XML format.
./aapt l -a /data/apps/freeware/android/sl4a_r1.apk <-- gives a list of assets in the package.
./aapt d xmlstrings /data/apps/freeware/android/sl4a_r1.apk res/xml/preferences.xml <-- the path to this was taken from the list of assets printed above
./aapt d xmltree /data/apps/freeware/android/sl4a_r1.apk res/xml/preferences.xml <-- the path to this was taken from the list of assets printed above
=== ACTUALLY RUNNING IT ===
navi-two:tools s7ephen$ pwd
/Users/s7ephen/Desktop/android-sdk-mac_86/platforms/android-7/tools
navi-two:tools s7ephen$ ./aapt d xmltree /data/apps/freeware/android/sl4a_r1.apk res/xml/preferences.xml
N: android=http://schemas.android.com/apk/res/android
E: PreferenceScreen (line=2)
E: PreferenceCategory (line=4)
A: android:title(0x010101e1)="General" (Raw: "General")
E: CheckBoxPreference (line=6)
A: android:title(0x010101e1)="Usage tracking" (Raw: "Usage tracking")
A: android:key(0x010101e8)="usagetracking" (Raw: "usagetracking")
A: android:summary(0x010101e9)="Allow anonymous usage tracking." (Raw: "Allow anonymous usage tracking.")
A: android:defaultValue(0x010101ed)=(type 0x12)0x0
E: PreferenceCategory (line=12)
A: android:title(0x010101e1)="Script Manager" (Raw: "Script Manager")
E: CheckBoxPreference (line=14)
A: android:title(0x010101e1)="Show all files" (Raw: "Show all files")
A: android:key(0x010101e8)="show_all_files" (Raw: "show_all_files")
A: android:defaultValue(0x010101ed)=(type 0x12)0x0
E: PreferenceCategory (line=19)
A: android:title(0x010101e1)="Script Editor" (Raw: "Script Editor")
E: ListPreference (line=21)
A: android:entries(0x010100b2)=@0x7f070000
A: android:title(0x010101e1)=@0x7f080006
A: android:key(0x010101e8)="editor_fontsize" (Raw: "editor_fontsize")
A: android:summary(0x010101e9)=@0x7f080007
A: android:defaultValue(0x010101ed)=@0x7f080017
A: android:dialogTitle(0x010101f2)=@0x7f080008
A: android:entryValues(0x010101f8)=@0x7f070009
E: PreferenceCategory (line=30)
A: android:title(0x010101e1)="Terminal" (Raw: "Terminal")
E: EditTextPreference (line=32)
A: android:title(0x010101e1)=@0x7f08002c
A: android:key(0x010101e8)="scrollback" (Raw: "scrollback")
A: android:summary(0x010101e9)=@0x7f08002d
A: android:defaultValue(0x010101ed)=(type 0x10)0x8c
E: EditTextPreference (line=37)
A: android:title(0x010101e1)=@0x7f08003e
A: android:key(0x010101e8)="fontsize" (Raw: "fontsize")
A: android:defaultValue(0x010101ed)=(type 0x10)0xa
E: org.connectbot.util.EncodingPreference (line=41)
A: android:title(0x010101e1)=@0x7f080041
A: android:key(0x010101e8)="encoding" (Raw: "encoding")
A: android:summary(0x010101e9)=@0x7f080042
E: ListPreference (line=45)
A: android:entries(0x010100b2)=@0x7f070001
A: android:title(0x010101e1)=@0x7f08002e
A: android:key(0x010101e8)="rotation" (Raw: "rotation")
A: android:summary(0x010101e9)=@0x7f08002f
A: android:defaultValue(0x010101ed)="Default" (Raw: "Default")
A: android:entryValues(0x010101f8)=@0x7f070002
E: Preference (line=52)
A: android:title(0x010101e1)=@0x7f080009
A: android:key(0x010101e8)="color" (Raw: "color")
A: android:summary(0x010101e9)=@0x7f08000a
E: intent (line=56)
A: android:action(0x0101002d)="com.googlecode.android_scripting.PICK_TERMINAL_COLORS" (Raw: "com.googlecode.android_scripting.PICK_TERMINAL_COLORS")
E: CheckBoxPreference (line=59)
A: android:title(0x010101e1)=@0x7f080030
A: android:key(0x010101e8)="fullscreen" (Raw: "fullscreen")
A: android:summary(0x010101e9)=@0x7f080031
A: android:defaultValue(0x010101ed)=(type 0x12)0x0
E: ListPreference (line=64)
A: android:entries(0x010100b2)=@0x7f070007
A: android:title(0x010101e1)=@0x7f08003f
A: android:key(0x010101e8)="delkey" (Raw: "delkey")
A: android:summary(0x010101e9)=@0x7f080040
A: android:entryValues(0x010101f8)=@0x7f070008
E: ListPreference (line=70)
A: android:entries(0x010100b2)=@0x7f070003
A: android:title(0x010101e1)=@0x7f080032
A: android:key(0x010101e8)="keymode" (Raw: "keymode")
A: android:summary(0x010101e9)=@0x7f080033
A: android:defaultValue(0x010101ed)="Use right-side keys" (Raw: "Use right-side keys")
A: android:entryValues(0x010101f8)=@0x7f070004
E: ListPreference (line=77)
A: android:entries(0x010100b2)=@0x7f070005
A: android:title(0x010101e1)=@0x7f080034
A: android:key(0x010101e8)="camera" (Raw: "camera")
A: android:summary(0x010101e9)=@0x7f080035
A: android:defaultValue(0x010101ed)="Ctrl+A then Space" (Raw: "Ctrl+A then Space")
A: android:entryValues(0x010101f8)=@0x7f070006
E: CheckBoxPreference (line=84)
A: android:title(0x010101e1)=@0x7f080036
A: android:key(0x010101e8)="keepalive" (Raw: "keepalive")
A: android:summary(0x010101e9)=@0x7f080037
A: android:defaultValue(0x010101ed)=(type 0x12)0xffffffff
E: CheckBoxPreference (line=89)
A: android:title(0x010101e1)=@0x7f080038
A: android:key(0x010101e8)="bumpyarrows" (Raw: "bumpyarrows")
A: android:summary(0x010101e9)=@0x7f080039
A: android:defaultValue(0x010101ed)=(type 0x12)0xffffffff
E: PreferenceCategory (line=95)
A: android:title(0x010101e1)="Terminal bell" (Raw: "Terminal bell")
E: CheckBoxPreference (line=97)
A: android:title(0x010101e1)=@0x7f08003b
A: android:key(0x010101e8)="bell" (Raw: "bell")
A: android:defaultValue(0x010101ed)=(type 0x12)0xffffffff
E: org.connectbot.util.VolumePreference (line=101)
A: android:title(0x010101e1)=@0x7f08003c
A: android:key(0x010101e8)="bellVolume" (Raw: "bellVolume")
E: CheckBoxPreference (line=104)
A: android:title(0x010101e1)=@0x7f08003d
A: android:key(0x010101e8)="bellVibrate" (Raw: "bellVibrate")
A: android:defaultValue(0x010101ed)=(type 0x12)0xffffffff
navi-two:tools s7ephen$ ./aapt d xmlstrings /data/apps/freeware/android/sl4a_r1.apk res/xml/preferences.xml
String #0: title
String #1: key
String #2: summary
String #3: defaultValue
String #4: entries
String #5: entryValues
String #6: dialogTitle
String #7: action
String #8: android
String #9: http://schemas.android.com/apk/res/android
String #10:
String #11: PreferenceScreen
String #12: PreferenceCategory
String #13: General
String #14: CheckBoxPreference
String #15: usagetracking
String #16: Usage tracking
String #17: Allow anonymous usage tracking.
String #18: Script Manager
String #19: show_all_files
String #20: Show all files
String #21: Script Editor
String #22: ListPreference
String #23: editor_fontsize
String #24: Terminal
String #25: EditTextPreference
String #26: scrollback
String #27: fontsize
String #28: org.connectbot.util.EncodingPreference
String #29: encoding
String #30: rotation
String #31: Default
String #32: Preference
String #33: color
String #34: intent
String #35: com.googlecode.android_scripting.PICK_TERMINAL_COLORS
String #36: fullscreen
String #37: delkey
String #38: keymode
String #39: Use right-side keys
String #40: camera
String #41: Ctrl+A then Space
String #42: keepalive
String #43: bumpyarrows
String #44: Terminal bell
String #45: bell
String #46: org.connectbot.util.VolumePreference
String #47: bellVolume
String #48: bellVibrate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment