内置带so的APK为系统APK方法

本文介绍了如何将内置带so的APK编译为系统APK,提供了两种方法:一种是通过修改Android.mk文件,另一种是解压so文件后再编译。文中提到第一种方法在实践中未成功,第二种方法虽然有效但较为繁琐。作者通过深入研究,最终提出了一种无需手动解压APK的解决方案,通过在Android.mk中添加特定代码,实现了自动解压Copy。文章还分享了一个完整的Android.mk示例,并提供了验证过的文件下载链接以解决可能出现的编译错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)若内置为可卸载的APK,可以无需解压出lib直接编译就可以

具体参考http://blog.youkuaiyun.com/a462533587/article/details/46380795

(2)若内置为system APP,上述blog也有两种方式:

方法一:

 

如下例,在Android.mk中添加并配置变量(注意路径对应):

LOCAL_PREBUILT_JNI_LIBS = \
@lib/armeabi-v7a/libcryptox.so \
@lib/armeabi-v7a/libfb.so 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

注意前面的 @符号,@标识符会将apk中的so抽离出来,拷贝到对应编译后的apk目录;

/build/core/install_jni_libs_internal.mk

 

78ifdef my_prebuilt_jni_libs
79# Files like @lib/<abi>/libfoo.so (path inside the apk) are JNI libs embedded prebuilt apk;
80# Files like path/to/libfoo.so (path relative to LOCAL_PATH) are prebuilts in the source tree.
81my_embedded_prebuilt_jni_libs := $(patsubst @%,%, \
82    $(filter @%, $(my_prebuilt_jni_libs)))

此处有对@lib的使用说明

 

方法二:解压出so

 

 

LOCAL_PREBUILT_JNI_LIBS = \
lib/armeabi-v7a/libcryptox.so \
lib/armeabi-v7a/libfb.so 
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Free飝Fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值