Fix check for required features
The required features check was in an null check for usesLibraries, so
it wasn't checking for required features when an application did not use
a library.
Bug: 3331713
Change-Id: I96d366ba00d4962b84f3796be97e2b622eb331a5
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index 7965dda..79ec920 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -2927,24 +2927,23 @@
System.arraycopy(mTmpSharedLibraries, 0,
pkg.usesLibraryFiles, 0, num);
}
+ }
- if (pkg.reqFeatures != null) {
- N = pkg.reqFeatures.size();
- for (int i=0; i<N; i++) {
- FeatureInfo fi = pkg.reqFeatures.get(i);
- if ((fi.flags&FeatureInfo.FLAG_REQUIRED) == 0) {
- // Don't care.
- continue;
- }
+ if (pkg.reqFeatures != null) {
+ int N = pkg.reqFeatures.size();
+ for (int i = 0; i < N; i++) {
+ FeatureInfo fi = pkg.reqFeatures.get(i);
+ if ((fi.flags & FeatureInfo.FLAG_REQUIRED) == 0) {
+ // Don't care.
+ continue;
+ }
- if (fi.name != null) {
- if (mAvailableFeatures.get(fi.name) == null) {
- Slog.e(TAG, "Package " + pkg.packageName
- + " requires unavailable feature "
- + fi.name + "; failing!");
- mLastScanError = PackageManager.INSTALL_FAILED_MISSING_FEATURE;
- return null;
- }
+ if (fi.name != null) {
+ if (mAvailableFeatures.get(fi.name) == null) {
+ Slog.e(TAG, "Package " + pkg.packageName
+ + " requires unavailable feature " + fi.name + "; failing!");
+ mLastScanError = PackageManager.INSTALL_FAILED_MISSING_FEATURE;
+ return null;
}
}
}