android 内置apk 运行错误,android2.3,预置第三方apk启动出错

[Description]:

apk放置路径:alps\vendor\...\system\app\下,

apk解压缩中的lib文件放置路径:alps\vendor\...\system\lib下

apk启动报错。

但是将apk直接放在alps\out\...\system\app下,或者直接手动安装到手机系统中就没有此问题。

根据log看是无效签名的原因,请问是否在编译copy到out目录下的过程中修改了apk包签名导致?该如何解决?

[solution]

直接放置在vendor/.../system/app/下会导致应用被重签名为系统签名。下面给出一种方案:

如何将无源码的 APK 预置进系统?

1) 在 packages/apps 下面以需要预置的 APK 名字创建文件夹,以预制一个名为Test的APK为例

2) 将 Test.apk 放到 packages/apps/Test 下面

3) 在 packages/apps/Test 下面创建文件 Android.mk,文件内容如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Module name should match apk name to be installed

LOCAL_MODULE := Test

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk

LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

LOCAL_CERTIFICATE := PRESIGNED

include $(BUILD_PREBUILT)

4) 打开文件 build/target/product/${Project}.mk (其中 ${Project}

表示工程名)

将 Test 添加到 PRODUCT_PACKAGES 里面。

5) 将从Test.apk解压出来的

so库拷贝到alps/vendor/mediatek/${Project}/artifacts/out/target/product/${Project}/system/lib/目录下,若无

so 库,则去掉此步;

6) 重新 build 整个工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值