Fix achitectures and 'camera' component extraction in 'dump badging'.

Logic is synchronised with 'aapt':
 * use 'android.media.*' intents for 'camera' component detection;
 * use only 'lib/' under root to parse supported archs.

Bug: b/243145989
Test: Dump_test.cpp
Change-Id: I90fbe802a97a4382e3021b344d0c5e9708563389
This commit is contained in:
Iurii Makhno
2022-08-19 16:34:26 +00:00
parent 10a0a4a61b
commit 499ecd35d3
3 changed files with 10 additions and 10 deletions

View File

@@ -1981,10 +1981,11 @@ class Action : public ManifestExtractor::Element {
if (ElementCast<Activity>(parent_stack[1])) {
// Detects the presence of a particular type of activity.
Activity* activity = ElementCast<Activity>(parent_stack[1]);
auto map = std::map<std::string, std::string>({
{ "android.intent.action.MAIN" , "main" },
{ "android.intent.action.VIDEO_CAMERA" , "camera" },
{ "android.intent.action.STILL_IMAGE_CAMERA_SECURE" , "camera-secure" },
static const auto map = std::map<std::string, std::string>({
{"android.intent.action.MAIN", "main"},
{"android.media.action.VIDEO_CAMERA", "camera"},
{"android.media.action.STILL_IMAGE_CAMERA", "camera"},
{"android.media.action.STILL_IMAGE_CAMERA_SECURE", "camera-secure"},
});
auto entry = map.find(action);
@@ -2735,10 +2736,9 @@ bool ManifestExtractor::Extract(android::IDiagnostics* diag) {
auto it = apk_->GetFileCollection()->Iterator();
while (it->HasNext()) {
auto file_path = it->Next()->GetSource().path;
size_t pos = file_path.find("lib/");
if (pos != std::string::npos) {
file_path = file_path.substr(pos + 4);
pos = file_path.find('/');
if (file_path.starts_with("lib/")) {
file_path = file_path.substr(4);
size_t pos = file_path.find('/');
if (pos != std::string::npos) {
file_path = file_path.substr(0, pos);
}

View File

@@ -1677,7 +1677,7 @@ xml_files {
attribute {
namespace_uri: "http://schemas.android.com/apk/res/android"
name: "name"
value: "android.intent.action.VIDEO_CAMERA"
value: "android.media.action.VIDEO_CAMERA"
resource_id: 16842755
}
}
@@ -1691,7 +1691,7 @@ xml_files {
attribute {
namespace_uri: "http://schemas.android.com/apk/res/android"
name: "name"
value: "android.intent.action.STILL_IMAGE_CAMERA_SECURE"
value: "android.media.action.STILL_IMAGE_CAMERA_SECURE"
resource_id: 16842755
}
}