summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-03-04 22:15:15 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-03-04 22:15:15 +0000
commitd9f1ae881b559a8584f622b37cb46d6e8d6935fa (patch)
tree511ff8081fd064bc09a5063fdf68339785732a75
parent03ecc4f25380350916a167f501f74a9a0fa6b7ca (diff)
parentd2971742bb5ada4e07507ae7f7d62bb2865c636e (diff)
downloadapex-simpleperf-release.tar.gz
Snap for 11526323 from d2971742bb5ada4e07507ae7f7d62bb2865c636e to simpleperf-releasesimpleperf-release
Change-Id: Idf685549de92cfc138dc42d41bf67e0e54d55684
-rw-r--r--OWNERS5
-rw-r--r--apexd/apexd.h2
-rw-r--r--apexd/apexd_main.cpp8
-rw-r--r--apexd/apexd_test.cpp54
4 files changed, 35 insertions, 34 deletions
diff --git a/OWNERS b/OWNERS
index bc241c0b..8d64f863 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,6 +1,3 @@
# Bug component: 494373
-dariofreni@google.com
jiyong@google.com
-maco@google.com
-malchev@google.com
-narayan@google.com
+jooyung@google.com \ No newline at end of file
diff --git a/apexd/apexd.h b/apexd/apexd.h
index 592bf785..409b0e75 100644
--- a/apexd/apexd.h
+++ b/apexd/apexd.h
@@ -211,7 +211,7 @@ int OnStartInVmMode();
// Activates apexes in otapreot_chroot environment.
// If `also_include_staged_apexes` is true, it's for Pre-reboot Dexopt.
-int OnOtaChrootBootstrap(bool also_include_staged_apexes = false);
+int OnOtaChrootBootstrap(bool also_include_staged_apexes);
android::apex::MountedApexDatabase& GetApexDatabaseForTesting();
diff --git a/apexd/apexd_main.cpp b/apexd/apexd_main.cpp
index 4cbab752..c7d89194 100644
--- a/apexd/apexd_main.cpp
+++ b/apexd/apexd_main.cpp
@@ -22,6 +22,8 @@
#include <strings.h>
#include <sys/stat.h>
+#include <memory>
+
#include "apexd.h"
#include "apexd_checkpoint_vold.h"
#include "apexd_lifecycle.h"
@@ -41,8 +43,9 @@ int HandleSubcommand(int argc, char** argv) {
SetDefaultTag("apexd-unmount-all");
bool also_include_staged_apexes =
argc >= 3 && strcmp("--also-include-staged-apexes", argv[2]) == 0;
+ std::unique_ptr<android::apex::ApexSessionManager> session_manager;
if (also_include_staged_apexes) {
- auto session_manager = android::apex::ApexSessionManager::Create(
+ session_manager = android::apex::ApexSessionManager::Create(
android::apex::GetSessionsDir());
android::apex::InitializeSessionManager(session_manager.get());
}
@@ -53,8 +56,9 @@ int HandleSubcommand(int argc, char** argv) {
SetDefaultTag("apexd-otachroot");
bool also_include_staged_apexes =
argc >= 3 && strcmp("--also-include-staged-apexes", argv[2]) == 0;
+ std::unique_ptr<android::apex::ApexSessionManager> session_manager;
if (also_include_staged_apexes) {
- auto session_manager = android::apex::ApexSessionManager::Create(
+ session_manager = android::apex::ApexSessionManager::Create(
android::apex::GetSessionsDir());
android::apex::InitializeSessionManager(session_manager.get());
}
diff --git a/apexd/apexd_test.cpp b/apexd/apexd_test.cpp
index 3e01a129..fb388557 100644
--- a/apexd/apexd_test.cpp
+++ b/apexd/apexd_test.cpp
@@ -1933,7 +1933,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapOnlyPreInstalledApexes) {
std::string apex_path_2 =
AddPreInstalledApex("apex.apexd_test_different_app.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_1);
UnmountOnTearDown(apex_path_2);
@@ -1970,7 +1970,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapFailsToScanPreInstalledApexes) {
AddPreInstalledApex("apex.apexd_test.apex");
AddPreInstalledApex("apex.apexd_test_corrupt_superblock_apex.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 1);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 1);
}
TEST_F(ApexdMountTest, OnOtaChrootBootstrapDataHasHigherVersion) {
@@ -1979,7 +1979,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDataHasHigherVersion) {
AddPreInstalledApex("apex.apexd_test_different_app.apex");
std::string apex_path_3 = AddDataApex("apex.apexd_test_v2.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_2);
UnmountOnTearDown(apex_path_3);
@@ -2027,7 +2027,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDataHasSameVersion) {
AddPreInstalledApex("apex.apexd_test_different_app.apex");
std::string apex_path_3 = AddDataApex("apex.apexd_test.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_2);
UnmountOnTearDown(apex_path_3);
@@ -2075,7 +2075,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapSystemHasHigherVersion) {
AddPreInstalledApex("apex.apexd_test_different_app.apex");
AddDataApex("apex.apexd_test.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_1);
UnmountOnTearDown(apex_path_2);
@@ -2116,7 +2116,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDataHasSameVersionButDifferentKey) {
AddPreInstalledApex("apex.apexd_test_different_app.apex");
AddDataApex("apex.apexd_test_different_key.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_1);
UnmountOnTearDown(apex_path_2);
@@ -2165,7 +2165,7 @@ TEST_F(ApexdMountTest,
ASSERT_EQ(static_cast<uint64_t>(apex->GetManifest().version()), 2ULL);
}
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_1);
UnmountOnTearDown(apex_path_2);
@@ -2204,7 +2204,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDataApexWithoutPreInstalledApex) {
std::string apex_path_1 = AddPreInstalledApex("apex.apexd_test.apex");
AddDataApex("apex.apexd_test_different_app.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_1);
@@ -2235,7 +2235,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapPreInstalledSharedLibsApex) {
"com.android.apex.test.sharedlibs_generated.v1.libvX.apex");
std::string apex_path_3 = AddDataApex("apex.apexd_test_v2.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_2);
UnmountOnTearDown(apex_path_3);
@@ -2317,7 +2317,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapSharedLibsApexBothVersions) {
std::string apex_path_4 =
AddDataApex("com.android.apex.test.sharedlibs_generated.v2.libvY.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_2);
UnmountOnTearDown(apex_path_3);
@@ -2414,7 +2414,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapOnlyCompressedApexes) {
std::string apex_path =
AddPreInstalledApex("com.android.apex.compressed.v1.capex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// Decompressed APEX should be mounted from decompression_dir
std::string decompressed_apex =
@@ -2458,7 +2458,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDecompressOnlyOnceMultipleCalls) {
std::string apex_path =
AddPreInstalledApex("com.android.apex.compressed.v1.capex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// Decompressed OTA APEX should be mounted
std::string decompressed_ota_apex =
@@ -2475,7 +2475,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDecompressOnlyOnceMultipleCalls) {
// Call OnOtaChrootBootstrap again. Since we do not hardlink decompressed APEX
// to /data/apex/active directory when in chroot, when selecting apex for
// activation, we will end up selecting compressed APEX again.
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// Compare write time to ensure we did not decompress again
auto last_write_time_2 = fs::last_write_time(decompressed_ota_apex, ec);
@@ -2493,7 +2493,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapUpgradeCapex) {
std::string apex_path =
AddPreInstalledApex("com.android.apex.compressed.v2.capex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// Upgraded decompressed APEX should be mounted from decompression dir
std::string decompressed_active_apex =
@@ -2542,7 +2542,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapSamegradeCapex) {
StringPrintf("%s/different-name.capex", GetBuiltInDir().c_str());
fs::copy(GetTestFile("com.android.apex.compressed.v1.capex"), apex_path);
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// Previously decompressed APEX should be mounted from decompression_dir
std::string decompressed_active_apex = StringPrintf(
@@ -2591,7 +2591,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapSamegradeCapexDifferentDigest) {
// digest
auto apex_path = AddPreInstalledApex("com.android.apex.compressed.v1.capex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// New decompressed ota APEX should be mounted with kOtaApexPackageSuffix
std::string decompressed_ota_apex =
@@ -2656,7 +2656,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapSamegradeCapexDifferentKey) {
// Place a same version capex in current built_in_dir, which has different key
auto apex_path = AddPreInstalledApex("com.android.apex.compressed.v1.capex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// New decompressed APEX should be mounted from ota_reserved directory
std::string decompressed_active_apex =
@@ -2704,7 +2704,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapCapexToApex) {
std::string apex_path =
AddPreInstalledApex("com.android.apex.compressed.v1_original.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// New uncompressed APEX should be mounted
UnmountOnTearDown(apex_path);
@@ -2740,7 +2740,7 @@ TEST_F(ApexdMountTest,
std::string apex_path =
AddPreInstalledApex("com.android.apex.compressed.v1.capex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// Pre-installed CAPEX should be decompressed again and mounted from
// decompression_dir
@@ -2777,7 +2777,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDataHigherThanCapex) {
auto data_apex_path =
AddDataApex("com.android.apex.compressed.v2_original.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// Data APEX should be mounted
UnmountOnTearDown(data_apex_path);
@@ -2825,7 +2825,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDataLowerThanCapex) {
auto apex_path = AddPreInstalledApex("com.android.apex.compressed.v2.capex");
AddDataApex("com.android.apex.compressed.v1_original.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// Decompressed APEX should be mounted from reserved dir
std::string decompressed_active_apex =
@@ -2871,7 +2871,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDataSameAsCapex) {
auto data_apex_path =
AddDataApex("com.android.apex.compressed.v1_original.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// Data APEX should be mounted
UnmountOnTearDown(data_apex_path);
@@ -2919,7 +2919,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDataHasDifferentKeyThanCapex) {
// Place a same version capex in current built_in_dir, which has different key
auto apex_path = AddPreInstalledApex("com.android.apex.compressed.v1.capex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
// New decompressed APEX should be mounted from ota_reserved directory
std::string decompressed_active_apex =
@@ -3052,7 +3052,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapSelinuxLabelsAreCorrect) {
UnmountOnTearDown(apex_path_2);
UnmountOnTearDown(apex_path_3);
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
EXPECT_EQ(GetSelinuxContext("/apex/apex-info-list.xml"),
"u:object_r:apex_info_file:s0");
@@ -3072,7 +3072,7 @@ TEST_F(ApexdMountTest, OnOtaChrootBootstrapDmDevicesHaveCorrectName) {
AddPreInstalledApex("apex.apexd_test_different_app.apex");
std::string apex_path_3 = AddDataApex("apex.apexd_test_v2.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_2);
UnmountOnTearDown(apex_path_3);
@@ -3102,7 +3102,7 @@ TEST_F(ApexdMountTest,
std::string apex_path_2 =
AddPreInstalledApex("apex.apexd_test_different_app.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_2);
auto apex_mounts = GetApexMounts();
@@ -3141,7 +3141,7 @@ TEST_F(ApexdMountTest,
std::string apex_path_3 =
AddDataApex("apex.apexd_test_manifest_mismatch.apex");
- ASSERT_EQ(OnOtaChrootBootstrap(), 0);
+ ASSERT_EQ(OnOtaChrootBootstrap(/*also_include_staged_apexes=*/false), 0);
UnmountOnTearDown(apex_path_1);
UnmountOnTearDown(apex_path_2);