Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 499ecd35 authored by Iurii Makhno's avatar Iurii Makhno
Browse files

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
parent 10a0a4a6
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -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>({
        static const 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" },
            {"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);
      }
+2 −2
Original line number Diff line number Diff line
@@ -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
                      }
                    }