将apk和所需库文件编译打包到system/priv-app路径下

2024-03-27 15:48

本文主要是介绍将apk和所需库文件编译打包到system/priv-app路径下,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有时候通过安装apk方式来运行此apk会遇到一些avc denied(比如,没有system权限访问不了system/lib64下的库文件),需要将apk以及apk所需要的so文件拷贝到system/priv-app/路径下,到时有时候没有root权限,并不能往system/priv-app/路径下创建文件,所以我们需要做如下操作:

  • 在有root权限的机器上安装apk
  • adb root
  • adb remount
  • adb shell进入adb模式
  • cd /data/app/apk包名-xxxxxxx

  • 将上述base.apk和lib文件夹pull出来当一个文件夹中,并将base.apk重命名为apk原先的名字

  • 新建一个HelloWorld文件夹,并将上述所有so文件和HelloWorld.apk拷贝到HelloWorld文件夹中
  • 将HelloWorld文件夹拷贝到Android源码中的external/xxx/路径下

  • 在external/mobicore/HelloWorld/路径下创建Android.mk,并添加如下内容(对于不同apk,只需要修改LOCAL_MODULE和LOCAL_PREDUILT_JNI_LIBS)
LOCAL_PATH := $(my-dir)#apk file
include $(CLEAR_VARS)
LOCAL_MODULE := HelloWorld
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_PRIVILEGED_MODULE := true
LOCAL_DEX_PREOPT := false
#LOCAL_MULTILIB := 32
#LOCAL_JNI_SHARED_LIBRARIES := libAndro7za libbase_module_dex libbitmaps libblur_armv7 libcmdsh libcommon_basemodule_jni libFdToFilePath libFileNDK libgif-jni libmemchunk libmttgpu_info libmttport_shared libmttwebview libmttwebview_plat_support libNativeRQD libqb_keystore libresapk libSharpPDecoder libtbs_sdk_extension_dex libtbs_shell_dex libtbsconf libTencentLocationSDK libtencentpos libvideo_impl_dex libwebp_base libwebview_dex libwebview_internal_service_dexLOCAL_PREBUILT_JNI_LIBS := libHelloWorldJavaClient.so \
libTee.so \
libTeeClient.so \
libblur_armv7.so \
libTeeJni.soPRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES += $(LOCAL_MODULE)include $(BUILD_PREBUILT)
  • 保存之后,build系统,之后可以看到out/target/product/${product_name}/system/priv-app/HelloWorld已经打包进来了

  • 重刷system.img

这篇关于将apk和所需库文件编译打包到system/priv-app路径下的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852629

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性: