2011年12月13日
Android 4.0のStrictモードのログを止める
Android 4.0をソースコードからeng(=Engineering)モードでビルドすると、システム全体でStrictモードが有効になります。その状態だとStrictモード違反のログが大量に出て、logcatのリングバッファがすぐに一周してしまい、ブート直後のログが失われてしまいます。
そこで、ソースコードを修正してこのログを出ないようにしました。
ソースコードの修正
frameworks/base/core/java/android/os/StrictMode.java を以下のように修正します。
diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictM index 4d7a9bb..cc98e69 100644 --- a/core/java/android/os/StrictMode.java +++ b/core/java/android/os/StrictMode.java @@ -113,7 +113,8 @@ public final class StrictMode { private static final String TAG = "StrictMode"; private static final boolean LOG_V = Log.isLoggable(TAG, Log.VERBOSE); - private static final boolean IS_USER_BUILD = "user".equals(Build.TYPE); + //private static final boolean IS_USER_BUILD = "user".equals(Build.TYPE); + private static final boolean IS_USER_BUILD = true; private static final boolean IS_ENG_BUILD = "eng".equals(Build.TYPE); /**
Android 4.0のEmulatorでのログ
この状態で取得したlogcatのログ
Android log of emulator of Android 4.0 (without StrictModeViolation)
kernelのログ
Kernel boot log of emulator of Android 4.0
/etc/cpuinfo
/proc/cpuinfo of emulator of Android 4.0
getpropの結果