diff options
| author | 2024-04-11 18:00:18 +0000 | |
|---|---|---|
| committer | 2024-04-11 18:00:18 +0000 | |
| commit | 829ab8b52c79385c1311e39a7e9d9adb9cf7132c (patch) | |
| tree | 2e7bc13ed73f717b4fa1b4b1ed4b925735ca7fb7 | |
| parent | f41a4d74c824df902a358bd2fe6975048963d7f6 (diff) | |
| parent | 21fad8d46c1fc105cb36610a5424008f2e6923f5 (diff) | |
Merge "Flag punch hole changes with build time flag" into main am: f647719c2c am: 21fad8d46c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3037684
Change-Id: I6095c33c3e8f9daf06e8a28b2bccc6b55652a33b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | core/jni/Android.bp | 4 | ||||
| -rw-r--r-- | core/jni/com_android_internal_content_NativeLibraryHelper.cpp | 10 |
2 files changed, 14 insertions, 0 deletions
diff --git a/core/jni/Android.bp b/core/jni/Android.bp index 1a5e3fea6f9c..773823d28d95 100644 --- a/core/jni/Android.bp +++ b/core/jni/Android.bp @@ -21,6 +21,7 @@ soong_config_module_type { config_namespace: "ANDROID", bool_variables: [ "release_binder_death_recipient_weak_from_jni", + "release_package_libandroid_runtime_punch_holes", ], properties: [ "cflags", @@ -63,6 +64,9 @@ cc_library_shared_for_libandroid_runtime { release_binder_death_recipient_weak_from_jni: { cflags: ["-DBINDER_DEATH_RECIPIENT_WEAK_FROM_JNI"], }, + release_package_libandroid_runtime_punch_holes: { + cflags: ["-DENABLE_PUNCH_HOLES"], + }, }, cpp_std: "gnu++20", diff --git a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp index 149e57a6f5e1..faa83f8017f7 100644 --- a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp +++ b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp @@ -36,6 +36,7 @@ #include <memory> +#include "com_android_internal_content_FileSystemUtils.h" #include "core_jni_helpers.h" #define RS_BITCODE_SUFFIX ".bc" @@ -169,6 +170,15 @@ copyFileIfChanged(JNIEnv *env, void* arg, ZipFileRO* zipFile, ZipEntryRO zipEntr return INSTALL_FAILED_INVALID_APK; } +#ifdef ENABLE_PUNCH_HOLES + // if library is uncompressed, punch hole in it in place + if (!punchHolesInElf64(zipFile->getZipFileName(), offset)) { + ALOGW("Failed to punch uncompressed elf file :%s inside apk : %s at offset: " + "%" PRIu64 "", + fileName, zipFile->getZipFileName(), offset); + } +#endif // ENABLE_PUNCH_HOLES + return INSTALL_SUCCEEDED; } |