AAPT: Don't imply specific location hardware for dump badging

am: 43158773b4

Change-Id: Ie34566a33dfbaf92f4a47f36be6786157d504066
This commit is contained in:
Adam Lesinski
2016-09-22 04:55:13 +00:00
committed by android-build-merger

View File

@@ -540,7 +540,7 @@ static bool hasFeature(const char* name, const FeatureGroup& grp,
} }
static void addImpliedFeature(KeyedVector<String8, ImpliedFeature>* impliedFeatures, static void addImpliedFeature(KeyedVector<String8, ImpliedFeature>* impliedFeatures,
const char* name, const char* reason, bool sdk23) { const char* name, const String8& reason, bool sdk23) {
String8 name8(name); String8 name8(name);
ssize_t idx = impliedFeatures->indexOfKey(name8); ssize_t idx = impliedFeatures->indexOfKey(name8);
if (idx < 0) { if (idx < 0) {
@@ -553,7 +553,7 @@ static void addImpliedFeature(KeyedVector<String8, ImpliedFeature>* impliedFeatu
if (feature->impliedBySdk23 && !sdk23) { if (feature->impliedBySdk23 && !sdk23) {
feature->impliedBySdk23 = false; feature->impliedBySdk23 = false;
} }
feature->reasons.add(String8(reason)); feature->reasons.add(reason);
} }
static void printFeatureGroupImpl(const FeatureGroup& grp, static void printFeatureGroupImpl(const FeatureGroup& grp,
@@ -651,50 +651,58 @@ static void addImpliedFeaturesForPermission(const int targetSdk, const String8&
bool impliedBySdk23Permission) { bool impliedBySdk23Permission) {
if (name == "android.permission.CAMERA") { if (name == "android.permission.CAMERA") {
addImpliedFeature(impliedFeatures, "android.hardware.camera", addImpliedFeature(impliedFeatures, "android.hardware.camera",
String8::format("requested %s permission", name.string()) String8::format("requested %s permission", name.string()),
.string(), impliedBySdk23Permission); impliedBySdk23Permission);
} else if (name == "android.permission.ACCESS_FINE_LOCATION") { } else if (name == "android.permission.ACCESS_FINE_LOCATION") {
addImpliedFeature(impliedFeatures, "android.hardware.location.gps", if (targetSdk < SDK_LOLLIPOP) {
String8::format("requested %s permission", name.string()) addImpliedFeature(impliedFeatures, "android.hardware.location.gps",
.string(), impliedBySdk23Permission); String8::format("requested %s permission", name.string()),
impliedBySdk23Permission);
addImpliedFeature(impliedFeatures, "android.hardware.location.gps",
String8::format("targetSdkVersion < %d", SDK_LOLLIPOP),
impliedBySdk23Permission);
}
addImpliedFeature(impliedFeatures, "android.hardware.location", addImpliedFeature(impliedFeatures, "android.hardware.location",
String8::format("requested %s permission", name.string()) String8::format("requested %s permission", name.string()),
.string(), impliedBySdk23Permission); impliedBySdk23Permission);
} else if (name == "android.permission.ACCESS_MOCK_LOCATION") {
addImpliedFeature(impliedFeatures, "android.hardware.location",
String8::format("requested %s permission", name.string())
.string(), impliedBySdk23Permission);
} else if (name == "android.permission.ACCESS_COARSE_LOCATION") { } else if (name == "android.permission.ACCESS_COARSE_LOCATION") {
addImpliedFeature(impliedFeatures, "android.hardware.location.network", if (targetSdk < SDK_LOLLIPOP) {
String8::format("requested %s permission", name.string()) addImpliedFeature(impliedFeatures, "android.hardware.location.network",
.string(), impliedBySdk23Permission); String8::format("requested %s permission", name.string()),
impliedBySdk23Permission);
addImpliedFeature(impliedFeatures, "android.hardware.location.network",
String8::format("targetSdkVersion < %d", SDK_LOLLIPOP),
impliedBySdk23Permission);
}
addImpliedFeature(impliedFeatures, "android.hardware.location", addImpliedFeature(impliedFeatures, "android.hardware.location",
String8::format("requested %s permission", name.string()) String8::format("requested %s permission", name.string()),
.string(), impliedBySdk23Permission); impliedBySdk23Permission);
} else if (name == "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" || } else if (name == "android.permission.ACCESS_MOCK_LOCATION" ||
name == "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" ||
name == "android.permission.INSTALL_LOCATION_PROVIDER") { name == "android.permission.INSTALL_LOCATION_PROVIDER") {
addImpliedFeature(impliedFeatures, "android.hardware.location", addImpliedFeature(impliedFeatures, "android.hardware.location",
String8::format("requested %s permission", name.string()) String8::format("requested %s permission", name.string()),
.string(), impliedBySdk23Permission); impliedBySdk23Permission);
} else if (name == "android.permission.BLUETOOTH" || } else if (name == "android.permission.BLUETOOTH" ||
name == "android.permission.BLUETOOTH_ADMIN") { name == "android.permission.BLUETOOTH_ADMIN") {
if (targetSdk > 4) { if (targetSdk > SDK_DONUT) {
addImpliedFeature(impliedFeatures, "android.hardware.bluetooth", addImpliedFeature(impliedFeatures, "android.hardware.bluetooth",
String8::format("requested %s permission", name.string()) String8::format("requested %s permission", name.string()),
.string(), impliedBySdk23Permission); impliedBySdk23Permission);
addImpliedFeature(impliedFeatures, "android.hardware.bluetooth", addImpliedFeature(impliedFeatures, "android.hardware.bluetooth",
"targetSdkVersion > 4", impliedBySdk23Permission); String8::format("targetSdkVersion > %d", SDK_DONUT),
impliedBySdk23Permission);
} }
} else if (name == "android.permission.RECORD_AUDIO") { } else if (name == "android.permission.RECORD_AUDIO") {
addImpliedFeature(impliedFeatures, "android.hardware.microphone", addImpliedFeature(impliedFeatures, "android.hardware.microphone",
String8::format("requested %s permission", name.string()) String8::format("requested %s permission", name.string()),
.string(), impliedBySdk23Permission); impliedBySdk23Permission);
} else if (name == "android.permission.ACCESS_WIFI_STATE" || } else if (name == "android.permission.ACCESS_WIFI_STATE" ||
name == "android.permission.CHANGE_WIFI_STATE" || name == "android.permission.CHANGE_WIFI_STATE" ||
name == "android.permission.CHANGE_WIFI_MULTICAST_STATE") { name == "android.permission.CHANGE_WIFI_MULTICAST_STATE") {
addImpliedFeature(impliedFeatures, "android.hardware.wifi", addImpliedFeature(impliedFeatures, "android.hardware.wifi",
String8::format("requested %s permission", name.string()) String8::format("requested %s permission", name.string()),
.string(), impliedBySdk23Permission); impliedBySdk23Permission);
} else if (name == "android.permission.CALL_PHONE" || } else if (name == "android.permission.CALL_PHONE" ||
name == "android.permission.CALL_PRIVILEGED" || name == "android.permission.CALL_PRIVILEGED" ||
name == "android.permission.MODIFY_PHONE_STATE" || name == "android.permission.MODIFY_PHONE_STATE" ||
@@ -707,8 +715,8 @@ static void addImpliedFeaturesForPermission(const int targetSdk, const String8&
name == "android.permission.WRITE_APN_SETTINGS" || name == "android.permission.WRITE_APN_SETTINGS" ||
name == "android.permission.WRITE_SMS") { name == "android.permission.WRITE_SMS") {
addImpliedFeature(impliedFeatures, "android.hardware.telephony", addImpliedFeature(impliedFeatures, "android.hardware.telephony",
String8("requested a telephony permission").string(), String8("requested a telephony permission"),
impliedBySdk23Permission); impliedBySdk23Permission);
} }
} }
@@ -1659,18 +1667,18 @@ int doDump(Bundle* bundle)
if (error == "") { if (error == "") {
if (orien == 0 || orien == 6 || orien == 8) { if (orien == 0 || orien == 6 || orien == 8) {
// Requests landscape, sensorLandscape, or reverseLandscape. // Requests landscape, sensorLandscape, or reverseLandscape.
addImpliedFeature(&impliedFeatures, addImpliedFeature(
"android.hardware.screen.landscape", &impliedFeatures, "android.hardware.screen.landscape",
"one or more activities have specified a " String8("one or more activities have specified a "
"landscape orientation", "landscape orientation"),
false); false);
} else if (orien == 1 || orien == 7 || orien == 9) { } else if (orien == 1 || orien == 7 || orien == 9) {
// Requests portrait, sensorPortrait, or reversePortrait. // Requests portrait, sensorPortrait, or reversePortrait.
addImpliedFeature(&impliedFeatures, addImpliedFeature(
"android.hardware.screen.portrait", &impliedFeatures, "android.hardware.screen.portrait",
"one or more activities have specified a " String8("one or more activities have specified a "
"portrait orientation", "portrait orientation"),
false); false);
} }
} }
} else if (tag == "uses-library") { } else if (tag == "uses-library") {
@@ -2026,7 +2034,7 @@ int doDump(Bundle* bundle)
// directly or implied, required or not), then the faketouch feature is implied. // directly or implied, required or not), then the faketouch feature is implied.
if (!hasFeature("android.hardware.touchscreen", commonFeatures, impliedFeatures)) { if (!hasFeature("android.hardware.touchscreen", commonFeatures, impliedFeatures)) {
addImpliedFeature(&impliedFeatures, "android.hardware.faketouch", addImpliedFeature(&impliedFeatures, "android.hardware.faketouch",
"default feature for all apps", false); String8("default feature for all apps"), false);
} }
const size_t numFeatureGroups = featureGroups.size(); const size_t numFeatureGroups = featureGroups.size();