Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Wednesday, July 21, 2010

G1 bootloader loop, zygote memory access error. signal 11 (SIGSEGV), fault addr

My friend got a G1 and he really love it. he hacked it and load it up with the 2.1. One day, the phone just crashed. and the lovely T-mobile logo appears on the bootup screen and never disappear. then he comes to me for any hints about the crash.

the first thing, I want to check the stacktace, or the logcat.
   then I run “Adb Shell Logcat “ , Get some interesting Loops. basically, the runtime cant start zygote which is the system library process owner.
   the stack looks like this.

I/Zygote  (  764): Preloading classes...
D/dalvikvm(  764): GC freed 793 objects / 50568 bytes in 5ms
D/dalvikvm(  764): GC freed 251 objects / 16168 bytes in 6ms
D/dalvikvm(  764): GC freed 295 objects / 18768 bytes in 7ms
D/dalvikvm(  764): GC freed 214 objects / 13712 bytes in 8ms
D/dalvikvm(  764): GC freed 415 objects / 26552 bytes in 9ms
D/skia    (  764): ------ build_power_table 1.4
D/skia    (  764): ------ build_power_table 0.714286
D/dalvikvm(  764): GC freed 416 objects / 28336 bytes in 10ms
D/dalvikvm(  764): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  764): Added shared lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  764): Trying to load lib /system/lib/libexif.so 0x0
D/dalvikvm(  764): Added shared lib /system/lib/libexif.so 0x0
D/dalvikvm(  764): GC freed 2303 objects / 121184 bytes in 13ms
D/dalvikvm(  764): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  764): Shared lib '/system/lib/libmedia_jni.so' already loaded in same CL 0x0
D/dalvikvm(  764): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  764): Shared lib '/system/lib/libmedia_jni.so' already loaded in same CL 0x0
D/dalvikvm(  764): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  764): Shared lib '/system/lib/libmedia_jni.so' already loaded in same CL 0x0
D/dalvikvm(  764): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  764): Shared lib '/system/lib/libmedia_jni.so' already loaded in same CL 0x0
D/dalvikvm(  764): GC freed 3790 objects / 197016 bytes in 23ms
D/dalvikvm(  764): GC freed 459 objects / 26008 bytes in 21ms
D/dalvikvm(  764): GC freed 303 objects / 17560 bytes in 22ms
D/dalvikvm(  764): GC freed 204 objects / 11448 bytes in 25ms
D/dalvikvm(  764): GC freed 161 objects / 8728 bytes in 26ms
D/dalvikvm(  764): Trying to load lib /system/lib/libsrec_jni.so 0x0
D/dalvikvm(  764): Added shared lib /system/lib/libsrec_jni.so 0x0
D/dalvikvm(  764): Trying to load lib /system/lib/libsrec_jni.so 0x0
D/dalvikvm(  764): Shared lib '/system/lib/libsrec_jni.so' already loaded in same CL 0x0
D/dalvikvm(  764): GC freed 365 objects / 71664 bytes in 28ms
D/dalvikvm(  764): GC freed 790 objects / 48088 bytes in 39ms
D/dalvikvm(  764): GC freed 331 objects / 38184 bytes in 40ms
D/dalvikvm(  764): GC freed 418 objects / 25784 bytes in 41ms
D/dalvikvm(  764): Trying to load lib /system/lib/libwebcore.so 0x0
D/dalvikvm(  764): Added shared lib /system/lib/libwebcore.so 0x0
D/dalvikvm(  764): GC freed 432 objects / 25168 bytes in 42ms
I/DEBUG   (  189): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (  189): Build fingerprint: 'google/passion/passion/mahimahi:2.1-update1/ERE27/24178:user/release-ke
I/DEBUG   (  189): pid: 764, tid: 764  >>> zygote <<<
I/DEBUG   (  189): signal 11 (SIGSEGV), fault addr ef2d002b
I/DEBUG   (  189):  r0 f0b00720  r1 00000002  r2 0000e16c  r3 00000000
I/DEBUG   (  189):  r4 ef2d0023  r5 00000005  r6 00000000  r7 4104ee7c
I/DEBUG   (  189):  r8 ad00f3c0  r9 0000bcf0  10 4104edc0  fp 00000000
I/DEBUG   (  189):  ip ad0800d4  sp be8b47b0  lr ad0277fb  pc ad034514  cpsr a0000030
I/DEBUG   (  189):          #00  pc 00034514  /system/lib/libdvm.so
I/DEBUG   (  189):          #01  pc 00054664  /system/lib/libdvm.so
I/DEBUG   (  189):          #02  pc 00013f98  /system/lib/libdvm.so
I/DEBUG   (  189):          #03  pc 000198e4  /system/lib/libdvm.so
I/DEBUG   (  189):          #04  pc 00018da8  /system/lib/libdvm.so
I/DEBUG   (  189):          #05  pc 0004d850  /system/lib/libdvm.so
I/DEBUG   (  189):          #06  pc 0004d882  /system/lib/libdvm.so
I/DEBUG   (  189):          #07  pc 00034e1c  /system/lib/libdvm.so
I/DEBUG   (  189):          #08  pc 00034bca  /system/lib/libdvm.so
I/DEBUG   (  189):          #09  pc 00034c9c  /system/lib/libdvm.so
I/DEBUG   (  189):          #10  pc 00037270  /system/lib/libdvm.so
I/DEBUG   (  189):          #11  pc 00014120  /system/lib/libdvm.so
I/DEBUG   (  189):          #12  pc 000198e4  /system/lib/libdvm.so
I/DEBUG   (  189):          #13  pc 00018da8  /system/lib/libdvm.so
I/DEBUG   (  189):          #14  pc 0004d850  /system/lib/libdvm.so
I/DEBUG   (  189):          #15  pc 0004d882  /system/lib/libdvm.so
I/DEBUG   (  189):          #16  pc 000583b6  /system/lib/libdvm.so
I/DEBUG   (  189):          #17  pc 00058d9e  /system/lib/libdvm.so
I/DEBUG   (  189):          #18  pc 00052204  /system/lib/libdvm.so
I/DEBUG   (  189):          #19  pc 00054154  /system/lib/libdvm.so
I/DEBUG   (  189):          #20  pc 00013f98  /system/lib/libdvm.so
I/DEBUG   (  189):          #21  pc 000198e4  /system/lib/libdvm.so
I/DEBUG   (  189):          #22  pc 00018da8  /system/lib/libdvm.so
I/DEBUG   (  189):          #23  pc 0004d850  /system/lib/libdvm.so
I/DEBUG   (  189):          #24  pc 0003a774  /system/lib/libdvm.so
I/DEBUG   (  189):          #25  pc 000296f4  /system/lib/libandroid_runtime.so
I/DEBUG   (  189):          #26  pc 0002a3d8  /system/lib/libandroid_runtime.so
I/DEBUG   (  189):          #27  pc 00008cae  /system/bin/app_process
I/DEBUG   (  189):          #28  pc 0000c54a  /system/lib/libc.so
I/DEBUG   (  189):          #29  pc b0001a46  /system/bin/linker
I/DEBUG   (  189):
I/DEBUG   (  189): code around pc:
I/DEBUG   (  189): ad034504 25001c27 683ce009 d1e92c00 3c14e7f8
I/DEBUG   (  189): ad034514 280068a0 3501d000 2c006824 2000d1f7
I/DEBUG   (  189): ad034524 d0332d00 2c009c00 0069d00b 22002049
I/DEBUG   (  189):
I/DEBUG   (  189): code around lr:
I/DEBUG   (  189): ad0277e8 60a06061 1cb160e3 43281c08 f7e71c3a
I/DEBUG   (  189): ad0277f8 2800ea38 f00dd001 b005fe37 46c0bdf0
I/DEBUG   (  189): ad027808 1c04b510 d0052800 f7e76880 1c20ec3a
I/DEBUG   (  189):
I/DEBUG   (  189): stack:
I/DEBUG   (  189):     be8b4770  ad00f3c0  /system/lib/libdvm.so
I/DEBUG   (  189):     be8b4774  0000e160  [heap]
I/DEBUG   (  189):     be8b4778  400cce70  /dev/ashmem/mspace/dalvik-heap/zygote/0 (deleted)
I/DEBUG   (  189):     be8b477c  4000cae8  /dev/ashmem/mspace/dalvik-heap/zygote/0 (deleted)
I/DEBUG   (  189):     be8b4780  00000001
I/DEBUG   (  189):     be8b4784  ad059d49  /system/lib/libdvm.so
I/DEBUG   (  189):     be8b4788  00000000
I/DEBUG   (  189):     be8b478c  4192193d  /data/dalvik-cache/system@framework@core.jar@classes.dex
I/DEBUG   (  189):     be8b4790  00015e50  [heap]
I/DEBUG   (  189):     be8b4794  00000000
I/DEBUG   (  189):     be8b4798  be8b47b8  [stack]
I/DEBUG   (  189):     be8b479c  4104ee64
I/DEBUG   (  189):     be8b47a0  ad07ff50  /system/lib/libdvm.so
I/DEBUG   (  189):     be8b47a4  00000000
I/DEBUG   (  189):     be8b47a8  4104ee50
I/DEBUG   (  189):     be8b47ac  ad034501  /system/lib/libdvm.so
I/DEBUG   (  189): #00 be8b47b0  00000001
I/DEBUG   (  189):     be8b47b4  0000035c
I/DEBUG   (  189):     be8b47b8  00015de8  [heap]
I/DEBUG   (  189):     be8b47bc  be8b4820  [stack]
I/DEBUG   (  189):     be8b47c0  4104ede8
I/DEBUG   (  189):     be8b47c4  be8b4818  [stack]
I/DEBUG   (  189):     be8b47c8  4000cae8  /dev/ashmem/mspace/dalvik-heap/zygote/0 (deleted)
I/DEBUG   (  189):     be8b47cc  ad054669  /system/lib/libdvm.so
I/DEBUG   (  189): #01 be8b47d0  417602c8 /data/dalvik-cache/system@framework@core.jar@classes.dex
I/DEBUG   (  189):     be8b47d4  ad013f9c  /system/lib/libdvm.so
I/ServiceManager(  187): service 'media.audio_flinger' died
I/ServiceManager(  187): service 'media.player' died
I/ServiceManager(  187): service 'media.camera' died
I/ServiceManager(  187): service 'media.audio_policy' died
D/libEGL  (  771): Setting TLS: 0xafe43b74 to 0xac70a2ec
D/libEGL  (  772): Setting TLS: 0xafe43b74 to 0xac70a2ec
D/AndroidRuntime(  772):
D/AndroidRuntime(  772): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
D/AndroidRuntime(  772): CheckJNI is OFF
D/AndroidRuntime(  772): --- registering native functions ---
I/        (  771): ServiceManager: 0xad08
I/HTC Acoustic(  771): libhtc_acoustic.so version 1.0.1.2.
E/HTC Acoustic(  771): Fail to open /system/etc/AudioPara_TMUS.csv -1.
I/HTC Acoustic(  771): open /system/etc/AudioPara4.csv success.
I/HTC Acoustic(  771): acoustic table version: Dream_TMU_20090305
I/HTC Acoustic(  771): read_audio_para_from_file success.
I/HTC Acoustic(  771): get_audpp_filter
I/HTC Acoustic(  771): open /system/etc/AudioFilter.csv success.
I/HTC Acoustic(  771): ADRC Filter ADRC FLAG = ffff.
I/HTC Acoustic(  771): ADRC Filter COMP THRESHOLD = 2600.
I/HTC Acoustic(  771): ADRC Filter COMP SLOPE = b333.
I/HTC Acoustic(  771): ADRC Filter COMP RMS TIME = 106.
I/HTC Acoustic(  771): ADRC Filter COMP ATTACK[0] = 7f7d.
I/HTC Acoustic(  771): ADRC Filter COMP ATTACK[1] = 3096.
I/HTC Acoustic(  771): ADRC Filter COMP RELEASE[0] = 7ff7.
I/HTC Acoustic(  771): ADRC Filter COMP RELEASE[1] = 4356.
I/HTC Acoustic(  771): ADRC Filter COMP DELAY = 16.
I/HTC Acoustic(  771): EQ flag = 00.
I/HTC Acoustic(  771): get_audpre_filter
I/HTC Acoustic(  771): open /system/etc/AudioPreProcess.csv success.
D/AudioHardwareMSM72XX(  771): mNumSndEndpoints = 48
D/AudioHardwareMSM72XX(  771): BT MATCH HANDSET
D/AudioHardwareMSM72XX(  771): BT MATCH SPEAKER
D/AudioHardwareMSM72XX(  771): BT MATCH HEADSET
D/AudioHardwareMSM72XX(  771): BT MATCH BT
D/AudioHardwareMSM72XX(  771): BT MATCH CARKIT
D/AudioHardwareMSM72XX(  771): BT MATCH TTY_FULL
D/AudioHardwareMSM72XX(  771): BT MATCH TTY_VCO
D/AudioHardwareMSM72XX(  771): BT MATCH TTY_HCO
D/AudioHardwareMSM72XX(  771): BT MATCH NO_MIC_HEADSET
D/AudioHardwareMSM72XX(  771): BT MATCH FM_HEADSET
D/AudioHardwareMSM72XX(  771): BT MATCH HEADSET_AND_SPEAKER
D/AudioHardwareMSM72XX(  771): BT MATCH FM_SPEAKER
D/AudioHardwareMSM72XX(  771): BT MATCH BT_EC_OFF
D/AudioHardwareMSM72XX(  771): BT MATCH CURRENT
D/AudioHardwareMSM72XX(  771): BT MATCH BT_EC_OFF
D/AudioHardwareInterface(  771): setMode(NORMAL)
I/AudioHardwareMSM72XX(  771): Set master volume to 5.
I/CameraService(  771): CameraService started: pid=771
I/AudioFlinger(  771): AudioFlinger's thread 0xce98 ready to run
I/AudioHardwareMSM72XX(  771): Routing audio to Speakerphone
D/HTC Acoustic(  771): msm72xx_enable_audpp: 0x0001
D/AudioHardwareMSM72XX(  771): setVoiceVolume(1.000000)
I/AudioHardwareMSM72XX(  771): Setting in-call volume to 5 (available range is 0 to 5)
I/SamplingProfilerIntegration(  772): Profiler is disabled.
I/Zygote  (  772): Preloading classes...
D/dalvikvm(  772): GC freed 793 objects / 50568 bytes in 6ms
D/dalvikvm(  772): GC freed 251 objects / 16168 bytes in 6ms
D/dalvikvm(  772): GC freed 295 objects / 18768 bytes in 7ms
D/dalvikvm(  772): GC freed 214 objects / 13712 bytes in 8ms
D/dalvikvm(  772): GC freed 415 objects / 26552 bytes in 9ms
D/skia    (  772): ------ build_power_table 1.4
D/skia    (  772): ------ build_power_table 0.714286
D/dalvikvm(  772): GC freed 416 objects / 28336 bytes in 10ms
D/dalvikvm(  772): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  772): Added shared lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  772): Trying to load lib /system/lib/libexif.so 0x0
D/dalvikvm(  772): Added shared lib /system/lib/libexif.so 0x0
D/dalvikvm(  772): GC freed 2303 objects / 121184 bytes in 13ms
D/dalvikvm(  772): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  772): Shared lib '/system/lib/libmedia_jni.so' already loaded in same CL 0x0
D/dalvikvm(  772): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  772): Shared lib '/system/lib/libmedia_jni.so' already loaded in same CL 0x0
D/dalvikvm(  772): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  772): Shared lib '/system/lib/libmedia_jni.so' already loaded in same CL 0x0
D/dalvikvm(  772): Trying to load lib /system/lib/libmedia_jni.so 0x0
D/dalvikvm(  772): Shared lib '/system/lib/libmedia_jni.so' already loaded in same CL 0x0
D/dalvikvm(  772): GC freed 3790 objects / 197016 bytes in 23ms
D/dalvikvm(  772): GC freed 459 objects / 26008 bytes in 21ms
D/dalvikvm(  772): GC freed 303 objects / 17560 bytes in 22ms
D/dalvikvm(  772): GC freed 204 objects / 11448 bytes in 25ms
D/dalvikvm(  772): GC freed 161 objects / 8728 bytes in 26ms
D/dalvikvm(  772): Trying to load lib /system/lib/libsrec_jni.so 0x0
D/dalvikvm(  772): Added shared lib /system/lib/libsrec_jni.so 0x0
D/dalvikvm(  772): Trying to load lib /system/lib/libsrec_jni.so 0x0
D/dalvikvm(  772): Shared lib '/system/lib/libsrec_jni.so' already loaded in same CL 0x0
D/dalvikvm(  772): GC freed 365 objects / 71664 bytes in 28ms
D/dalvikvm(  772): GC freed 790 objects / 48088 bytes in 39ms
D/dalvikvm(  772): GC freed 331 objects / 38184 bytes in 40ms

a typical memory access error. how it comes?
then run the strace, see any hints

/system/bin/strace –ff –f –t –s 100 –o /dev/null /init
  get IO error

strace -ff -F -tt -s 200 -o /dev/null /init
umovestr: I/O error
umovestr: I/O error
umovestr: I/O error
umovestr: I/O error
umovestr: I/O error
umovestr: I/O error
umovestr: I/O error

I/O error is also a typical error. either caused by physical malfunction, either by code logic.
try switched one new SD card and format it, No luck. that might mean physical disk is good.
then how the code logic.

from the first stacktrace, the jar has been compied and cached to .dex. /data/dalvik-cache/system@framework@core.jar@classes.dex
can I just ask the runtime to recompile the dex.

wipe out those cache.
run “rm –rf /data/dalvik-cache/*.dex”
then “reboot”

error gone, everything works. Applause!
to be safe, I change the acl of thos dex to 111, noboday can override the existing correct dex file.

Thursday, July 8, 2010

Android: Showing indeterminate progress bar / TabHost activity setProgressBarIndeterminateVisibility

Code is pretty simple. request the feature , toggle the Visibility.

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;

public class DemoActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        Button b =new Button(this);
        b.setText("Click to start spinning");
        b.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                DemoActivity.this.setProgressBarIndeterminateVisibility(true);
            }});
        Button c =new Button(this);
        c.setText("Click to STOP spinning");
        c.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                DemoActivity.this.setProgressBarIndeterminateVisibility(false);
            }});
        LinearLayout l=new LinearLayout(this);
        l.addView(b);
        l.addView(c);
        this.setContentView(l);
    }
}

image

if you use a TabActivity as a parent, and your logical activity is a child of the parent. you need request the feature in the onCreate method of TabActivity.

in your logical activity, call the getparent to get the access of the parentactivity reference.

So code will be

Parent(TabActivitity)
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

your child activity
((taballActivity)this.getParent()).setProgressBarIndeterminateVisibility(true);

if your logic runing in a different thread other than Main ui thread.

ChildActivity.this.runOnUiThread(
                            new Runnable()
                            {

                                public void run() {
                                    // TODO Auto-generated method stub
                                    ((taballActivity)ChildActivity.this.getParent()).setProgressBarIndeterminateVisibility(false);
                                }

                            }
                    );


Sunday, July 4, 2010

android update, flash_image not found

When you’ve already rooted your Nexus one like me,  you may noticed that even Google Push the update 2.2 to you device over OTA, you end up with a screen has a ! in the triangle.

image

Just Search “Install android 2.2 on rooted nexus one”, you may get tens of blogs.

I just follow on link here, http://www.redmondpie.com/how-to-install-android-2.2-froyo-on-nexus-one-with-root-9140788/

when I hold power/volum+ to the recovery mode, I don’t have the chose of Flash zip from SDK as mentationed in the blog

image

I only have 4 choices. as bellow

image

 

then I figure out we need to install recovery-RA-nexus which has the flash zip from sdcard features.

when you download the recovery-RA-nexus-xx.img, you need a utility called flash_image to load the imge to recovery partition.  http://android.modaco.com/content/google-nexus-one-nexusone-modaco-com/299241/24-feb-1-6-2-ra-nexus-recovery-image/When I try this , it looks like there is no flash_image command in my system.

Finally , here is one step to port the utility to phone devices.

Download the flash_image.zip and unzip to your PC folder. install the ADB from Android Sdk site. then you will be able to run adb command

adb root
This will start ADB as root, or notify if it is already running as root. 
adb remount
This will mount the system partition (/system) as writable, allowing the following
adb push flash_image /system/bin
This will send the flash_image script into the /system/bin, so we can use it from within the shell
adb shell chmod 0755 /system/bin/flash_image
Finally, change the permissions of the script to allow it to perform the desired action. Now that the script is installed, we are ready to proceed with flashing the custom recovery, saved on the root of the SD card earlier:
adb shell flash_image recovery /sdcard/recovery.img



then run “reboot recovery” , the phone will be rebooted to recoery mode. you will be able to run the option called “Flash zip from sd card”

Hope you can get the following screen like me.



image

Friday, June 4, 2010

Android System Application Icons- Browser Application, Camera applicaiton

app_web_browser_sm
$app_web_browser_sm_thumb.png

fav_icn_background
$fav_icn_background_thumb.png
ssl_icon
$ssl_icon_thumb.png
search_plate_browser.9
$search_plate_browser.9_thumb.png
ic_dialog_browser_security_bad
$ic_dialog_browser_security_bad_thumb.png
ic_dialog_browser_security_good
$ic_dialog_browser_security_good_thumb.png
page_indicator
$page_indicator_thumb.png
page_indicator_unselected2
$page_indicator_unselected2_thumb.png
ic_btn_bookmark_browsertab
$ic_btn_bookmark_browsertab_thumb.png
ic_btn_bookmarks
$ic_btn_bookmarks_thumb.png
ic_btn_close_panel
$ic_btn_close_panel_thumb.png
ic_btn_find_next
$ic_btn_find_next_thumb.png
ic_btn_find_prev
$ic_btn_find_prev_thumb.png
ic_btn_stop_v2
$ic_btn_stop_v2_thumb.png
ic_close_tab
$ic_close_tab_thumb.png
btn_close_window
$btn_close_window_thumb.png
ic_dialog_bookmark
$ic_dialog_bookmark_thumb.png
ic_dialog_browser_certificate_partially_secure
$ic_dialog_browser_certificate_partially_secure_thumb.png
ic_dialog_browser_certificate_secure
$ic_dialog_browser_certificate_secure_thumb.png
ic_dialog_menu_generic
$ic_dialog_menu_generic_thumb.png
ic_list_bookmark
$ic_list_bookmark_thumb.png
ic_list_data_large
$ic_list_data_large_thumb.png
ic_list_data_off
$ic_list_data_off_thumb.png
ic_list_data_small
$ic_list_data_small_thumb.png
ic_list_gps_denied
$ic_list_gps_denied_thumb.png
ic_list_gps_on
$ic_list_gps_on_thumb.png
ic_list_new_window
$ic_list_new_window_thumb.png
ic_search_category_browser
$ic_search_category_browser_thumb.png
ic_tab_bookmarks_selected
$ic_tab_bookmarks_selected_thumb.png
ic_tab_bookmarks_unselected
$ic_tab_bookmarks_unselected_thumb.png
ic_tab_history_selected
$ic_tab_history_selected_thumb.png
ic_tab_history_unselected
$ic_tab_history_unselected_thumb.png
ic_tab_most_visited_selected
$ic_tab_most_visited_selected_thumb.png
ic_tab_most_visited_unselected
$ic_tab_most_visited_unselected_thumb.png
ic_search_category_suggest
$ic_search_category_suggest_thumb.png
ic_search_category_bookmark
$ic_search_category_bookmark_thumb.png
ic_search_category_history
$ic_search_category_history_thumb.png
ic_launcher_browser
$ic_launcher_browser_thumb.png
ic_launcher_drm_file
$ic_launcher_drm_file_thumb.png
ic_launcher_shortcut_browser_bookmark
$ic_launcher_shortcut_browser_bookmark_thumb.png
ic_menu_add_bookmark
$ic_menu_add_bookmark_thumb.png
ic_menu_bookmark
$ic_menu_bookmark_thumb.png
ic_menu_bookmarks
$ic_menu_bookmarks_thumb.png
ic_menu_list
$ic_menu_list_thumb.png
ic_menu_new_window
$ic_menu_new_window_thumb.png
ic_menu_thumbnail
$ic_menu_thumbnail_thumb.png
ic_menu_windows
$ic_menu_windows_thumb.png
photo_inner.9
$photo_inner.9_thumb.png
btn_check_buttonless_off
$btn_check_buttonless_off_thumb.png
btn_check_buttonless_on
$btn_check_buttonless_on_thumb.png
ic_gallery_video_overlay
$ic_gallery_video_overlay_thumb.png
ic_recording_indicator
$ic_recording_indicator_thumb.png
ic_error_mms_video_overlay
$ic_error_mms_video_overlay_thumb.png
ic_camera_sym_gps
$ic_camera_sym_gps_thumb.png
ic_viewfinder_flash_auto
$ic_viewfinder_flash_auto_thumb.png
ic_viewfinder_flash_off
$ic_viewfinder_flash_off_thumb.png
ic_viewfinder_flash_on
$ic_viewfinder_flash_on_thumb.png
btn_ic_review_cancel
$btn_ic_review_cancel_thumb.png
btn_ic_review_delete
$btn_ic_review_delete_thumb.png
btn_ic_review_done
$btn_ic_review_done_thumb.png
btn_ic_review_play
$btn_ic_review_play_thumb.png
btn_ic_review_retake_photo
$btn_ic_review_retake_photo_thumb.png
btn_ic_review_retake_video
$btn_ic_review_retake_video_thumb.png
btn_ic_review_set_as
$btn_ic_review_set_as_thumb.png
btn_ic_review_share
$btn_ic_review_share_thumb.png
ic_viewfinder_empty
$ic_viewfinder_empty_thumb.png
ic_viewfinder_focus_infinity
$ic_viewfinder_focus_infinity_thumb.png
ic_viewfinder_focus_macro
$ic_viewfinder_focus_macro_thumb.png
ic_viewfinder_scenemode
$ic_viewfinder_scenemode_thumb.png
ic_viewfinder_wb_cloudy
$ic_viewfinder_wb_cloudy_thumb.png
ic_viewfinder_wb_daylight
$ic_viewfinder_wb_daylight_thumb.png
ic_viewfinder_wb_fluorescent
$ic_viewfinder_wb_fluorescent_thumb.png
ic_viewfinder_wb_incandescent
$ic_viewfinder_wb_incandescent_thumb.png
btn_ic_mode_switch_camera
$btn_ic_mode_switch_camera_thumb.png
btn_ic_mode_switch_video
$btn_ic_mode_switch_video_thumb.png
btn_mode_switch_knob_highlight
$btn_mode_switch_knob_highlight_thumb.png
btn_mode_switch_knob_normal
$btn_mode_switch_knob_normal_thumb.png
btn_mode_switch_knob_pressed
$btn_mode_switch_knob_pressed_thumb.png
camera_crop_height
$camera_crop_height_thumb.png
camera_crop_width
$camera_crop_width_thumb.png
detail_photo_border.9
$detail_photo_border.9_thumb.png
btn_mode_switch_bg.9
$btn_mode_switch_bg.9_thumb.png
indicator_autocrop
$indicator_autocrop_thumb.png
image_border_bg_focus_blue.9
$image_border_bg_focus_blue.9_thumb.png
image_border_bg_normal.9
$image_border_bg_normal.9_thumb.png
image_border_bg_pressed_blue.9
$image_border_bg_pressed_blue.9_thumb.png
ic_btn_actionmenu_attach_default
$ic_btn_actionmenu_attach_default_thumb.png
ic_btn_actionmenu_attach_pressed
$ic_btn_actionmenu_attach_pressed_thumb.png
ic_btn_actionmenu_attach_selected
$ic_btn_actionmenu_attach_selected_thumb.png
ic_btn_actionmenu_cancel_default
$ic_btn_actionmenu_cancel_default_thumb.png
ic_btn_actionmenu_cancel_pressed
$ic_btn_actionmenu_cancel_pressed_thumb.png
ic_btn_actionmenu_cancel_selected
$ic_btn_actionmenu_cancel_selected_thumb.png
ic_btn_actionmenu_delete_default
$ic_btn_actionmenu_delete_default_thumb.png
ic_btn_actionmenu_delete_pressed
$ic_btn_actionmenu_delete_pressed_thumb.png
ic_btn_actionmenu_delete_selected
$ic_btn_actionmenu_delete_selected_thumb.png
ic_btn_actionmenu_gallery_default
$ic_btn_actionmenu_gallery_default_thumb.png
ic_btn_actionmenu_gallery_pressed
$ic_btn_actionmenu_gallery_pressed_thumb.png
ic_btn_actionmenu_gallery_selected
$ic_btn_actionmenu_gallery_selected_thumb.png
ic_btn_actionmenu_play_default
$ic_btn_actionmenu_play_default_thumb.png
ic_btn_actionmenu_play_pressed
$ic_btn_actionmenu_play_pressed_thumb.png
ic_btn_actionmenu_play_selected
$ic_btn_actionmenu_play_selected_thumb.png
ic_btn_actionmenu_set_as_default
$ic_btn_actionmenu_set_as_default_thumb.png
ic_btn_actionmenu_set_as_pressed
$ic_btn_actionmenu_set_as_pressed_thumb.png
ic_btn_actionmenu_set_as_selected
$ic_btn_actionmenu_set_as_selected_thumb.png
ic_btn_actionmenu_share_default
$ic_btn_actionmenu_share_default_thumb.png
ic_btn_actionmenu_share_pressed
$ic_btn_actionmenu_share_pressed_thumb.png
ic_btn_actionmenu_share_selected
$ic_btn_actionmenu_share_selected_thumb.png
ic_launcher_camera
$ic_launcher_camera_thumb.png
ic_launcher_gallery
$ic_launcher_gallery_thumb.png
ic_launcher_video_camera
$ic_launcher_video_camera_thumb.png
ic_menu_3d_globe
$ic_menu_3d_globe_thumb.png
ic_menu_camera_video_view
$ic_menu_camera_video_view_thumb.png
ic_menu_multiselect_gallery
$ic_menu_multiselect_gallery_thumb.png
ic_menu_view_details
$ic_menu_view_details_thumb.png
ic_missing_thumbnail_picture
$ic_missing_thumbnail_picture_thumb.png
ic_missing_thumbnail_video
$ic_missing_thumbnail_video_thumb.png
frame_overlay_gallery_camera
$frame_overlay_gallery_camera_thumb.png
frame_overlay_gallery_folder
$frame_overlay_gallery_folder_thumb.png
frame_overlay_gallery_video
$frame_overlay_gallery_video_thumb.png
border_last_picture_highlight.9
$border_last_picture_highlight.9_thumb.png
border_last_picture_normal.9
$border_last_picture_normal.9_thumb.png
border_last_picture_pressed.9
$border_last_picture_pressed.9_thumb.png
border_view_finder.9
$border_view_finder.9_thumb.png
btn_camera_arrow_left_default
$btn_camera_arrow_left_default_thumb.png
btn_camera_arrow_left_press
$btn_camera_arrow_left_press_thumb.png
btn_camera_arrow_left_selected
$btn_camera_arrow_left_selected_thumb.png
btn_camera_arrow_right_default
$btn_camera_arrow_right_default_thumb.png
btn_camera_arrow_right_press
$btn_camera_arrow_right_press_thumb.png
btn_camera_arrow_right_selected
$btn_camera_arrow_right_selected_thumb.png
btn_camera_review_highlight.9
$btn_camera_review_highlight.9_thumb.png
btn_camera_review_normal.9
$btn_camera_review_normal.9_thumb.png
btn_camera_review_pressed.9
$btn_camera_review_pressed.9_thumb.png
on_screen_hint_frame.9
$on_screen_hint_frame.9_thumb.png
btn_ic_video_record
$btn_ic_video_record_thumb.png
btn_ic_video_record_stop
$btn_ic_video_record_stop_thumb.png
btn_shutter_normal
$btn_shutter_normal_thumb.png
btn_shutter_pressed
$btn_shutter_pressed_thumb.png
 
Locations of visitors to this page