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

Commit cf584f71 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6441286 from 014b5e78 to mainline-release

Change-Id: I7d17005e20e06ea6b6f497952d8fab33c45e1bcc
parents e349722e 014b5e78
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -722,7 +722,6 @@ filegroup {
        "core/java/com/android/internal/util/IndentingPrintWriter.java",
        "core/java/com/android/internal/util/IState.java",
        "core/java/com/android/internal/util/MessageUtils.java",
        "core/java/com/android/internal/util/Preconditions.java",
        "core/java/com/android/internal/util/State.java",
        "core/java/com/android/internal/util/StateMachine.java",
        "core/java/com/android/internal/util/TrafficStatsConstants.java",
+3 −2
Original line number Diff line number Diff line
@@ -65,8 +65,9 @@ stubs_defaults {
        "test-base/src/**/*.java",
        ":opt-telephony-srcs",
        ":opt-net-voip-srcs",
        ":core-current-stubs-source",
        ":core_public_api_files",
        ":art-module-public-api-stubs-source",
        ":conscrypt.module.public.api.stubs.source",
        ":android_icu4j_public_api_files",
        "test-mock/src/**/*.java",
        "test-runner/src/**/*.java",
    ],
+3 −2
Original line number Diff line number Diff line
@@ -47,8 +47,9 @@ stubs_defaults {
        "core/java/**/*.logtags",
        ":opt-telephony-srcs",
        ":opt-net-voip-srcs",
        ":core-current-stubs-source",
        ":core_public_api_files",
        ":art-module-public-api-stubs-source",
        ":conscrypt.module.public.api.stubs.source",
        ":android_icu4j_public_api_files",
    ],
    // TODO(b/147699819): remove below aidl includes.
    aidl: {
+1 −0
Original line number Diff line number Diff line
@@ -3691,6 +3691,7 @@ package android.telecom {
  }

  public class TelecomManager {
    method @NonNull public android.content.Intent createLaunchEmergencyDialerIntent(@Nullable String);
    method @NonNull @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean);
    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode();
    method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDefaultDialerPackage(@NonNull android.os.UserHandle);
+30 −2
Original line number Diff line number Diff line
@@ -34,11 +34,13 @@
#include "idmap2/FileUtils.h"
#include "idmap2/Idmap.h"
#include "idmap2/SysTrace.h"
#include "idmap2/ZipFile.h"
#include "utils/String8.h"

using android::IPCThreadState;
using android::binder::Status;
using android::idmap2::BinaryStreamVisitor;
using android::idmap2::GetPackageCrc;
using android::idmap2::Idmap;
using android::idmap2::IdmapHeader;
using android::idmap2::utils::kIdmapCacheDir;
@@ -49,6 +51,8 @@ using PolicyBitmask = android::ResTable_overlayable_policy_header::PolicyBitmask

namespace {

constexpr const char* kFrameworkPath = "/system/framework/framework-res.apk";

Status ok() {
  return Status::ok();
}
@@ -109,8 +113,32 @@ Status Idmap2Service::verifyIdmap(const std::string& target_apk_path,
    return error("failed to parse idmap header");
  }

  *_aidl_return =
      strcmp(header->GetTargetPath().data(), target_apk_path.data()) == 0 && header->IsUpToDate();
  if (strcmp(header->GetTargetPath().data(), target_apk_path.data()) != 0) {
    *_aidl_return = false;
    return ok();
  }

  if (target_apk_path != kFrameworkPath) {
    *_aidl_return = (bool) header->IsUpToDate();
  } else {
    if (!android_crc_) {
      // Loading the framework zip can take several milliseconds. Cache the crc of the framework
      // resource APK to reduce repeated work during boot.
      const auto target_zip = idmap2::ZipFile::Open(target_apk_path);
      if (!target_zip) {
        return error(base::StringPrintf("failed to open target %s", target_apk_path.c_str()));
      }

      const auto target_crc = GetPackageCrc(*target_zip);
      if (!target_crc) {
        return error(target_crc.GetErrorMessage());
      }

      android_crc_ = *target_crc;
    }

    *_aidl_return = (bool) header->IsUpToDate(android_crc_.value());
  }

  // TODO(b/119328308): Check that the set of fulfilled policies of the overlay has not changed
  return ok();
Loading