platform PRESIGNED Android 系统如何内置已经编译好的APK

转载:https://www.3566t.com/news/mtnn/1592158.htmlhttps://www.3566t.com/news/mtnn/1592158.html

核心提示:由于项目需求,需要将百度输入法内置到MTK平台手机中,因此看到这一块,本人很菜,如有错误,希望各位大神帮助改正。非常感谢。1.预装apk的目录可以选择如下两个目录...

由于项目需求,需要将百度输入法内置到MTK平台手机中,因此看到这一块,本人很菜,如有错误,希望各位大神帮助改正。非常感谢。

1.预装apk的目录可以选择如下两个目录:

Alps/mediatek/binary/3rd-party/free/ 或者Alps/operator/OP0x/prebuilt/

2.预装已经编译好的apk时,比如BaiduIput.apk,在Alps/mediatek/binary/3rd-party/free/ 或者 Alps/operator/OP0x/prebuilt/ 下面创建目录,命名为BaiduIput

3.将已经编译好的BaiduInput.apk拷贝到BaiduInput目录下面来。

4.在BaiduInput目录下面,新建Android.mk文件,内容如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

# Module name should match apk name to be installed
LOCAL_MODULE := BaiduInput
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
include $(BUILD_PREBUILT)

     这里需要注意:a).LOCAL_CERTIFICATE := PRESIGNED表示APK签名使用原来签名,即第三方签名,若要使用系统签名,则可以改为LOCAL_CERTIFICATE := platform系统前面,可以使apk获得系统权限。

                            b).LOCAL_MODULE_PATH :=$(TARGET_OUT)/vendor/operator/app表示编译后apk放在/system/vendor/operator/app目录下面,用户可以卸载,否则不加这句,会放在/system/app/下面,用户不可以卸载。

 

 特殊要求:

     今天需要在发布CTA版本时内置Bypass.apk,在其他版本中不用内置次apk.做法如下:

    1. 同样需要在Alps/mediatek/binary/3rd-party/free/中添加Bypass.apk文件和Android.mk文件。

    2.由于MTK在mediatek/config/project/ProjectConfig.mk文件中定义了一个宏,在需要编译为CTA版本时候,设为yes。

    # EnableCTA requirements
   MTK_CTA_SUPPORT=yes,

  因此,需要在Alps/build/target/prodect/common.mk文件中添加判断,若MTK_CTA_SUPPORT=yes,则为编译编译CTA版本,添加编译Bypass;

   # Added by niexu for Bypassbegin
ifeq ($(strip $(MTK_CTA_SUPPORT)), yes)
   PRODUCT_PACKAGES += Bypass
endif
# Added by niexu for Bypass end

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
编译 Android APK 需要安装 Android SDK 和 Android NDK。可以使用 Docker 容器来完成这个过程,以下是一些步骤: 1. 安装 Docker。 2. 下载 Android SDK 和 Android NDK。可以从官方网站 https://developer.android.com/studio/index.html 下载。 3. 创建 Dockerfile。 ``` FROM ubuntu:18.04 # 安装依赖 RUN apt-get update && \ apt-get install -y wget unzip openjdk-8-jdk-headless && \ rm -rf /var/lib/apt/lists/* # 下载和解压 Android SDK ENV ANDROID_HOME /opt/android-sdk-linux RUN cd /opt && \ wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip && \ unzip -q android-sdk.zip -d ${ANDROID_HOME} && \ rm android-sdk.zip ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools # 安装 SDK RUN yes | sdkmanager --licenses RUN sdkmanager "build-tools;28.0.3" "platforms;android-28" # 下载和解压 Android NDK ENV ANDROID_NDK_HOME /opt/android-ndk-r19c RUN cd /opt && \ wget --quiet --output-document=android-ndk.zip https://dl.google.com/android/repository/android-ndk-r19c-linux-x86_64.zip && \ unzip -q android-ndk.zip -d ${ANDROID_NDK_HOME} && \ rm android-ndk.zip ENV PATH ${PATH}:${ANDROID_NDK_HOME} ``` 4. 在 Dockerfile 所在的目录中运行以下命令构建 Docker 镜像: ``` docker build -t android-build . ``` 5. 创建一个名为 build.sh 的脚本文件,并在其中添加以下内容: ``` #!/bin/bash # 进入到 Android 项目目录 cd /path/to/android/project # 清理项目 ./gradlew clean # 构建 APK ./gradlew assembleDebug ``` 6. 运行以下命令在 Docker 容器中运行上述脚本: ``` docker run -it --rm -v /path/to/android/project:/path/to/android/project android-build /bin/bash /path/to/build.sh ``` 7. 在 /path/to/android/project/app/build/outputs/apk/ 目录中可以找到编译好的 APK 文件。 注意事项: - 需要将 /path/to/android/project 替换为实际的 Android 项目目录。 - 可以使用其他版本的 Android SDK 和 Android NDK,但需要相应地修改 Dockerfile 中的命令。 - 可以使用其他的构建脚本,但需要相应地修改 build.sh 文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值