Skip to content
KevinGaudin edited this page Sep 25, 2012 · 31 revisions

Report Content #

Here is a description of all fields contained in ACRA's reports. Most of them are always filled, some might require extra configuration or system permissions.

REPORT_ID #

Since: 4.0 - Default: Yes

A unique identifier for this report. If you receive 2 reports with the same ID then ACRA sent the same report twice. Most of the time this happens on poor network conditions.

APP_VERSION_CODE #

Since: 1.0 - Default: Yes

Application version code. This is the incremental integer version code used to differentiate versions on the android market.

See PackageInfo.versionCode.

APP_VERSION_NAME #

**Since: 1.0 - Default: **Yes

Application version name.

See PackageInfo.versionName.

PACKAGE_NAME #

Since: 1.0 - Default: Yes

Application package name.

See Context.getPackageName().

FILE_PATH #

Since: 1.0 - Default: Yes

Base path of the application's private file folder.

See Context.getFilesDir()

PHONE_MODEL #

Since: 1.0 - Default: Yes

Device model name.

See Build.MODEL.

BRAND #

Since: 1.0 - Default: Yes

Device brand (manufacturer or carrier).

See Build.BRAND.

PRODUCT #

Since: 1.0 - Default: Yes

Device overall product code.

See Build.PRODUCT.

ANDROID_VERSION #

Since: 1.0 - Default: Yes

Device android version name.

See Build.VERSION.RELEASE

BUILD #

Since: 4.0 - Default: Yes

Android build details. Here is an example for the NexusOne with official Android 2.3.3:

BOARD=mahimahi
BOOTLOADER=0.35.0017
BRAND=google
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=passion
DISPLAY=GRI40
FINGERPRINT=google/passion/passion:2.3.3/GRI40/102588:user/release-keys
HARDWARE=mahimahi
HOST=android-test-1.mtv.corp.google.com
ID=GRI40
MANUFACTURER=HTC
MODEL=Nexus One
PRODUCT=passion
RADIO=unknown
SERIAL=HT019P801851
TAGS=release-keys
TIME=1297306326000
TYPE=user
UNKNOWN=unknown
USER=android-build

See Build.

TOTAL_MEM_SIZE #

Since: 1.0 - Default: Yes

Estimation of the total device memory size based on filesystem stats.

AVAILABLE_MEM_SIZE #

Since: 1.0 - Default: Yes

Estimation of the available device memory size based on filesystem stats.

CUSTOM_DATA #

Since: 1.0 - Default: Yes

Contains key = value pairs defined by the application developer during the application execution.

STACK_TRACE #

Since: 1.0 - Default: Yes

The Holy Stack Trace. Details of the exception that caused the application to crash.

INITIAL_CONFIGURATION #

Since: 3.0 - Default: Yes

Configuration fields state on the application start.

Example:

locale=fr_FR
hardKeyboardHidden=HARDKEYBOARDHIDDEN_YES
keyboard=KEYBOARD_NOKEYS
keyboardHidden=KEYBOARDHIDDEN_NO
fontScale=1.0
mcc=208
mnc=10
navigation=NAVIGATION_TRACKBALL
navigationHidden=NAVIGATIONHIDDEN_NO
orientation=ORIENTATION_PORTRAIT
screenLayout=SCREENLAYOUT_SIZE_NORMAL+SCREENLAYOUT_LONG_YES
seq=117
touchscreen=TOUCHSCREEN_FINGER
uiMode=UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO
userSetLocale=false

CRASH_CONFIGURATION #

Since: 3.0 - Default: Yes

Configuration fields state on the application crash.

Example :

locale=fr_FR
hardKeyboardHidden=HARDKEYBOARDHIDDEN_YES
keyboard=KEYBOARD_NOKEYS
keyboardHidden=KEYBOARDHIDDEN_NO
fontScale=1.0
mcc=208
mnc=10
navigation=NAVIGATION_TRACKBALL
navigationHidden=NAVIGATIONHIDDEN_NO
orientation=ORIENTATION_LANDSCAPE
screenLayout=SCREENLAYOUT_SIZE_NORMAL+SCREENLAYOUT_LONG_YES
seq=120
touchscreen=TOUCHSCREEN_FINGER
uiMode=UI_MODE_TYPE_NORMAL+UI_MODE_NIGHT_NO
userSetLocale=false

As an example of how this field combined with initial_configuration can help you debug your application, you can see here that the "seq" field has been increased from 117 to120. This means that 3 configuration changes occurred between the Application start and the crash. You can also see that the orientation changed from PORTRAIT to LANDSCAPE. There could be lots of issues regarding orientation (and other configuration) changes handling, so if you don't understand how a bug happens, having a look at this values can help you understand what the user did with his device.

Though, having seq value increased does not mean that these changes occured while your application was active. There can be lots of things happening between your application start and the crash. For example, a user can start your application and use it on day 1 without any issue, use many other applications in between, reopen your application on day 2 (which was still started but paused) and then the crash occurs. All the configuration changes that happened in between introduce a change in the seq value.

DISPLAY #

Since: 3.0 - Default: Yes

Device display specifications.

See WindowManager.getDefaultDisplay()

Example:

width=480
height=800
pixelFormat=1
refreshRate=60.0fps
metrics.density=x1.5
metrics.scaledDensity=x1.5
metrics.widthPixels=480
metrics.heightPixels=800
metrics.xdpi=254.0
metrics.ydpi=254.0

USER_COMMENT #

Since: 3.0 - Default: Yes

Comment added by the user in the dialog displayed in NOTIFICATION mode.

USER_APP_START_DATE #

Since: 4.0 - Default: Yes

User date on application start.

USER_CRASH_DATE #

Since: 3.0 - Default: Yes

User date immediately after the crash occurred.

DUMPSYS_MEMINFO #

Since: 4.0 - Default: Yes (?) Requires DUMP permission for device running Android 4.0 (ICS) and later.

Memory state details for your application process.

Example (taken from android 2.3.3, content may vary with android versions):

Applications Memory Usage (kB):
Uptime: 75158991 Realtime: 192859224

** MEMINFO in pid 18806 [org.acra.sampleapp] **
                    native   dalvik    other    total
            size:     4216     5447      N/A     9663
       allocated:     4208     2818      N/A     7026
            free:        7     2629      N/A     2636
           (Pss):      759      211     2118     3088
  (shared dirty):     2296     1860     5052     9208
    (priv dirty):      684       64     1436     2184
 
 Objects
           Views:        0        ViewRoots:        0
     AppContexts:        0       Activities:        0
          Assets:        2    AssetManagers:        2
   Local Binders:        7    Proxy Binders:       14
Death Recipients:        1
 OpenSSL Sockets:        0
 
 SQL
               heap:        0         MEMORY_USED:        0
 PAGECACHE_OVERFLOW:        0         MALLOC_SIZE:        0
 
 
 Asset Allocations
    zip:/data/app/org.acra.sampleapp-1.apk:/resources.arsc: 5K
Analysis of these data require a high knowledge of internal system
memory handling. You can get some clues in
[this StackOverflow answer from Dianne Hackborn](http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android/2299813#2299813).

DROPBOX #

Since: 4.0 - Default: No

Requires READ_LOGS permission.

Content of the android.os.DropBoxManager (introduced in API level 8).

The DropBoxManager is an alternative logging system which allows platform developers to persist data (text ot binary). There is small chance that these logging events are really useful for debugging your app... but you can add your own tags to be retrieved by ACRA. So if you ever can find some usage for it (maybe related with StrictMode?) then ACRA is already ready to collect them.

A few details were given about the usage of the DropBox by Brad Fitzpatrick in this StackOverflow answer.

If properly configured to retrieve system tags, here is the kind of content you can retrieve after a fresh boot on a Nexus One (with android 2.3.3):

Tag: system_app_anr
Nothing.
Tag: system_app_wtf
Nothing.
Tag: system_app_crash
Nothing.
Tag: system_server_anr
Nothing.
Tag: system_server_wtf
Nothing.
Tag: system_server_crash
Nothing.
Tag: BATTERY_DISCHARGE_INFO
Nothing.
Tag: SYSTEM_RECOVERY_LOG
Nothing.
Tag: SYSTEM_BOOT
@20110327T163719
Text: Build: google/passion/passion:2.3.3/GRI40/102588:user/release-keys
Hardware: mahimahi
Bootloader: 0.35.0017
Radio: unknown
Kernel: Linux version 2.6.35.7-59423-g08607d4 (android-build@apa28.mtv.corp.google.com) (gcc version 4.4.3 (GCC) ) #1 PREEMPT Tue Dec 28 09:34:38 PST 2010


Tag: SYSTEM_LAST_KMSG
@20110327T163720
Text: Build: google/passion/passion:2.3.3/GRI40/102588:user/release-keys
Hardware: mahimahi
Bootloader: 0.35.0017
Radio: unknown
Kernel: Linux version 2.6.35.7-59423-g08607d4 (android-build@apa28.mtv.corp.google.com) (gcc version 4.4.3 (GCC) ) #1 PREEMPT Tue Dec 28 09:34:38 PST 2010

[[TRUNCATED]]
nd
[75771.250976] wake lock alarm_rtc, expired
[75771.256195] suspend: enter suspend
[75771.256378] PM: Syncing filesystems ... done.
[75771.257965] Freezing user space processes ... (elapsed 0.02 seconds) d
Tag: APANIC_CONSOLE
Nothing.
Tag: APANIC_THREADS
Nothing.
Tag: SYSTEM_RESTART
Nothing.
Tag: SYSTEM_TOMBSTONE
Nothing.
Tag: data_app_strictmode
Nothing.

LOGCAT #

Since: 4.0 - Default: Yes

Requires READ_LOGS permission.

Logcat default extract.

The logcat is the Android Developer's best friend. This is where all applications and the system write their debug traces. Retrieving logcat events in your reports will allow you to retrieve your own debugging traces.

See configuration details.

EVENTSLOG #

Since: 4.0 - Default: No

Requires READ_LOGS permission.

Logcat eventslog extract.

The eventslog is a lower level logging buffer. Its content looks like this:

03-27 16:37:45.230 I/content_update_sample(  428): [content://gmail-downloads/download,delete,_id IN (),2328,,100]
03-27 16:37:45.550 I/dvm_gc_info(  203): [7017575181485061379,-9057997136484935626,-3939377503288981465,9365717]
03-27 16:37:45.560 I/am_create_task(  103): 4
03-27 16:37:45.560 I/am_create_activity(  103): [1083121280,4,org.acra.sampleapp/.CrashTestLauncher,android.intent.action.MAIN,NULL,NULL,270532608]
03-27 16:37:45.570 I/am_pause_activity(  103): [1079760528,org.adwfreak.launcher/.Launcher]
03-27 16:37:45.760 I/am_on_paused_called(  203): org.adwfreak.launcher.Launcher
03-27 16:37:45.770 I/am_proc_start(  103): [559,10059,org.acra.sampleapp,activity,org.acra.sampleapp/.CrashTestLauncher]
03-27 16:37:45.810 I/dvm_gc_madvise_info(  559): [1290240,1056768]
03-27 16:37:45.850 I/am_proc_bound(  103): [559,org.acra.sampleapp]
03-27 16:37:45.850 I/am_restart_activity(  103): [1083121280,4,org.acra.sampleapp/.CrashTestLauncher]
03-27 16:37:45.980 I/db_sample(  428): [/data/data/com.google.android.gm/databases/XX@YY,COMMIT;DELETE FROM attachments WHERE _id IN (),695,,100]
03-27 16:37:46.080 I/db_sample(  428): [/data/data/com.google.android.gm/databases/XX@YY,GETLOCK:SELECT * FROM custom_label_color_prefs,8122,,100]
03-27 16:37:46.150 I/binder_sample(  176): [android.view.IWindowSession,4,7,com.joko.lightgridpro,1]
03-27 16:37:46.410 I/db_sample(  428): [/data/data/com.google.android.gm/databases/XX@YY,SELECT * FROM custom_label_color_prefs,8453,,100]
03-27 16:37:46.410 I/db_sample(  428): [/data/data/com.google.android.gm/databases/downloads.db,SELECT _id FROM downloads WHERE (status >= '200') ORDER BY lastm,1134,,100]
03-27 16:37:46.410 I/content_query_sample(  428): [content://gmail-downloads/download,_id,status >= '200',lastmod,2036,,100]
03-27 16:37:46.450 I/db_sample(  428): [/data/data/com.google.android.gm/databases/XX@YY,BEGIN EXCLUSIVE;,42,,9]
03-27 16:37:46.570 I/notification_cancel(  103): [com.handcent.nextsms,321,0]
03-27 16:37:46.580 I/am_destroy_service(  103): [1084025168,com.handcent.nextsms/com.handcent.sms.transaction.SmsReceiverService,540]
03-27 16:37:46.590 I/am_kill (  103): [300,com.android.settings,14,too many background]
03-27 16:37:46.590 I/am_proc_died(  103): [300,com.android.settings]
03-27 16:37:46.600 I/db_sample(  428): [/data/data/com.google.android.gm/databases/XX@YY,COMMIT;SELECT _id FROM attachments WHERE downloadId == 0,102,,21]
03-27 16:37:46.620 I/gmail_perf_end(  428): [ME.constructor,132,11014,1]
03-27 16:37:46.630 I/content_query_sample(  411): [content://gmail-ls/labels/XX@YY,canonicalName/numUnreadConversations,,,17123,,100]
03-27 16:37:46.660 I/am_on_resume_called(  559): org.acra.sampleapp.CrashTestLauncher
03-27 16:37:46.720 I/activity_launch_time(  103): [1083121280,org.acra.sampleapp/.CrashTestLauncher,949,29542]
03-27 16:37:46.840 I/am_destroy_service(  103): [1083808248,com.google.android.gm/.downloadprovider.DownloadService,428]
03-27 16:37:46.900 I/db_sample(  428): [/data/data/com.google.android.gm/databases/XX@YY,BEGIN EXCLUSIVE;,268,,54]
03-27 16:37:46.970 I/am_create_service(  103): [1084806080,com.nitrodesk.droid20.nitroid/com.nitrodesk.daemon.ExchangeListenerSvc,,275]
03-27 16:37:46.990 I/am_proc_start(  103): [572,10049,com.levelup.beautifulwidgets,broadcast,com.levelup.beautifulwidgets/.HomeWidget14]
03-27 16:37:47.030 I/dvm_gc_madvise_info(  572): [1290240,1056768]
03-27 16:37:47.070 I/am_proc_bound(  103): [572,com.levelup.beautifulwidgets]
03-27 16:37:47.160 I/dvm_gc_info(  103): [8320808730291807962,-8924856104238569357,-3969495325797021657,8620078]
03-27 16:37:47.180 I/db_sample(  428): [/data/data/com.google.android.gm/databases/XX@YY,SELECT IFNULL((SELECT _id FROM conversations WHERE syncRationale,266,,54]
03-27 16:37:47.290 I/db_sample(  275): [/data/data/com.nitrodesk.droid20.nitroid/databases/windroid.db,BEGIN EXCLUSIVE;,149,com.nitrodesk.droid20.nitroid,30]
03-27 16:37:47.300 I/am_kill (  103): [308,com.google.android.partnersetup,14,too many background]
03-27 16:37:47.300 I/am_proc_died(  103): [308,com.google.android.partnersetup]
03-27 16:37:47.550 I/dvm_gc_info(  559): [8314046716718409527,-8925986472288581587,-4000739048211904473,8525718]
03-27 16:37:47.650 I/dvm_gc_info(  559): [8314046716718413429,-8925704997311875024,-3999894623281772505,8525718]
03-27 16:37:47.720 I/db_sample(  275): [/data/data/com.nitrodesk.droid20.nitroid/databases/windroid.db,COMMIT;SELECT _id, AccountID, DeviceID, ServerName, UserID, Doma,111,com.nitrodesk.droid20.nitroid,23]
03-27 16:37:47.980 I/db_sample(  275): [/data/data/com.nitrodesk.droid20.nitroid/databases/windroid.db,BEGIN EXCLUSIVE;,249,com.nitrodesk.droid20.nitroid,50]
03-27 16:37:48.100 I/dvm_gc_info(  559): [8314046716718417551,-9042798587623495631,-3999331673328351193,8525718]

### RADIOLOG <a name="RADIOLOG" href="#RADIOLOG">#</a>
_**Since: 4.0 - Default: No**_

_**Requires READ_LOGS permission.**_

  Logcat radio extract.
    
  The third buffer managed by logcat contains radio events. It looks like this:

03-27 16:37:28.960 D/GSM ( 195): [DSAC DEB] trySetupData with mIsPsRestricted=false 03-27 16:37:28.960 I/GSM ( 195): Preferred APN:20810:20810:SFR, 8, 20810, sl2sfr, , null, , , , -1, default, supl 03-27 16:37:28.960 I/GSM ( 195): Waiting APN set to preferred APN 03-27 16:37:28.960 D/GSM ( 195): [GsmDataConnectionTracker] Create from allApns : [SFR, 8, 20810, sl2sfr, , null, , , , -1, default, supl][SFR-MMS, 9, 20810, mmssfr, , http://mms1, 10.151.0.1, 8080, , -1, mms] 03-27 16:37:28.960 D/GSM ( 195): [GsmDataConnection-1] DcInactiveState msg.what=EVENT_CONNECT 03-27 16:37:28.960 D/GSM ( 195): [GsmDataConnection-1] Connecting to carrier: 'SFR' APN: 'sl2sfr' proxy: '' port: ' 03-27 16:37:28.960 D/RILJ ( 195): [0094]> SETUP_DATA_CALL 1 0 sl2sfr 3 03-27 16:37:29.020 D/RILJ ( 195): [0095]> REQUEST_GET_NEIGHBORING_CELL_IDS 03-27 16:37:29.260 D/RILJ ( 195): [0095]< REQUEST_GET_NEIGHBORING_CELL_IDS
03-27 16:37:32.760 D/RILJ ( 195): [UNSL]< UNSOL_DATA_CALL_LIST_CHANGED [DataCallState: { cid: 1, active: 2, type: IP, apn: sl2sfr, address: 10.114.107.85 }, DataCallState: { cid: -1, active: 0, type: , apn: , address: }, DataCallState: { cid: -1, active: 0, type: , apn: , address: }] 03-27 16:37:32.770 D/RILJ ( 195): [0094]< SETUP_DATA_CALL {1, rmnet0, 10.114.107.XX} 03-27 16:37:32.770 D/GSM ( 195): [GsmDataConnection-1] DcActivatingState msg.what=EVENT_SETUP_DATA_CONNECTION_DONE 03-27 16:37:32.770 D/GSM ( 195): [GsmDataConnection-1] interface=rmnet0 ipAddress=10.114.107.XX gateway=10.114.107.86 DNS1=172.20.2.39 DNS2=172.20.2.10 03-27 16:37:32.770 D/GSM ( 195): [GsmDataConnection-1] DataConnection setup result='SUCCESS' on cid=1 03-27 16:37:32.770 D/GSM ( 195): [GsmDataConnection-1] DcInactiveState: setEnterNoticationParams cp,cause 03-27 16:37:32.770 D/GSM ( 195): [GsmDataConnection-1] DcActiveState: enter notifyConnectCompleted 03-27 16:37:32.770 D/GSM ( 195): [GsmDataConnection-1] notifyConnection at 1301236652781 cause=No Error 03-27 16:37:32.790 D/GSM ( 195): [DataConnection] Start poll NetStat 03-27 16:37:33.730 D/RILJ ( 195): [UNSL]< UNSOL_RESPONSE_NETWORK_STATE_CHANGED 03-27 16:37:33.730 D/RILJ ( 195): [0096]> OPERATOR 03-27 16:37:33.730 D/RILJ ( 195): [0097]> GPRS_REGISTRATION_STATE 03-27 16:37:33.730 D/RILJ ( 195): [0098]> REGISTRATION_STATE 03-27 16:37:33.730 D/RILJ ( 195): [0099]> QUERY_NETWORK_SELECTION_MODE 03-27 16:37:33.740 D/RILJ ( 195): [0096]< OPERATOR {F SFR, (N/A), 20810} 03-27 16:37:33.760 D/RILJ ( 195): [0097]< GPRS_REGISTRATION_STATE {1, null, null, 9} 03-27 16:37:33.780 D/RILJ ( 195): [0098]< REGISTRATION_STATE {1, 4654, 0084EC08, 9, null, null, null, null, null, null, null, null, null, null, A5} 03-27 16:37:33.790 D/RILJ ( 195): [0099]< QUERY_NETWORK_SELECTION_MODE {0} 03-27 16:37:33.790 D/GSM ( 195): Poll ServiceState done: oldSS=[0 home F SFR (N/A) 20810 UMTS CSS not supported -1 -1RoamInd: -1DefRoamInd: -1EmergOnly: false] newSS=[0 home F SFR (N/A) 20810 HSDPA CSS not supported -1 -1RoamInd: -1DefRoamInd: -1EmergOnly: false] oldGprs=0 newGprs=0 oldType=UMTS newType=HSDPA 03-27 16:37:33.790 D/GSM ( 195): RAT switched UMTS -> HSDPA at cell 8711176 03-27 16:37:41.270 D/RILJ ( 195): [UNSL]< UNSOL_RESPONSE_NETWORK_STATE_CHANGED 03-27 16:37:41.270 D/RILJ ( 195): [0100]> OPERATOR 03-27 16:37:41.270 D/RILJ ( 195): [0101]> GPRS_REGISTRATION_STATE 03-27 16:37:41.270 D/RILJ ( 195): [0102]> REGISTRATION_STATE 03-27 16:37:41.270 D/RILJ ( 195): [0103]> QUERY_NETWORK_SELECTION_MODE 03-27 16:37:41.290 D/RILJ ( 195): [0100]< OPERATOR {F SFR, (N/A), 20810} 03-27 16:37:41.310 D/RILJ ( 195): [0101]< GPRS_REGISTRATION_STATE {1, null, null, 3} 03-27 16:37:41.340 D/RILJ ( 195): [0102]< REGISTRATION_STATE {1, 4654, 0084EC08, 3, null, null, null, null, null, null, null, null, null, null, A5} 03-27 16:37:41.350 D/RILJ ( 195): [0103]< QUERY_NETWORK_SELECTION_MODE {0} 03-27 16:37:41.350 D/GSM ( 195): Poll ServiceState done: oldSS=[0 home F SFR (N/A) 20810 HSDPA CSS not supported -1 -1RoamInd: -1DefRoamInd: -1EmergOnly: false] newSS=[0 home F SFR (N/A) 20810 UMTS CSS not supported -1 -1RoamInd: -1DefRoamInd: -1EmergOnly: false] oldGprs=0 newGprs=0 oldType=HSDPA newType=UMTS 03-27 16:37:41.350 D/GSM ( 195): RAT switched HSDPA -> UMTS at cell 8711176 03-27 16:37:44.140 D/RILJ ( 195): [0104]> SIGNAL_STRENGTH 03-27 16:37:44.150 D/RILJ ( 195): [0104]< SIGNAL_STRENGTH {4, 99, -1, -1, -1, -1, 0}


### IS_SILENT <a name="IS_SILENT" href="#IS_SILENT">#</a>
_**Since: 4.0 - Default: Yes**_

    True if the report has been explicitly sent silently by the developer.

### DEVICE_ID <a name="DEVICE_ID" href="#DEVICE_ID">#</a>
_**Since: 4.0 - Default: No**_

_**Requires READ_PHONE_STATE permission.**_

  Device unique ID (IMEI for GSM and the MEID or ESN for CDMA phones).
  
  If you need to know if reports come from single or multiple users without using the READ_PHONE_STATE permission, you should use [#INSTALLATION_ID] instead.
  
  See [`TelephonyManager.getDeviceId()`](http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId%28%29)

### INSTALLATION_ID <a name="INSTALLATION_ID" href="#INSTALLATION_ID">#</a>
_**Since: 4.0 - Default: Yes**_

  Installation unique ID. This identifier allow you to track a specific
  user application installation without using any personal data.
  Implemented following the guidelines from the [Android Developers Blog](http://android-developers.blogspot.com/2011/03/identifying-app-installations.html).

### USER_EMAIL <a name="USER_EMAIL" href="#USER_EMAIL">#</a>
_**Since: 4.0 - Default: Yes**_

  User email address. Can be provided by the user in the `acra.user.email` SharedPreference field.

### DEVICE_FEATURES <a name="DEVICE_FEATURES" href="#DEVICE_FEATURES">#</a>
_**Since: 4.0 - Default: Yes**_

  Features declared as available on this device by the system.
  These features are those that are used by the android market
  to filter apps according to `<uses-feature>` directives from applications manifests.
  
  Example from a NexusOne:

android.hardware.location.network android.hardware.wifi com.google.android.feature.GOOGLE_BUILD android.hardware.telephony android.hardware.location android.software.sip android.hardware.touchscreen.multitouch android.hardware.sensor.compass android.hardware.camera android.hardware.bluetooth android.hardware.sensor.proximity android.software.sip.voip android.hardware.microphone android.hardware.sensor.light android.hardware.location.gps android.hardware.camera.autofocus android.hardware.telephony.gsm android.hardware.sensor.accelerometer android.hardware.touchscreen android.software.live_wallpaper android.hardware.camera.flash glEsVersion = 2.0


### ENVIRONMENT <a name="ENVIRONMENT" href="#ENVIRONMENT">#</a>
_**Since: 4.0 - Default: Yes**_

  External storage state and standard directories.

  Example from a NexusOne:
  

getDataDirectory=/data getDownloadCacheDirectory=/cache getExternalStorageAndroidDataDir=/mnt/sdcard/Android/data getExternalStorageDirectory=/mnt/sdcard getExternalStorageState=mounted getRootDirectory=/system getSecureDataDirectory=/data getSystemSecureDirectory=/data/system isEncryptedFilesystemEnabled=false isExternalStorageRemovable=true


### SHARED_PREFERENCES <a name="SHARED_PREFERENCES" href="#SHARED_PREFERENCES">#</a>
_**Since: 4.2 - Default: Yes**_

  Collects your applications SharedPreferences settings. "empty" often means that the user did not change anything so all values are default.
  
  You can add your onw SharedPreferences names to be collected with `@ReportsCrashes(additionalSharedPreferences={"my.own.prefs","a.second.prefs"})`.

### SETTINGS_SYSTEM <a name="SETTINGS_SYSTEM" href="#SETTINGS_SYSTEM">#</a>
_**Since: 4.0 - Default: Yes**_

  System settings.
  
  Example from Nexus One:
  

ACCELEROMETER_ROTATION=1 AIRPLANE_MODE_ON=0 AIRPLANE_MODE_RADIOS=cell,bluetooth,wifi AIRPLANE_MODE_TOGGLEABLE_RADIOS=bluetooth,wifi ALARM_ALERT=content://media/internal/audio/media/81 AUTO_TIME=0 CALL_AUTO_RETRY=0 CAR_DOCK_SOUND=/system/media/audio/ui/Dock.ogg CAR_UNDOCK_SOUND=/system/media/audio/ui/Undock.ogg DESK_DOCK_SOUND=/system/media/audio/ui/Dock.ogg DESK_UNDOCK_SOUND=/system/media/audio/ui/Undock.ogg DIM_SCREEN=1 DOCK_SOUNDS_ENABLED=0 DTMF_TONE_TYPE_WHEN_DIALING=0 EMERGENCY_TONE=0 FONT_SCALE=1.0 HAPTIC_FEEDBACK_ENABLED=1 HEARING_AID=0 LOCKSCREEN_SOUNDS_ENABLED=0 LOCK_SOUND=/system/media/audio/ui/Lock.ogg LOW_BATTERY_SOUND=/system/media/audio/ui/LowBattery.ogg MODE_RINGER=2 MODE_RINGER_STREAMS_AFFECTED=166 MUTE_STREAMS_AFFECTED=46 NEXT_ALARM_FORMATTED=sam. 6:45 NOTIFICATIONS_USE_RING_VOLUME=1 NOTIFICATION_LIGHT_PULSE=1 NOTIFICATION_SOUND=content://media/external/audio/media/85 POWER_SOUNDS_ENABLED=1 RINGTONE=content://media/internal/audio/media/11 SCREEN_BRIGHTNESS=76 SCREEN_BRIGHTNESS_MODE=1 SCREEN_OFF_TIMEOUT=60000 SHOW_WEB_SUGGESTIONS=1 STAY_ON_WHILE_PLUGGED_IN=0 TRANSITION_ANIMATION_SCALE=1.0 TTY_MODE=0 UNLOCK_SOUND=/system/media/audio/ui/Unlock.ogg VIBRATE_IN_SILENT=1 VIBRATE_ON=5 VOLUME_ALARM=5 VOLUME_BLUETOOTH_SCO=9 VOLUME_MUSIC=15 VOLUME_NOTIFICATION=5 VOLUME_RING=6 VOLUME_SYSTEM=7 VOLUME_VOICE=4 WIFI_SLEEP_POLICY=2 WIFI_USE_STATIC_IP=0 WINDOW_ANIMATION_SCALE=1.0


### SETTINGS_SECURE <a name="SETTINGS_SECURE" href="#SETTINGS_SECURE">#</a>
_**Since: 4.0 - Default: Yes**_

  Secure settings, applications can't modify them, only the user.
  
  Example from Nexus One:
  

ADB_ENABLED=1 ALLOWED_GEOLOCATION_ORIGINS=http://www.google.co.uk http://www.google.com ALLOW_MOCK_LOCATION=0 ANDROID_ID=200142d4dfd4e641 ASSISTED_GPS_ENABLED=1 BACKGROUND_DATA=1 BACKUP_ENABLED=1 BACKUP_PROVISIONED=1 BACKUP_TRANSPORT=com.google.android.backup/.BackupTransportService BLUETOOTH_ON=1 CDMA_CELL_BROADCAST_SMS=1 DATA_ROAMING=0 DEFAULT_INPUT_METHOD=com.touchtype.swiftkey/.KeyboardService DEVICE_PROVISIONED=1 DISABLED_SYSTEM_INPUT_METHODS= ENABLED_ACCESSIBILITY_SERVICES= ENABLED_INPUT_METHODS=com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME:com.touchtype.swiftkey/.KeyboardService INSTALL_NON_MARKET_APPS=1 LAST_SETUP_SHOWN=eclair_1 LOCATION_PROVIDERS_ALLOWED=network,gps MOBILE_DATA=1 MOUNT_PLAY_NOTIFICATION_SND=1 MOUNT_UMS_AUTOSTART=0 MOUNT_UMS_NOTIFY_ENABLED=1 MOUNT_UMS_PROMPT=1 NETWORK_PREFERENCE=1 PREFERRED_CDMA_SUBSCRIPTION=1 PREFERRED_NETWORK_MODE=0 SEND_ACTION_APP_ERROR=1 THROTTLE_RESET_DAY=14 TTS_DEFAULT_COUNTRY=FRA TTS_DEFAULT_LANG=fra TTS_DEFAULT_RATE=100 TTS_DEFAULT_SYNTH=com.svox.pico TTS_DEFAULT_VARIANT= TTS_ENABLED_PLUGINS= TTS_USE_DEFAULTS=0 USB_MASS_STORAGE_ENABLED=1 VOICE_RECOGNITION_SERVICE=com.google.android.voicesearch/.GoogleRecognitionService WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON=1 WIFI_ON=0 WIFI_SAVED_STATE=0 WIFI_WATCHDOG_WATCH_LIST=GoogleGuest


### APPLICATION_LOG <a name="APPLICATION_LOG" href="#APPLICATION_LOG">#</a>
_**Since: 4.3 - Default: No**_

  Content of your own application log file. To be configured with
  `@ReportsCrashes(applicationLogFile = "applog.log")` to define the path/name of
  the log file and `@ReportsCrashes.applicationLogFileLines(150)` to set
  the number of latest lines you want to be retrieved (default is 100).
  
### MEDIA_CODEC_LIST <a name="MEDIA_CODEC_LIST" href="#MEDIA_CODEC_LIST">#</a>
_**Since: 4.3 - Default: No**_
  
  Since Android API Level 16 (Android 4.1 - Jelly Beans), retrieve the list of supported Media codecs and their capabilities (color format, profile and level).

Sample collected from Android 4.1 emulator:

0: OMX.google.mp3.decoder isEncoder: false Supported types: [audio/mpeg] 1: OMX.google.amrnb.decoder isEncoder: false Supported types: [audio/3gpp] 2: OMX.google.amrwb.decoder isEncoder: false Supported types: [audio/amr-wb] 3: OMX.google.aac.decoder isEncoder: false Supported types: [audio/mp4a-latm] 4: OMX.google.g711.alaw.decoder isEncoder: false Supported types: [audio/g711-alaw] 5: OMX.google.g711.mlaw.decoder isEncoder: false Supported types: [audio/g711-mlaw] 6: OMX.google.vorbis.decoder isEncoder: false Supported types: [audio/vorbis] 7: OMX.google.mpeg4.decoder isEncoder: false Supported types: [video/mp4v-es] video/mp4v-es color formats:COLOR_FormatYUV420Planar video/mp4v-es profile levels:MPEG4ProfileSimple-MPEG4Level0,MPEG4ProfileSimple-MPEG4Level0b,MPEG4ProfileSimple-MPEG4Level1,MPEG4ProfileSimple-MPEG4Level2,MPEG4ProfileSimple-MPEG4Level3 8: OMX.google.h263.decoder isEncoder: false Supported types: [video/3gpp] video/3gpp color formats:COLOR_FormatYUV420Planar video/3gpp profile levels:H263ProfileBaseline-H263Level10,H263ProfileBaseline-H263Level20,H263ProfileBaseline-H263Level30,H263ProfileBaseline-H263Level45,H263ProfileISWV2-H263Level10,H263ProfileISWV2-H263Level20,H263ProfileISWV2-H263Level30,H263ProfileISWV2-H263Level45 9: OMX.google.h264.decoder isEncoder: false Supported types: [video/avc] video/avc color formats:COLOR_FormatYUV420Planar video/avc profile levels:1AVCProfileBaseline-AVCLevel1,1AVCProfileBaseline-AVCLevel1b,1AVCProfileBaseline-AVCLevel11,1AVCProfileBaseline-AVCLevel12,1AVCProfileBaseline-AVCLevel13,1AVCProfileBaseline-AVCLevel2,1AVCProfileBaseline-AVCLevel21,1AVCProfileBaseline-AVCLevel22,1AVCProfileBaseline-AVCLevel3,1AVCProfileBaseline-AVCLevel31,1AVCProfileBaseline-AVCLevel32,1AVCProfileBaseline-AVCLevel4,1AVCProfileBaseline-AVCLevel41,1AVCProfileBaseline-AVCLevel42,1AVCProfileBaseline-AVCLevel5,1AVCProfileBaseline-AVCLevel51 10: OMX.google.vpx.decoder isEncoder: false Supported types: [video/x-vnd.on2.vp8] video/x-vnd.on2.vp8 color formats:COLOR_FormatYUV420Planar 11: OMX.google.aac.encoder isEncoder: true Supported types: [audio/mp4a-latm] 12: OMX.google.amrnb.encoder isEncoder: true Supported types: [audio/3gpp] 13: OMX.google.amrwb.encoder isEncoder: true Supported types: [audio/amr-wb] 14: OMX.google.h263.encoder isEncoder: true Supported types: [video/3gpp] video/3gpp color formats:COLOR_FormatYUV420Planar,COLOR_FormatYUV420SemiPlanar video/3gpp profile levels:H263ProfileBaseline-H263Level45 15: OMX.google.h264.encoder isEncoder: true Supported types: [video/avc] video/avc color formats:COLOR_FormatYUV420Planar,COLOR_FormatYUV420SemiPlanar video/avc profile levels:1AVCProfileBaseline-AVCLevel1,1AVCProfileBaseline-AVCLevel1b,1AVCProfileBaseline-AVCLevel11,1AVCProfileBaseline-AVCLevel12,1AVCProfileBaseline-AVCLevel13,1AVCProfileBaseline-AVCLevel2 16: OMX.google.mpeg4.encoder isEncoder: true Supported types: [video/mp4v-es] video/mp4v-es color formats:COLOR_FormatYUV420Planar,COLOR_FormatYUV420SemiPlanar video/mp4v-es profile levels:MPEG4ProfileCore-MPEG4Level2 17: OMX.google.flac.encoder isEncoder: true Supported types: [audio/flac] 18: AACEncoder isEncoder: true Supported types: [audio/mp4a-latm] 19: OMX.google.raw.decoder isEncoder: false Supported types: [audio/raw]


### THREAD_DETAILS <a name="THREAD_DETAILS" href="#THREAD_DETAILS">#</a>
_**Since: 4.3 - Default: No**_
  
  Retrieves details of the failing thread (id, name, group name).

Here's what is provided when the main thread crashes:
  

id=1 name=main priority=5 groupName=main


And here is when a secondary thread which has been given a name (DoSomeBackgroundStuff) crashes:

id=91 name=DoSomeBackgroundStuff priority=5 groupName=main