Loading services/core/java/com/android/server/pm/SELinuxMMAC.java +40 −37 Original line number Diff line number Diff line Loading @@ -59,8 +59,9 @@ public final class SELinuxMMAC { private static List<Policy> sPolicies = new ArrayList<>(); /** Path to MAC permissions on system image */ private static final File MAC_PERMISSIONS = new File(Environment.getRootDirectory(), "/etc/security/mac_permissions.xml"); private static final File[] MAC_PERMISSIONS = { new File(Environment.getRootDirectory(), "/etc/security/plat_mac_permissions.xml"), new File(Environment.getRootDirectory(), "/etc/security/nonplat_mac_permissions.xml") }; // Append privapp to existing seinfo label private static final String PRIVILEGED_APP_STR = ":privapp"; Loading @@ -87,9 +88,10 @@ public final class SELinuxMMAC { FileReader policyFile = null; XmlPullParser parser = Xml.newPullParser(); for (int i = 0; i < MAC_PERMISSIONS.length; i++) { try { policyFile = new FileReader(MAC_PERMISSIONS); Slog.d(TAG, "Using policy file " + MAC_PERMISSIONS); policyFile = new FileReader(MAC_PERMISSIONS[i]); Slog.d(TAG, "Using policy file " + MAC_PERMISSIONS[i]); parser.setInput(policyFile); parser.nextTag(); Loading @@ -113,23 +115,24 @@ public final class SELinuxMMAC { StringBuilder sb = new StringBuilder("Exception @"); sb.append(parser.getPositionDescription()); sb.append(" while parsing "); sb.append(MAC_PERMISSIONS); sb.append(MAC_PERMISSIONS[i]); sb.append(":"); sb.append(ex); Slog.w(TAG, sb.toString()); return false; } catch (IOException ioe) { Slog.w(TAG, "Exception parsing " + MAC_PERMISSIONS, ioe); Slog.w(TAG, "Exception parsing " + MAC_PERMISSIONS[i], ioe); return false; } finally { IoUtils.closeQuietly(policyFile); } } // Now sort the policy stanzas PolicyComparator policySort = new PolicyComparator(); Collections.sort(policies, policySort); if (policySort.foundDuplicate()) { Slog.w(TAG, "ERROR! Duplicate entries found parsing " + MAC_PERMISSIONS); Slog.w(TAG, "ERROR! Duplicate entries found parsing mac_permissions.xml files"); return false; } Loading Loading
services/core/java/com/android/server/pm/SELinuxMMAC.java +40 −37 Original line number Diff line number Diff line Loading @@ -59,8 +59,9 @@ public final class SELinuxMMAC { private static List<Policy> sPolicies = new ArrayList<>(); /** Path to MAC permissions on system image */ private static final File MAC_PERMISSIONS = new File(Environment.getRootDirectory(), "/etc/security/mac_permissions.xml"); private static final File[] MAC_PERMISSIONS = { new File(Environment.getRootDirectory(), "/etc/security/plat_mac_permissions.xml"), new File(Environment.getRootDirectory(), "/etc/security/nonplat_mac_permissions.xml") }; // Append privapp to existing seinfo label private static final String PRIVILEGED_APP_STR = ":privapp"; Loading @@ -87,9 +88,10 @@ public final class SELinuxMMAC { FileReader policyFile = null; XmlPullParser parser = Xml.newPullParser(); for (int i = 0; i < MAC_PERMISSIONS.length; i++) { try { policyFile = new FileReader(MAC_PERMISSIONS); Slog.d(TAG, "Using policy file " + MAC_PERMISSIONS); policyFile = new FileReader(MAC_PERMISSIONS[i]); Slog.d(TAG, "Using policy file " + MAC_PERMISSIONS[i]); parser.setInput(policyFile); parser.nextTag(); Loading @@ -113,23 +115,24 @@ public final class SELinuxMMAC { StringBuilder sb = new StringBuilder("Exception @"); sb.append(parser.getPositionDescription()); sb.append(" while parsing "); sb.append(MAC_PERMISSIONS); sb.append(MAC_PERMISSIONS[i]); sb.append(":"); sb.append(ex); Slog.w(TAG, sb.toString()); return false; } catch (IOException ioe) { Slog.w(TAG, "Exception parsing " + MAC_PERMISSIONS, ioe); Slog.w(TAG, "Exception parsing " + MAC_PERMISSIONS[i], ioe); return false; } finally { IoUtils.closeQuietly(policyFile); } } // Now sort the policy stanzas PolicyComparator policySort = new PolicyComparator(); Collections.sort(policies, policySort); if (policySort.foundDuplicate()) { Slog.w(TAG, "ERROR! Duplicate entries found parsing " + MAC_PERMISSIONS); Slog.w(TAG, "ERROR! Duplicate entries found parsing mac_permissions.xml files"); return false; } Loading