Whitelist the staging directory in installd
Make the path /data/pkg_staging a valid path for APK and APEX files, inorder to allow the deletion of APEX files after their corresponding sessions reach a final state. Bug: 123624108 Test: manual - trigger APEX deletion from the mentioned directory Change-Id: I9bf03c924080e8c75a6c0e9d163460d365061487
This commit is contained in:
parent
cf867594cf
commit
b43faa9d8f
3 changed files with 9 additions and 0 deletions
|
@ -44,6 +44,8 @@ static constexpr const char* PROFILES_SUBDIR = "misc/profiles"; // sub-directory
|
|||
static constexpr const char* PRIVATE_APP_SUBDIR = "app-private/"; // sub-directory under
|
||||
// ANDROID_DATA
|
||||
|
||||
static constexpr const char* STAGING_SUBDIR = "pkg_staging/"; // sub-directory under ANDROID_DATA
|
||||
|
||||
std::string android_app_dir;
|
||||
std::string android_app_ephemeral_dir;
|
||||
std::string android_app_lib_dir;
|
||||
|
@ -54,6 +56,7 @@ std::string android_media_dir;
|
|||
std::string android_mnt_expand_dir;
|
||||
std::string android_profiles_dir;
|
||||
std::string android_root_dir;
|
||||
std::string android_staging_dir;
|
||||
|
||||
std::vector<std::string> android_system_dirs;
|
||||
|
||||
|
@ -110,6 +113,9 @@ bool init_globals_from_data_and_root(const char* data, const char* root) {
|
|||
// Get the android profiles directory.
|
||||
android_profiles_dir = android_data_dir + PROFILES_SUBDIR;
|
||||
|
||||
// Get the android session staging directory.
|
||||
android_staging_dir = android_data_dir + STAGING_SUBDIR;
|
||||
|
||||
// Take note of the system and vendor directories.
|
||||
android_system_dirs.clear();
|
||||
android_system_dirs.push_back(android_root_dir + APP_SUBDIR);
|
||||
|
|
|
@ -38,6 +38,7 @@ extern std::string android_media_dir;
|
|||
extern std::string android_mnt_expand_dir;
|
||||
extern std::string android_profiles_dir;
|
||||
extern std::string android_root_dir;
|
||||
extern std::string android_staging_dir;
|
||||
|
||||
extern std::vector<std::string> android_system_dirs;
|
||||
|
||||
|
|
|
@ -892,6 +892,8 @@ bool validate_secondary_dex_path(const std::string& pkgname, const std::string&
|
|||
static int validate_apk_path_internal(const std::string& path, int maxSubdirs) {
|
||||
if (validate_path(android_app_dir, path, maxSubdirs) == 0) {
|
||||
return 0;
|
||||
} else if (validate_path(android_staging_dir, path, maxSubdirs) == 0) {
|
||||
return 0;
|
||||
} else if (validate_path(android_app_private_dir, path, maxSubdirs) == 0) {
|
||||
return 0;
|
||||
} else if (validate_path(android_app_ephemeral_dir, path, maxSubdirs) == 0) {
|
||||
|
|
Loading…
Reference in a new issue