diff options
Diffstat (limited to 'core/java')
3 files changed, 9 insertions, 5 deletions
diff --git a/core/java/android/os/incremental/IIncrementalService.aidl b/core/java/android/os/incremental/IIncrementalService.aidl index 4c5757098025..220ce22ded5c 100644 --- a/core/java/android/os/incremental/IIncrementalService.aidl +++ b/core/java/android/os/incremental/IIncrementalService.aidl @@ -111,9 +111,9 @@ interface IIncrementalService { void deleteStorage(int storageId); /** - * Setting up native library directories and extract native libs onto a storage. + * Setting up native library directories and extract native libs onto a storage if needed. */ - boolean configureNativeBinaries(int storageId, in @utf8InCpp String apkFullPath, in @utf8InCpp String libDirRelativePath, in @utf8InCpp String abi); + boolean configureNativeBinaries(int storageId, in @utf8InCpp String apkFullPath, in @utf8InCpp String libDirRelativePath, in @utf8InCpp String abi, boolean extractNativeLibs); /** * Waits until all native library extraction is done for the storage diff --git a/core/java/android/os/incremental/IncrementalStorage.java b/core/java/android/os/incremental/IncrementalStorage.java index 70ebbaa326b8..6200a38fe13c 100644 --- a/core/java/android/os/incremental/IncrementalStorage.java +++ b/core/java/android/os/incremental/IncrementalStorage.java @@ -469,12 +469,15 @@ public final class IncrementalStorage { * @param apkFullPath Source APK to extract native libs from. * @param libDirRelativePath Target dir to put lib files, e.g., "lib" or "lib/arm". * @param abi Target ABI of the native lib files. Only extract native libs of this ABI. + * @param extractNativeLibs If true, extract native libraries; otherwise just setup directories + * without extracting. * @return Success of not. */ public boolean configureNativeBinaries(String apkFullPath, String libDirRelativePath, - String abi) { + String abi, boolean extractNativeLibs) { try { - return mService.configureNativeBinaries(mId, apkFullPath, libDirRelativePath, abi); + return mService.configureNativeBinaries(mId, apkFullPath, libDirRelativePath, abi, + extractNativeLibs); } catch (RemoteException e) { e.rethrowFromSystemServer(); return false; diff --git a/core/java/com/android/internal/content/NativeLibraryHelper.java b/core/java/com/android/internal/content/NativeLibraryHelper.java index 02cf25a7c3d2..476198b5311a 100644 --- a/core/java/com/android/internal/content/NativeLibraryHelper.java +++ b/core/java/com/android/internal/content/NativeLibraryHelper.java @@ -506,7 +506,8 @@ public class NativeLibraryHelper { } for (int i = 0; i < apkPaths.length; i++) { - if (!incrementalStorage.configureNativeBinaries(apkPaths[i], libRelativeDir, abi)) { + if (!incrementalStorage.configureNativeBinaries(apkPaths[i], libRelativeDir, abi, + handle.extractNativeLibs)) { return PackageManager.INSTALL_FAILED_INTERNAL_ERROR; } } |
