Index: build/android/gyp/apkbuilder.py |
diff --git a/build/android/gyp/apkbuilder.py b/build/android/gyp/apkbuilder.py |
index 82ac496ed970039ed34bd51af0e06c64b88d91f4..162477c186dfeb342dbf0289d03693fc0fbd0345 100755 |
--- a/build/android/gyp/apkbuilder.py |
+++ b/build/android/gyp/apkbuilder.py |
@@ -161,14 +161,20 @@ def _CreateAssetsList(path_tuples): |
def _AddNativeLibraries(out_apk, native_libs, android_abi, uncompress): |
"""Add native libraries to APK.""" |
+ has_crazy_linker = any('android_linker' in os.path.basename(p) |
+ for p in native_libs) |
for path in native_libs: |
basename = os.path.basename(path) |
- apk_path = 'lib/%s/%s' % (android_abi, basename) |
compress = None |
- if (uncompress and os.path.splitext(basename)[1] == '.so'): |
+ if (uncompress and os.path.splitext(basename)[1] == '.so' |
+ and 'android_linker' not in basename): |
compress = False |
+ # Add prefix to prevent android install from extracting upon install. |
+ if has_crazy_linker: |
+ basename = 'crazy.' + basename |
+ apk_path = 'lib/%s/%s' % (android_abi, basename) |
build_utils.AddToZipHermetic(out_apk, |
apk_path, |
src_path=path, |
@@ -265,8 +271,9 @@ def main(args): |
options.uncompress_shared_libraries) |
for name in sorted(options.native_lib_placeholders): |
- # Empty libs files are ignored by md5check, but rezip requires them |
- # to be empty in order to identify them as placeholders. |
+ # Note: Empty libs files are ignored by md5check (can cause issues |
+ # with stale builds when the only change is adding/removing |
+ # placeholders). |
apk_path = 'lib/%s/%s' % (options.android_abi, name) |
build_utils.AddToZipHermetic(out_apk, apk_path, data='') |