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

Commit f43f467d authored by Jeremy Meyer's avatar Jeremy Meyer Committed by Android (Google) Code Review
Browse files

Merge "Keep disabled resources out of final apk" into main

parents 542ba234 423c0f55
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -68,11 +68,6 @@ public class ResourceFlaggingTest {
        assertThat(getBoolean("res3")).isTrue();
    }

    @Test
    public void testFlagDisabledNoValue() {
        assertThat(getString("str1")).isEqualTo("");
    }

    private boolean getBoolean(String name) {
        int resId = mResources.getIdentifier(
                name,
+2 −0
Original line number Diff line number Diff line
@@ -113,6 +113,7 @@ cc_library_host_static {
        "io/ZipArchive.cpp",
        "link/AutoVersioner.cpp",
        "link/FeatureFlagsFilter.cpp",
        "link/FlagDisabledResourceRemover.cpp",
        "link/ManifestFixer.cpp",
        "link/NoDefaultResourceRemover.cpp",
        "link/PrivateAttributeMover.cpp",
@@ -190,6 +191,7 @@ cc_test_host {
        "integration-tests/ConvertTest/**/*",
        "integration-tests/DumpTest/**/*",
        ":resource-flagging-test-app-apk",
        ":resource-flagging-test-app-r-java",
    ],
}

+13 −6
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@
#include "java/ManifestClassGenerator.h"
#include "java/ProguardRules.h"
#include "link/FeatureFlagsFilter.h"
#include "link/FlagDisabledResourceRemover.h"
#include "link/Linkers.h"
#include "link/ManifestFixer.h"
#include "link/NoDefaultResourceRemover.h"
@@ -1885,6 +1886,12 @@ class Linker {
      }
    }

    if (!FlagDisabledResourceRemover{}.Consume(context_, table)) {
      context_->GetDiagnostics()->Error(android::DiagMessage()
                                        << "failed removing resources behind disabled flags");
      return 1;
    }

    const bool keep_raw_values = (context_->GetPackageType() == PackageType::kStaticLib)
                                 || options_.keep_raw_values;
    bool result = FlattenXml(context_, *manifest, kAndroidManifestPath, keep_raw_values,
@@ -2371,19 +2378,19 @@ class Linker {
      return 1;
    };

    if (!WriteApk(archive_writer.get(), &proguard_keep_set, manifest_xml.get(), &final_table_)) {
    if (options_.generate_java_class_path || options_.generate_text_symbols_path) {
      if (!GenerateJavaClasses()) {
        return 1;
      }
    }

    if (!CopyAssetsDirsToApk(archive_writer.get())) {
    if (!WriteApk(archive_writer.get(), &proguard_keep_set, manifest_xml.get(), &final_table_)) {
      return 1;
    }

    if (options_.generate_java_class_path || options_.generate_text_symbols_path) {
      if (!GenerateJavaClasses()) {
    if (!CopyAssetsDirsToApk(archive_writer.get())) {
      return 1;
    }
    }

    if (!WriteProguardFile(options_.generate_proguard_rules_path, proguard_keep_set)) {
      return 1;
+17 −1
Original line number Diff line number Diff line
@@ -47,10 +47,26 @@ genrule {
        "AndroidManifest.xml",
        ":resource-flagging-test-app-compile",
    ],
    out: ["resapp.apk"],
    out: [
        "resapp.apk",
    ],
    cmd: "$(location aapt2) link -o $(out) --manifest $(in)",
}

genrule {
    name: "resource-flagging-test-app-r-java",
    tools: ["aapt2"],
    // The first input file in the list must be the manifest
    srcs: [
        "AndroidManifest.xml",
        ":resource-flagging-test-app-compile",
    ],
    out: [
        "resource-flagging-java/com/android/intenal/flaggedresources/R.java",
    ],
    cmd: "$(location aapt2) link -o $(genDir)/resapp.apk --java $(genDir)/resource-flagging-java --manifest $(in)",
}

java_genrule {
    name: "resource-flagging-test-app-apk-as-resource",
    srcs: [
+2 −0
Original line number Diff line number Diff line
@@ -7,4 +7,6 @@
    <bool name="res2" android:featureFlag="test.package.trueFlag">true</bool>

    <bool name="res3">false</bool>

    <bool name="res4" android:featureFlag="test.package.falseFlag">true</bool>
</resources>
 No newline at end of file
Loading