diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 7e094d4c0a4..d866e9d6005 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -909,7 +909,7 @@
- 16777216
-
+
- 64K per log buffer
- 256K per log buffer
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7f4293b2a2a..ae53227cfd2 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3168,7 +3168,7 @@
Show options for wireless display certification
Logger buffer sizes
-
+
Select Logger sizes per log buffer
Allow mock locations
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index a16f8b687f8..8cda9bb661a 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -150,6 +150,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
private static final int RESULT_DEBUG_APP = 1000;
+ private static String DEFAULT_LOG_RING_BUFFER_SIZE_IN_BYTES = "262144"; // 256K
+
private IWindowManager mWindowManager;
private IBackupManager mBackupManager;
private DevicePolicyManager mDpm;
@@ -993,12 +995,16 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
}
private void writeLogdSizeOption(Object newValue) {
- SystemProperties.set(SELECT_LOGD_SIZE_PROPERTY, newValue.toString());
+ final String size = (newValue != null) ?
+ newValue.toString() : DEFAULT_LOG_RING_BUFFER_SIZE_IN_BYTES;
+ SystemProperties.set(SELECT_LOGD_SIZE_PROPERTY, size);
pokeSystemProperties();
try {
- Process p = Runtime.getRuntime().exec("logcat -b all -G " + newValue.toString());
- int status = p.waitFor();
+ Process p = Runtime.getRuntime().exec("logcat -b all -G " + size);
+ p.waitFor();
+ Log.i(TAG, "Logcat ring buffer sizes set to: " + size);
} catch (Exception e) {
+ Log.w(TAG, "Cannot set logcat ring buffer sizes", e);
}
updateLogdSizeValues();
}