android 4.4.2 從vendor/etc/permissions讀取xml

diff --git a/frameworks/base/services/java/com/android/server/pm/PackageManagerService.java b/frameworks/base/services/java/com/android/server/pm/PackageManagerService.java
index cfeaede43..fcf02f041 100755
--- a/frameworks/base/services/java/com/android/server/pm/PackageManagerService.java
+++ b/frameworks/base/services/java/com/android/server/pm/PackageManagerService.java
@@ -1774,7 +1774,35 @@ public class PackageManagerService extends IPackageManager.Stub {
         }
         mSettings.removePackageLPw(ps.name);
     }
+	void readVendorPermissions() {
+		File libraryDir = new File("/vendor/", "etc/permissions");
+		if (!libraryDir.exists() || !libraryDir.isDirectory()) {
+			Slog.w(TAG, "No directory " + libraryDir + ", skipping");
+			return;
+		}
+		if (!libraryDir.canRead()) {
+			Slog.w(TAG, "Directory " + libraryDir + " cannot be read");
+			return;
+		}
 
+		// Iterate over the files in the directory and scan .xml files
+		for (File f : libraryDir.listFiles()) {
+			// We'll read platform.xml last
+			if (f.getPath().endsWith("etc/permissions/platform.xml")) {
+				continue;
+			}
+
+			if (!f.getPath().endsWith(".xml")) {
+				Slog.i(TAG, "Non-xml file " + f + " in " + libraryDir + " directory, ignoring");
+				continue;
+			}
+			if (!f.canRead()) {
+				Slog.w(TAG, "Permissions library file " + f + " cannot be read");
+				continue;
+			}
+			readPermissionsFromXml(f);
+		}
+	}
     void readPermissions() {
         // Read permissions from .../etc/permission directory.
         File libraryDir = new File(Environment.getRootDirectory(), "etc/permissions");
@@ -1805,7 +1833,7 @@ public class PackageManagerService extends IPackageManager.Stub {
 
             readPermissionsFromXml(f);
         }
-
+	 readVendorPermissions();
         // Read permissions from .../etc/permissions/platform.xml last so it will take precedence
         final File permFile = new File(Environment.getRootDirectory(),
                 "etc/permissions/platform.xml");

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章