首页 > 其他分享 >系统框架层修改,编译,推送相关操作

系统框架层修改,编译,推送相关操作

时间:2023-12-04 17:47:09浏览次数:31  
标签:框架 framework res jar system 编译 adb 推送

参考了原文,原文记录更加详细

framework.jar

framework.jar是包含了Android系统框架层Java类的压缩文件。如果只修改了该文件,可以按照以下步骤操作

# 启动编译工具
source build/envsetup.sh
# 编译framework.jar文件
make framework
或者
cd ~/framework/base : mm
或者
make -j32 framework-minus-apex

# 获取设备的root权限和可写权限
adb root && adb remount
# 将编译后的framework.jar推送到设备
adb push out/target/product/<device>/system/framework/framework.jar /system/framework/
# 删除一些缓存文件
adb shell rm -rf /data/dalvik-cache /cache/dalvik-cache
# 同步数据并重启设备
adb shell sync && adb reboot

注意:这种方法不能用于修改framework.jar文件中的资源文件、native代码,或者API签名。

验证:在Activity.java 中的onCreate()添加一句打印
文件路径:~\frameworks\base\core\java\android\app\Activity.java
image

~/frameworks/base$ mm

编译fmk 成功,
image

按上述步骤替换,看下效果
image

framework-res

相关文件frameworks\base\core\res
修改了该目录下的文件,就需要编译替换该模块

# 启动编译工具
source build/envsetup.sh
# 编译framework-res.apk文件
mm framework-res 
或者  make framework-res 
或:cd frameworks\base\core\res: mm
# 获取设备的root权限和可写权限
adb root && adb remount
# 将编译后的framework-res.apk推送到设备
adb push out/target/product/<device>/system/framework/framework-res.apk /system/framework/
# 同步数据并重启设备
adb shell sync && adb reboot

out 文件:
image

service

编译指令

  • 在frameworks/base/services目录下执行 mm
  • mmm frameworks/base/services -j32
  • make services

out 文件
out\target\product\<product>\system\framework\services.jar

替换

adb root
adb remount
adb shell "rm -rf /system/framework/arm"
adb push services.jar /system/framework
adb shell "rm -rf /data/dalvik-cache/arm/system@[email protected]@classes.* "
adb shell sync && adb reboot

标签:框架,framework,res,jar,system,编译,adb,推送
From: https://www.cnblogs.com/qiyuexiaxun/p/17875522.html

相关文章

  • 最佳 C++ 编译器
    最佳C++编译器Incredibuild​已认证账号​关注 134人赞同了该文章 C++是一个“开放”的编程语言,任何人都可以使用自己喜欢的编译器。当然,C++编译器的种类也很多。同样, C++IDE 也不少,我在之前的一个博客中讨论过这个话题。编译和运行C++......
  • django框架01
    纯手撸web框架"""web框架:将前端数据库整合到一起基于互联网传输的python代码web框架也可以简单的理解为是软件开发架构里面的'服务端'"""#1.搭建简易版本服务端socket模块#2.遵循HTTP协议四大特性/数据格式/响应状态码#3.基于不同的后缀响应不同的内容如何获取......
  • 树的层序遍历算法框架
    1核心代码框架点击查看代码voidlevelOrder(TreeNode*root){if(!root)return;queue<TreeNode*>que;que.push(root);while(!que.empty()){intsize=que.size();for(inti=0;i<size;i++){TreeNode*cur=......
  • 一种全新的日志异常检测评估框架:LightAD
    本文分享自华为云社区《【AIOps】一种全新的日志异常检测评估框架:LightAD,相关成果已被软工顶会ICSE2024录用》,作者:华为云PaaS服务小智。深度学习(DL)虽然在日志异常检测中得到了不少应用,但在实际轻量级运维模型选择中,必须仔细考虑异常检测方法与计算成本的关系。具体来说,尽管深......
  • 嵌入式Linux: 使用Cmake交叉编译tslib库
    在编译第三方库时,往往要指定头文件和库的链接地址,每次输入又比较麻烦,所以产生了是否能用Cmake交差编译嵌入式Linux的想法,经过实验确实可行,以下记录操作过程。一、新建项目项目目录如下:arm_build:安放交叉编译生成的文件 build:安放gcc编译生成的文件 arm_linux_setup.cmake......
  • swift网络框架配置(三)
    1.WMGetApiManager(get请求)importUIKitimportMoyaenumWMGetApiManager{//获取配置caseappConfig//获取app信息casegetAppInfo(phone:String)}extensionWMGetApiManager:TargetType{varbaseURL:URL{switchself{......
  • Android mk 编译学习
      Androidmk编译学习1.引言在手机/Tv开发的公司,往往会涉及到源码编译.将项目放在系统源码中编译.而我们通常都是通过gradle编译,打包的.并不适用于系统开发的项目.这节就学习下,常用的androidmk命令.so/jar文件的编译.2.正题LOCAL_PATH:=$(callmy-dir)一个Android.......
  • swift网络框架配置(二)
    1.WMPostApiManager(post请求)importMoyaenumWMPostApiManager{//登录caselogin(login_type:String,id:String,password:String)}extensionWMPostApiManager:TargetType{varbaseURL:URL{returnURL(string:"https://api......
  • kore可扩展安全的Web 应用程序框架
    kore是基于c开发的web框架,可以让我们使用c以及python开发webapi,主要的特点是安全以及可扩展主要特性SNI支持http1.1支持websocket支持默认TLS支持可选后台任务内置参数校验基于acme的自动https权限分离设计可选异步pg访问模块热加载worker进程沙箱支持(基于pledge以及s......
  • 一些基于webassembly 的serverless 框架
    基于webassembly的一些serverless框架是比较多的,以下是以下参考,基本上基于rust开发的比较多,当然也有基于golang的参考资料https://wasmcloud.com/https://scale.sh/https://github.com/loopholelabs/scalehttps://github.com/wasmCloud/wasmCloudhttps://github.com/vmware-lab......