diff options
| author | 2016-08-12 20:18:35 +0000 | |
|---|---|---|
| committer | 2016-08-12 20:18:35 +0000 | |
| commit | b0648a173cfd19f154193863e290ff669ef9e519 (patch) | |
| tree | 61f6de7b404a29fe69a0199a9efad2aafd44819d | |
| parent | 251cd37b789eec2b9d752dc1c3f040de588b0168 (diff) | |
| parent | 6da39a4406a5768cefb99e5a5426fb22248523bc (diff) | |
Add property to force restorecon to run.
am: 6da39a4406
Change-Id: I5eb34da7d5e9a30c23c338cfe1f69d8d3a01854e
| -rw-r--r-- | services/core/java/com/android/server/pm/SELinuxMMAC.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/SELinuxMMAC.java b/services/core/java/com/android/server/pm/SELinuxMMAC.java index a6350fe8cf35..89705560db7d 100644 --- a/services/core/java/com/android/server/pm/SELinuxMMAC.java +++ b/services/core/java/com/android/server/pm/SELinuxMMAC.java @@ -19,6 +19,7 @@ package com.android.server.pm; import android.content.pm.PackageParser; import android.content.pm.Signature; import android.os.Environment; +import android.os.SystemProperties; import android.system.ErrnoException; import android.system.Os; import android.system.OsConstants; @@ -64,6 +65,8 @@ public final class SELinuxMMAC { // to synchronize access during policy load and access attempts. private static List<Policy> sPolicies = new ArrayList<>(); + private static final String PROP_FORCE_RESTORECON = "sys.force_restorecon"; + /** Path to version on rootfs */ private static final File VERSION_FILE = new File("/selinux_version"); @@ -322,6 +325,11 @@ public final class SELinuxMMAC { * @return Returns true if the restorecon should occur or false otherwise. */ public static boolean isRestoreconNeeded(File file) { + // To investigate boot timing, allow a property to always force restorecon + if (SystemProperties.getBoolean(PROP_FORCE_RESTORECON, false)) { + return true; + } + try { final byte[] buf = new byte[20]; final int len = Os.getxattr(file.getAbsolutePath(), XATTR_SEAPP_HASH, buf); |