Merge "Revert "SELinuxMMAC unit tests""
diff --git a/services/tests/servicestests/res/raw/mmac_cnsps_ds.xml b/services/tests/servicestests/res/raw/mmac_cnsps_ds.xml
deleted file mode 100644
index df32dc7..0000000
--- a/services/tests/servicestests/res/raw/mmac_cnsps_ds.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<policy>
-
-  <!-- Platform dev key with AOSP -->
-  <signer signature="308204a830820390a003020102020900b3998086d056cffa300d06092a864886f70d0101040500308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d301e170d3038303431353232343035305a170d3335303930313232343035305a308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d30820120300d06092a864886f70d01010105000382010d003082010802820101009c780592ac0d5d381cdeaa65ecc8a6006e36480c6d7207b12011be50863aabe2b55d009adf7146d6f2202280c7cd4d7bdb26243b8a806c26b34b137523a49268224904dc01493e7c0acf1a05c874f69b037b60309d9074d24280e16bad2a8734361951eaf72a482d09b204b1875e12ac98c1aa773d6800b9eafde56d58bed8e8da16f9a360099c37a834a6dfedb7b6b44a049e07a269fccf2c5496f2cf36d64df90a3b8d8f34a3baab4cf53371ab27719b3ba58754ad0c53fc14e1db45d51e234fbbe93c9ba4edf9ce54261350ec535607bf69a2ff4aa07db5f7ea200d09a6c1b49e21402f89ed1190893aab5a9180f152e82f85a45753cf5fc19071c5eec827020103a381fc3081f9301d0603551d0e041604144fe4a0b3dd9cba29f71d7287c4e7c38f2086c2993081c90603551d230481c13081be80144fe4a0b3dd9cba29f71d7287c4e7c38f2086c299a1819aa48197308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d820900b3998086d056cffa300c0603551d13040530030101ff300d06092a864886f70d01010405000382010100572551b8d93a1f73de0f6d469f86dad6701400293c88a0cd7cd778b73dafcc197fab76e6212e56c1c761cfc42fd733de52c50ae08814cefc0a3b5a1a4346054d829f1d82b42b2048bf88b5d14929ef85f60edd12d72d55657e22e3e85d04c831d613d19938bb8982247fa321256ba12d1d6a8f92ea1db1c373317ba0c037f0d1aff645aef224979fba6e7a14bc025c71b98138cef3ddfc059617cf24845cf7b40d6382f7275ed738495ab6e5931b9421765c491b72fb68e080dbdb58c2029d347c8b328ce43ef6a8b15533edfbe989bd6a48dd4b202eda94c6ab8dd5b8399203daae2ed446232e4fe9bd961394c6300e5138e3cfd285e6e4e483538cb8b1b357" >
-    <package name="com.android.frameworks.servicestests.mmac_install_platform" >
-      <seinfo value="package" />
-    </package>
-  </signer>
-
-  <default>
-    <seinfo value="default"/>
-  </default>
-
-</policy>
diff --git a/services/tests/servicestests/res/raw/mmac_cnsps_nd.xml b/services/tests/servicestests/res/raw/mmac_cnsps_nd.xml
deleted file mode 100644
index b6ffc58..0000000
--- a/services/tests/servicestests/res/raw/mmac_cnsps_nd.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<policy>
-
-  <!-- Platform dev key with AOSP -->
-  <signer signature="308204a830820390a003020102020900b3998086d056cffa300d06092a864886f70d0101040500308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d301e170d3038303431353232343035305a170d3335303930313232343035305a308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d30820120300d06092a864886f70d01010105000382010d003082010802820101009c780592ac0d5d381cdeaa65ecc8a6006e36480c6d7207b12011be50863aabe2b55d009adf7146d6f2202280c7cd4d7bdb26243b8a806c26b34b137523a49268224904dc01493e7c0acf1a05c874f69b037b60309d9074d24280e16bad2a8734361951eaf72a482d09b204b1875e12ac98c1aa773d6800b9eafde56d58bed8e8da16f9a360099c37a834a6dfedb7b6b44a049e07a269fccf2c5496f2cf36d64df90a3b8d8f34a3baab4cf53371ab27719b3ba58754ad0c53fc14e1db45d51e234fbbe93c9ba4edf9ce54261350ec535607bf69a2ff4aa07db5f7ea200d09a6c1b49e21402f89ed1190893aab5a9180f152e82f85a45753cf5fc19071c5eec827020103a381fc3081f9301d0603551d0e041604144fe4a0b3dd9cba29f71d7287c4e7c38f2086c2993081c90603551d230481c13081be80144fe4a0b3dd9cba29f71d7287c4e7c38f2086c299a1819aa48197308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d820900b3998086d056cffa300c0603551d13040530030101ff300d06092a864886f70d01010405000382010100572551b8d93a1f73de0f6d469f86dad6701400293c88a0cd7cd778b73dafcc197fab76e6212e56c1c761cfc42fd733de52c50ae08814cefc0a3b5a1a4346054d829f1d82b42b2048bf88b5d14929ef85f60edd12d72d55657e22e3e85d04c831d613d19938bb8982247fa321256ba12d1d6a8f92ea1db1c373317ba0c037f0d1aff645aef224979fba6e7a14bc025c71b98138cef3ddfc059617cf24845cf7b40d6382f7275ed738495ab6e5931b9421765c491b72fb68e080dbdb58c2029d347c8b328ce43ef6a8b15533edfbe989bd6a48dd4b202eda94c6ab8dd5b8399203daae2ed446232e4fe9bd961394c6300e5138e3cfd285e6e4e483538cb8b1b357" >
-    <package name="com.android.frameworks.servicestests.mmac_install_platform" >
-      <seinfo value="package" />
-    </package>
-  </signer>
-
-</policy>
diff --git a/services/tests/servicestests/res/raw/mmac_csnp_ds.xml b/services/tests/servicestests/res/raw/mmac_csnp_ds.xml
deleted file mode 100644
index 4471278..0000000
--- a/services/tests/servicestests/res/raw/mmac_csnp_ds.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<policy>
-
-  <!-- Platform dev key with AOSP -->
-  <signer signature="308204a830820390a003020102020900b3998086d056cffa300d06092a864886f70d0101040500308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d301e170d3038303431353232343035305a170d3335303930313232343035305a308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d30820120300d06092a864886f70d01010105000382010d003082010802820101009c780592ac0d5d381cdeaa65ecc8a6006e36480c6d7207b12011be50863aabe2b55d009adf7146d6f2202280c7cd4d7bdb26243b8a806c26b34b137523a49268224904dc01493e7c0acf1a05c874f69b037b60309d9074d24280e16bad2a8734361951eaf72a482d09b204b1875e12ac98c1aa773d6800b9eafde56d58bed8e8da16f9a360099c37a834a6dfedb7b6b44a049e07a269fccf2c5496f2cf36d64df90a3b8d8f34a3baab4cf53371ab27719b3ba58754ad0c53fc14e1db45d51e234fbbe93c9ba4edf9ce54261350ec535607bf69a2ff4aa07db5f7ea200d09a6c1b49e21402f89ed1190893aab5a9180f152e82f85a45753cf5fc19071c5eec827020103a381fc3081f9301d0603551d0e041604144fe4a0b3dd9cba29f71d7287c4e7c38f2086c2993081c90603551d230481c13081be80144fe4a0b3dd9cba29f71d7287c4e7c38f2086c299a1819aa48197308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d820900b3998086d056cffa300c0603551d13040530030101ff300d06092a864886f70d01010405000382010100572551b8d93a1f73de0f6d469f86dad6701400293c88a0cd7cd778b73dafcc197fab76e6212e56c1c761cfc42fd733de52c50ae08814cefc0a3b5a1a4346054d829f1d82b42b2048bf88b5d14929ef85f60edd12d72d55657e22e3e85d04c831d613d19938bb8982247fa321256ba12d1d6a8f92ea1db1c373317ba0c037f0d1aff645aef224979fba6e7a14bc025c71b98138cef3ddfc059617cf24845cf7b40d6382f7275ed738495ab6e5931b9421765c491b72fb68e080dbdb58c2029d347c8b328ce43ef6a8b15533edfbe989bd6a48dd4b202eda94c6ab8dd5b8399203daae2ed446232e4fe9bd961394c6300e5138e3cfd285e6e4e483538cb8b1b357" >
-    <seinfo value="signer" />
-  </signer>
-
-  <default>
-    <seinfo value="default"/>
-  </default>
-
-</policy>
diff --git a/services/tests/servicestests/res/raw/mmac_csnp_nd.xml b/services/tests/servicestests/res/raw/mmac_csnp_nd.xml
deleted file mode 100644
index 2b79f73..0000000
--- a/services/tests/servicestests/res/raw/mmac_csnp_nd.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<policy>
-
-  <!-- Platform dev key with AOSP -->
-  <signer signature="308204a830820390a003020102020900b3998086d056cffa300d06092a864886f70d0101040500308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d301e170d3038303431353232343035305a170d3335303930313232343035305a308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d30820120300d06092a864886f70d01010105000382010d003082010802820101009c780592ac0d5d381cdeaa65ecc8a6006e36480c6d7207b12011be50863aabe2b55d009adf7146d6f2202280c7cd4d7bdb26243b8a806c26b34b137523a49268224904dc01493e7c0acf1a05c874f69b037b60309d9074d24280e16bad2a8734361951eaf72a482d09b204b1875e12ac98c1aa773d6800b9eafde56d58bed8e8da16f9a360099c37a834a6dfedb7b6b44a049e07a269fccf2c5496f2cf36d64df90a3b8d8f34a3baab4cf53371ab27719b3ba58754ad0c53fc14e1db45d51e234fbbe93c9ba4edf9ce54261350ec535607bf69a2ff4aa07db5f7ea200d09a6c1b49e21402f89ed1190893aab5a9180f152e82f85a45753cf5fc19071c5eec827020103a381fc3081f9301d0603551d0e041604144fe4a0b3dd9cba29f71d7287c4e7c38f2086c2993081c90603551d230481c13081be80144fe4a0b3dd9cba29f71d7287c4e7c38f2086c299a1819aa48197308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d820900b3998086d056cffa300c0603551d13040530030101ff300d06092a864886f70d01010405000382010100572551b8d93a1f73de0f6d469f86dad6701400293c88a0cd7cd778b73dafcc197fab76e6212e56c1c761cfc42fd733de52c50ae08814cefc0a3b5a1a4346054d829f1d82b42b2048bf88b5d14929ef85f60edd12d72d55657e22e3e85d04c831d613d19938bb8982247fa321256ba12d1d6a8f92ea1db1c373317ba0c037f0d1aff645aef224979fba6e7a14bc025c71b98138cef3ddfc059617cf24845cf7b40d6382f7275ed738495ab6e5931b9421765c491b72fb68e080dbdb58c2029d347c8b328ce43ef6a8b15533edfbe989bd6a48dd4b202eda94c6ab8dd5b8399203daae2ed446232e4fe9bd961394c6300e5138e3cfd285e6e4e483538cb8b1b357" >
-    <seinfo value="signer" />
-  </signer>
-</policy>
diff --git a/services/tests/servicestests/res/raw/mmac_csps_ds.xml b/services/tests/servicestests/res/raw/mmac_csps_ds.xml
deleted file mode 100644
index 62b8e5f..0000000
--- a/services/tests/servicestests/res/raw/mmac_csps_ds.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<policy>
-
-  <!-- Platform dev key with AOSP -->
-  <signer signature="308204a830820390a003020102020900b3998086d056cffa300d06092a864886f70d0101040500308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d301e170d3038303431353232343035305a170d3335303930313232343035305a308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d30820120300d06092a864886f70d01010105000382010d003082010802820101009c780592ac0d5d381cdeaa65ecc8a6006e36480c6d7207b12011be50863aabe2b55d009adf7146d6f2202280c7cd4d7bdb26243b8a806c26b34b137523a49268224904dc01493e7c0acf1a05c874f69b037b60309d9074d24280e16bad2a8734361951eaf72a482d09b204b1875e12ac98c1aa773d6800b9eafde56d58bed8e8da16f9a360099c37a834a6dfedb7b6b44a049e07a269fccf2c5496f2cf36d64df90a3b8d8f34a3baab4cf53371ab27719b3ba58754ad0c53fc14e1db45d51e234fbbe93c9ba4edf9ce54261350ec535607bf69a2ff4aa07db5f7ea200d09a6c1b49e21402f89ed1190893aab5a9180f152e82f85a45753cf5fc19071c5eec827020103a381fc3081f9301d0603551d0e041604144fe4a0b3dd9cba29f71d7287c4e7c38f2086c2993081c90603551d230481c13081be80144fe4a0b3dd9cba29f71d7287c4e7c38f2086c299a1819aa48197308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d820900b3998086d056cffa300c0603551d13040530030101ff300d06092a864886f70d01010405000382010100572551b8d93a1f73de0f6d469f86dad6701400293c88a0cd7cd778b73dafcc197fab76e6212e56c1c761cfc42fd733de52c50ae08814cefc0a3b5a1a4346054d829f1d82b42b2048bf88b5d14929ef85f60edd12d72d55657e22e3e85d04c831d613d19938bb8982247fa321256ba12d1d6a8f92ea1db1c373317ba0c037f0d1aff645aef224979fba6e7a14bc025c71b98138cef3ddfc059617cf24845cf7b40d6382f7275ed738495ab6e5931b9421765c491b72fb68e080dbdb58c2029d347c8b328ce43ef6a8b15533edfbe989bd6a48dd4b202eda94c6ab8dd5b8399203daae2ed446232e4fe9bd961394c6300e5138e3cfd285e6e4e483538cb8b1b357" >
-    <seinfo value="signer" />
-    <package name="com.android.frameworks.servicestests.mmac_install_platform" >
-      <seinfo value="package" />
-    </package>
-  </signer>
-
-  <default>
-    <seinfo value="default"/>
-  </default>
-
-</policy>
diff --git a/services/tests/servicestests/res/raw/mmac_csps_nd.xml b/services/tests/servicestests/res/raw/mmac_csps_nd.xml
deleted file mode 100644
index a568f94..0000000
--- a/services/tests/servicestests/res/raw/mmac_csps_nd.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<policy>
-
-  <!-- Platform dev key with AOSP -->
-  <signer signature="308204a830820390a003020102020900b3998086d056cffa300d06092a864886f70d0101040500308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d301e170d3038303431353232343035305a170d3335303930313232343035305a308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d30820120300d06092a864886f70d01010105000382010d003082010802820101009c780592ac0d5d381cdeaa65ecc8a6006e36480c6d7207b12011be50863aabe2b55d009adf7146d6f2202280c7cd4d7bdb26243b8a806c26b34b137523a49268224904dc01493e7c0acf1a05c874f69b037b60309d9074d24280e16bad2a8734361951eaf72a482d09b204b1875e12ac98c1aa773d6800b9eafde56d58bed8e8da16f9a360099c37a834a6dfedb7b6b44a049e07a269fccf2c5496f2cf36d64df90a3b8d8f34a3baab4cf53371ab27719b3ba58754ad0c53fc14e1db45d51e234fbbe93c9ba4edf9ce54261350ec535607bf69a2ff4aa07db5f7ea200d09a6c1b49e21402f89ed1190893aab5a9180f152e82f85a45753cf5fc19071c5eec827020103a381fc3081f9301d0603551d0e041604144fe4a0b3dd9cba29f71d7287c4e7c38f2086c2993081c90603551d230481c13081be80144fe4a0b3dd9cba29f71d7287c4e7c38f2086c299a1819aa48197308194310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d4d6f756e7461696e20566965773110300e060355040a1307416e64726f69643110300e060355040b1307416e64726f69643110300e06035504031307416e64726f69643122302006092a864886f70d0109011613616e64726f696440616e64726f69642e636f6d820900b3998086d056cffa300c0603551d13040530030101ff300d06092a864886f70d01010405000382010100572551b8d93a1f73de0f6d469f86dad6701400293c88a0cd7cd778b73dafcc197fab76e6212e56c1c761cfc42fd733de52c50ae08814cefc0a3b5a1a4346054d829f1d82b42b2048bf88b5d14929ef85f60edd12d72d55657e22e3e85d04c831d613d19938bb8982247fa321256ba12d1d6a8f92ea1db1c373317ba0c037f0d1aff645aef224979fba6e7a14bc025c71b98138cef3ddfc059617cf24845cf7b40d6382f7275ed738495ab6e5931b9421765c491b72fb68e080dbdb58c2029d347c8b328ce43ef6a8b15533edfbe989bd6a48dd4b202eda94c6ab8dd5b8399203daae2ed446232e4fe9bd961394c6300e5138e3cfd285e6e4e483538cb8b1b357" >
-    <seinfo value="signer" />
-    <package name="com.android.frameworks.servicestests.mmac_install_platform" >
-      <seinfo value="package" />
-    </package>
-  </signer>
-
-</policy>
diff --git a/services/tests/servicestests/res/raw/mmac_nc_ds.xml b/services/tests/servicestests/res/raw/mmac_nc_ds.xml
deleted file mode 100644
index a5b7ef8..0000000
--- a/services/tests/servicestests/res/raw/mmac_nc_ds.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<policy>
-
-  <default>
-    <seinfo value="default" />
-  </default>
-
-</policy>
diff --git a/services/tests/servicestests/res/raw/mmac_nc_nd.xml b/services/tests/servicestests/res/raw/mmac_nc_nd.xml
deleted file mode 100644
index ef9c6dd..0000000
--- a/services/tests/servicestests/res/raw/mmac_nc_nd.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<policy>
-</policy>
diff --git a/services/tests/servicestests/res/raw/signed_platform.apk b/services/tests/servicestests/res/raw/signed_platform.apk
deleted file mode 100644
index aadcdea..0000000
--- a/services/tests/servicestests/res/raw/signed_platform.apk
+++ /dev/null
Binary files differ
diff --git a/services/tests/servicestests/res/raw/signed_release.apk b/services/tests/servicestests/res/raw/signed_release.apk
deleted file mode 100644
index af50f45..0000000
--- a/services/tests/servicestests/res/raw/signed_release.apk
+++ /dev/null
Binary files differ
diff --git a/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTests.java b/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTests.java
deleted file mode 100644
index ce5f7b9..0000000
--- a/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTests.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.pm;
-
-import android.content.pm.PackageParser;
-import android.content.res.Resources;
-import android.content.res.Resources.NotFoundException;
-import android.net.Uri;
-import android.os.FileUtils;
-import android.test.AndroidTestCase;
-import android.util.DisplayMetrics;
-
-import com.android.frameworks.servicestests.R;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.InputStream;
-import java.io.IOException;
-
-/**
- * Test the {@link SELinuxMMAC} functionality. An emphasis is placed on testing the
- * seinfo assignments that result from various mac_permissions.xml files. To run these
- * tests individually use the following set of commands:
- *
- * <pre>
- * {@code
- * cd $ANDROID_BUILD_TOP
- * make -j8 FrameworksServicesTests
- * adb install -r out/target/product/mako/data/app/FrameworksServicesTests.apk
- * adb shell am instrument -w -e class com.android.server.pm.SELinuxMMACTests com.android.frameworks.servicestests/android.test.InstrumentationTestRunner
- * }
- *
- */
-public class SELinuxMMACTests extends AndroidTestCase {
-
-    private static final String TAG = "SELinuxMMACTests";
-
-    private static File MAC_INSTALL_TMP;
-    private static File APK_INSTALL_TMP;
-
-    private static final String MAC_INSTALL_TMP_NAME = "macperms_test_policy";
-    private static final String APK_INSTALL_TMP_NAME = "test_install.apk";
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        // Use the test apps data directory as scratch space
-        File filesDir = mContext.getFilesDir();
-        assertNotNull(filesDir);
-
-        // Need a tmp file to hold mmac policy
-        MAC_INSTALL_TMP = new File(filesDir, MAC_INSTALL_TMP_NAME);
-
-        // Need a tmp file to hold the apk
-        APK_INSTALL_TMP = new File(filesDir, APK_INSTALL_TMP_NAME);
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-
-        // Just in case tmp files still exist
-        MAC_INSTALL_TMP.delete();
-        APK_INSTALL_TMP.delete();
-    }
-
-    /**
-     * Fake an app install. Simply call the PackageParser to parse and save the
-     * contents of the app.
-     */
-    private PackageParser.Package parsePackage(Uri packageURI) {
-        // Package archive parsing
-        String archiveFilePath = packageURI.getPath();
-        PackageParser packageParser = new PackageParser(archiveFilePath);
-        File sourceFile = new File(archiveFilePath);
-        DisplayMetrics metrics = new DisplayMetrics();
-        metrics.setToDefaults();
-        PackageParser.Package pkg = packageParser.parsePackage(sourceFile,
-                archiveFilePath, metrics, 0);
-        assertNotNull(pkg);
-        assertNotNull(pkg.packageName);
-
-        // Collect the certs for this package
-        boolean savedCerts = packageParser.collectCertificates(pkg, 0);
-        assertTrue(savedCerts);
-
-        return pkg;
-    }
-
-    /**
-     * Dump the contents of a resource to a file. This is just an ancillary function
-     * used for copying the apk and mac_permissions.xml policy files.
-     */
-    private Uri getResourceURI(int fileResId, File outFile) {
-        try (InputStream is = mContext.getResources().openRawResource(fileResId)) {
-            boolean copied = FileUtils.copyToFile(is, outFile);
-            assertTrue(copied);
-        } catch (NotFoundException | IOException ex) {
-            fail("Expecting to load resource with id: " + fileResId + ". " + ex);
-        }
-
-        return Uri.fromFile(outFile);
-    }
-
-    /**
-     * Takes the policy xml file as a resource, the apk as a resource and the expected
-     * seinfo string. Determines if the assigned seinfo string matches the passed string.
-     */
-    private void checkSeinfo(int policyRes, int apkRes, String expectedSeinfo) {
-        // Grab policy file as a uri
-        Uri policyURI = getResourceURI(policyRes, MAC_INSTALL_TMP);
-
-        // Parse the policy file
-        boolean parsed = SELinuxMMAC.readInstallPolicy(policyURI.getPath());
-        assertTrue(parsed);
-
-        // Grab the apk as a uri
-        Uri apkURI = getResourceURI(apkRes, APK_INSTALL_TMP);
-
-        // "install" the apk
-        PackageParser.Package pkg = parsePackage(apkURI);
-
-        // Assign the apk an seinfo value
-        SELinuxMMAC.assignSeinfoValue(pkg);
-
-        // Check for expected seinfo against assigned seinfo value
-        String actualSeinfo = pkg.applicationInfo.seinfo;
-        if (expectedSeinfo == null) {
-            assertNull(actualSeinfo);
-        } else {
-            assertEquals(expectedSeinfo, actualSeinfo);
-        }
-
-        // delete policy and apk
-        MAC_INSTALL_TMP.delete();
-        APK_INSTALL_TMP.delete();
-    }
-
-    /*
-     * Start of the SElinuxMMAC tests
-     */
-
-    // Requested policy file doesn't exist
-    public void test_INSTALL_POLICY_BADPATH() {
-        boolean ret = SELinuxMMAC.readInstallPolicy("/d/o/e/s/n/t/e/x/i/s/t");
-        assertFalse(ret);
-    }
-
-    /*
-     * Raw resource xml file names can be decoded with:
-     *  c = signature stanza included
-     *  s = seinfo tag attached
-     *  p = package tag attached
-     *  d = default stanza included
-     *  n = means the next abbreviation is missing
-     *
-     * Example: R.raw.mmac_csps_ds.xml would translate to a signer stanza
-     * with a seinfo tag attached followed by an inner child package tag which
-     * has an seinfo tag. Also, there is a default stanza with an attached
-     * seinfo tag.
-     */
-
-    // signer stanza (seinfo, no package), no default stanza : match signer
-    public void test_CSNP_ND() {
-        checkSeinfo(R.raw.mmac_csnp_nd, R.raw.signed_platform, "signer");
-    }
-
-    // signer stanza (seinfo, no package), no default stanza : match nothing
-    public void test_CSNP_ND_2() {
-        checkSeinfo(R.raw.mmac_csnp_nd, R.raw.signed_release, null);
-    }
-
-    // signer stanza (seinfo, package), no default stanza : match inner package
-    public void test_CSPS_ND() {
-        checkSeinfo(R.raw.mmac_csps_nd, R.raw.signed_platform, "package");
-    }
-
-    // signer stanza (seinfo, package), no default stanza : match nothing
-    public void test_CSPS_ND_2() {
-        checkSeinfo(R.raw.mmac_csps_nd, R.raw.signed_release, null);
-    }
-
-    // signer stanza (no seinfo, package), no default stanza : match inner package
-    public void test_CNSPS_ND() {
-        checkSeinfo(R.raw.mmac_cnsps_nd, R.raw.signed_platform, "package");
-    }
-
-    // signer stanza (no seinfo, package), no default stanza : match nothing
-    public void test_CNSPS_ND_2() {
-        checkSeinfo(R.raw.mmac_cnsps_nd, R.raw.signed_release, null);
-    }
-
-    // signer stanza (seinfo, no package), default stanza : match signer
-    public void test_CSNP_DS() {
-        checkSeinfo(R.raw.mmac_csnp_ds, R.raw.signed_platform, "signer");
-    }
-
-    // signer stanza (seinfo, no package), default stanza : match default
-    public void test_CSNP_DS_2() {
-        checkSeinfo(R.raw.mmac_csnp_ds, R.raw.signed_release, "default");
-    }
-
-    // signer stanza (seinfo, package), default stanza : match inner package
-    public void test_CSPS_DS() {
-        checkSeinfo(R.raw.mmac_csps_ds, R.raw.signed_platform, "package");
-    }
-
-    // signer stanza (seinfo, package), default stanza : match default
-    public void test_CSPS_DS_2() {
-        checkSeinfo(R.raw.mmac_csps_ds, R.raw.signed_release, "default");
-    }
-
-    // signer stanza (no seinfo, package), default stanza : match inner package
-    public void test_CNSPS_DS() {
-        checkSeinfo(R.raw.mmac_cnsps_ds, R.raw.signed_platform, "package");
-    }
-
-    // signer stanza (no seinfo, package), default stanza : match default
-    public void test_CNSPS_DS_2() {
-        checkSeinfo(R.raw.mmac_cnsps_ds, R.raw.signed_release, "default");
-    }
-
-    // no signer stanza, default stanza : match default
-    public void test_NC_DS() {
-        checkSeinfo(R.raw.mmac_nc_ds, R.raw.signed_platform, "default");
-    }
-
-    // Test for empty policy (i.e. no stanzas at all) : match nothing
-    public void test_NC_ND() {
-        checkSeinfo(R.raw.mmac_nc_nd, R.raw.signed_platform, null);
-    }
-}