am 05459528: am 6c6100d0: am c1398d50: am 8e99dfe1: am a1f6b095: FileSystemPermissionTest: assert /system mounted RO
* commit '054595285b217cea414becc9beb868c06ebe8c0a':
FileSystemPermissionTest: assert /system mounted RO
diff --git a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
index 7fb2337..e7f02b5 100644
--- a/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
+++ b/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java
@@ -23,10 +23,12 @@
import android.test.suitebuilder.annotation.MediumTest;
import android.test.suitebuilder.annotation.LargeTest;
+import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
@@ -616,6 +618,34 @@
return retval;
}
+ /**
+ * Scan through /proc/self/mounts, looking for the /system line. If the line
+ * has "ro" in the 4th column, then we know the filesystem is mounted read-only.
+ */
+ public void testSystemMountedRO() throws IOException {
+ BufferedReader br = new BufferedReader(new FileReader("/proc/self/mounts"));
+ String line;
+ boolean foundSystem = false;
+ while((line = br.readLine()) != null) {
+ String[] fields = line.split(" ");
+ String mountPoint = fields[1];
+ if ("/system".equals(mountPoint)) {
+ foundSystem = true;
+ String all_options = fields[3];
+ boolean foundRo = false;
+ String[] options = all_options.split(",");
+ for (String option : options) {
+ if ("ro".equals(option)) {
+ foundRo = true;
+ break;
+ }
+ }
+ assertTrue(mountPoint + " is not mounted read-only", foundRo);
+ }
+ }
+ assertTrue("Cannot find /system partition", foundSystem);
+ }
+
public void testAllBlockDevicesAreSecure() throws Exception {
Set<File> insecure = getAllInsecureBlockDevicesInDirAndSubdir(new File("/dev"));
assertTrue("Found insecure: " + insecure.toString(),