summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values/strings.xml5
-rw-r--r--res/xml/device_info_settings.xml12
-rw-r--r--src/com/android/settings/DeviceInfoSettings.java61
3 files changed, 78 insertions, 0 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index cb6eb36..5a61b3d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4415,6 +4415,11 @@
<!-- About phone screen, build date of ROM -->
<string name="build_date">Build date</string>
<string name="build_date_default">2012-01-01-0000</string>
+ <!-- About device screen, Cpu info. -->
+ <string name="cpu_info">CPU</string>
+ <!-- About phone screen, Free memory info -->
+ <string name="mem_info">Memory</string>
+ <!-- About phone screen, status item label -->
<!-- **** CYANOGENMOD ADDITIONS END **** -->
</resources>
diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml
index 6322ec4..0666034 100644
--- a/res/xml/device_info_settings.xml
+++ b/res/xml/device_info_settings.xml
@@ -122,6 +122,18 @@
android:title="@string/kernel_version"
android:summary="@string/device_info_default"/>
+ <!-- Device cpu info -->
+ <Preference android:key="device_cpu"
+ style="?android:preferenceInformationStyle"
+ android:title="@string/cpu_info"
+ android:summary="@string/device_info_default"/>
+
+ <!-- Device mem info -->
+ <Preference android:key="device_memory"
+ style="?android:preferenceInformationStyle"
+ android:title="@string/mem_info"
+ android:summary="@string/device_info_default"/>
+
<!-- Mod version -->
<Preference android:key="mod_version"
style="?android:preferenceInformationStyle"
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index 491c41e..4d2ad17 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -32,8 +32,10 @@ import android.util.Log;
import android.widget.Toast;
import java.io.BufferedReader;
+import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -43,6 +45,8 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment {
private static final String FILENAME_PROC_VERSION = "/proc/version";
private static final String FILENAME_MSV = "/sys/board_properties/soc/msv";
+ private static final String FILENAME_PROC_MEMINFO = "/proc/meminfo";
+ private static final String FILENAME_PROC_CPUINFO = "/proc/cpuinfo";
private static final String KEY_CONTAINER = "container";
private static final String KEY_TEAM = "team";
@@ -65,6 +69,8 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment {
private static final String PROPERTY_EQUIPMENT_ID = "ro.ril.fccid";
private static final String KEY_MOD_VERSION = "mod_version";
private static final String KEY_MOD_BUILD_DATE = "build_date";
+ private static final String KEY_DEVICE_CPU = "device_cpu";
+ private static final String KEY_DEVICE_MEMORY = "device_memory";
static final int TAPS_TO_BE_A_DEVELOPER = 7;
@@ -102,6 +108,21 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment {
removePreferenceIfPropertyMissing(getPreferenceScreen(), KEY_SELINUX_STATUS,
PROPERTY_SELINUX_STATUS);
+ String cpuInfo = getCPUInfo();
+ String memInfo = getMemInfo();
+
+ if (cpuInfo != null) {
+ setStringSummary(KEY_DEVICE_CPU, cpuInfo);
+ } else {
+ getPreferenceScreen().removePreference(findPreference(KEY_DEVICE_CPU));
+ }
+
+ if (memInfo != null) {
+ setStringSummary(KEY_DEVICE_MEMORY, memInfo);
+ } else {
+ getPreferenceScreen().removePreference(findPreference(KEY_DEVICE_MEMORY));
+ }
+
// Remove Safety information preference if PROPERTY_URL_SAFETYLEGAL is not set
removePreferenceIfPropertyMissing(getPreferenceScreen(), "safetylegal",
PROPERTY_URL_SAFETYLEGAL);
@@ -329,4 +350,44 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment {
}
return "";
}
+
+ private String getMemInfo() {
+ String result = null;
+ BufferedReader reader = null;
+
+ try {
+ /* /proc/meminfo entries follow this format:
+ * MemTotal: 362096 kB
+ * MemFree: 29144 kB
+ * Buffers: 5236 kB
+ * Cached: 81652 kB
+ */
+ String firstLine = readLine(FILENAME_PROC_MEMINFO);
+ if (firstLine != null) {
+ String parts[] = firstLine.split("\\s+");
+ if (parts.length == 3) {
+ result = Long.parseLong(parts[1])/1024 + " MB";
+ }
+ }
+ } catch (IOException e) {}
+
+ return result;
+ }
+
+ private String getCPUInfo() {
+ String result = null;
+
+ try {
+ /* The expected /proc/cpuinfo output is as follows:
+ * Processor : ARMv7 Processor rev 2 (v7l)
+ * BogoMIPS : 272.62
+ */
+ String firstLine = readLine(FILENAME_PROC_CPUINFO);
+ if (firstLine != null) {
+ result = firstLine.split(":")[1].trim();
+ }
+ } catch (IOException e) {}
+
+ return result;
+ }
}