diff options
| author | 2020-02-05 12:02:22 -0800 | |
|---|---|---|
| committer | 2020-02-05 15:38:49 -0800 | |
| commit | aed3337f29a7e1ef2beead2a403ad97a4f8a16f2 (patch) | |
| tree | e2d6f3d317403c4a567614dcf0cf63ba552498fe | |
| parent | c4173b5fac778586a7696d3df606590909b38432 (diff) | |
Passing code path to installd moveCompleteApps
With 2-level code dirs installd can no longer guess app code path.
(Will cherry-pick into aosp after merging into master)
BUG: b/148844589 b/148237378
Test: atest AdoptableHostTest
Change-Id: Ifa60ada4688eaafea452847b9a5177ca821b3224
| -rw-r--r-- | cmds/installd/InstalldNativeService.cpp | 7 | ||||
| -rw-r--r-- | cmds/installd/InstalldNativeService.h | 2 | ||||
| -rw-r--r-- | cmds/installd/binder/android/os/IInstalld.aidl | 2 |
3 files changed, 5 insertions, 6 deletions
diff --git a/cmds/installd/InstalldNativeService.cpp b/cmds/installd/InstalldNativeService.cpp index cfd6a3eb9f..08d4657a48 100644 --- a/cmds/installd/InstalldNativeService.cpp +++ b/cmds/installd/InstalldNativeService.cpp @@ -1102,7 +1102,7 @@ binder::Status InstalldNativeService::destroyAppDataSnapshot( binder::Status InstalldNativeService::moveCompleteApp(const std::unique_ptr<std::string>& fromUuid, const std::unique_ptr<std::string>& toUuid, const std::string& packageName, const std::string& dataAppName, int32_t appId, const std::string& seInfo, - int32_t targetSdkVersion) { + int32_t targetSdkVersion, const std::string& fromCodePath) { ENFORCE_UID(AID_SYSTEM); CHECK_ARGUMENT_UUID(fromUuid); CHECK_ARGUMENT_UUID(toUuid); @@ -1119,13 +1119,12 @@ binder::Status InstalldNativeService::moveCompleteApp(const std::unique_ptr<std: // Copy app { - auto from = create_data_app_package_path(from_uuid, data_app_name); auto to = create_data_app_package_path(to_uuid, data_app_name); auto to_parent = create_data_app_path(to_uuid); - int rc = copy_directory_recursive(from.c_str(), to_parent.c_str()); + int rc = copy_directory_recursive(fromCodePath.c_str(), to_parent.c_str()); if (rc != 0) { - res = error(rc, "Failed copying " + from + " to " + to); + res = error(rc, "Failed copying " + fromCodePath + " to " + to); goto fail; } diff --git a/cmds/installd/InstalldNativeService.h b/cmds/installd/InstalldNativeService.h index dd56de6a81..eb35fd3126 100644 --- a/cmds/installd/InstalldNativeService.h +++ b/cmds/installd/InstalldNativeService.h @@ -97,7 +97,7 @@ public: binder::Status moveCompleteApp(const std::unique_ptr<std::string>& fromUuid, const std::unique_ptr<std::string>& toUuid, const std::string& packageName, const std::string& dataAppName, int32_t appId, const std::string& seInfo, - int32_t targetSdkVersion); + int32_t targetSdkVersion, const std::string& fromCodePath); binder::Status dexopt(const std::string& apkPath, int32_t uid, const std::unique_ptr<std::string>& packageName, const std::string& instructionSet, diff --git a/cmds/installd/binder/android/os/IInstalld.aidl b/cmds/installd/binder/android/os/IInstalld.aidl index 07ced0d013..80d97038b4 100644 --- a/cmds/installd/binder/android/os/IInstalld.aidl +++ b/cmds/installd/binder/android/os/IInstalld.aidl @@ -52,7 +52,7 @@ interface IInstalld { void moveCompleteApp(@nullable @utf8InCpp String fromUuid, @nullable @utf8InCpp String toUuid, @utf8InCpp String packageName, @utf8InCpp String dataAppName, int appId, - @utf8InCpp String seInfo, int targetSdkVersion); + @utf8InCpp String seInfo, int targetSdkVersion, @utf8InCpp String fromCodePath); void dexopt(@utf8InCpp String apkPath, int uid, @nullable @utf8InCpp String packageName, @utf8InCpp String instructionSet, int dexoptNeeded, |