首页 > 其他分享 >Android11快速编译并替换framework.jar

Android11快速编译并替换framework.jar

时间:2024-05-23 16:08:21浏览次数:21  
标签:编译 apex Android11 jar framework adb minus

Android11快速编译并替换framework.jar
在Android11之前修改了framework相关代码,只需make framework就可以编译出framework.jar。在Android11,这个编译命令不起作用了,根据framework/base/目录下Android.bp中的提示:

java_library {
    name: "framework-minus-apex",
    defaults: ["framework-defaults"],
    srcs: [":framework-non-updatable-sources"],
    installable: true,
    ......
    // For backwards compatibility.
    stem: "framework",
    apex_available: ["//apex_available:platform"],
    visibility: [
        "//frameworks/base",
        // TODO(b/147128803) remove the below lines
        "//frameworks/base/apex/blobstore/framework",
        "//frameworks/base/apex/jobscheduler/framework",
        "//frameworks/base/packages/Tethering/tests/unit",
    ],
}

// This "framework" module is NOT installed to the device. It's
// "framework-minus-apex" that gets installed to the device. Note that
// the filename is still framework.jar (via the stem property) for
// compatibility reason. The purpose of this module is to provide
// framework APIs (both public and private) for bundled apps.
// "framework-minus-apex" can't be used for the purpose because 1)
// many apps have already hardcoded the name "framework" and
// 2) it lacks API symbols from updatable modules - as it's clear from
// its suffix "-minus-apex".

 

 

可以看到framework变为了framework-minus-apex,通过stem属性使编译出来的模块还叫framework.jar,这样修改的目的一个是为了向后兼容以前的jar名称,一个也是为了表示现在framework是减去了apex的模块,所以带个minus-apex的后缀。
那么编译的时候就要换成下面的命令:

make framework-minus-apex

编译出framework.jar后,先用下面的命令remount:

adb root;adb disable-verity;adb reboot;adb wait-for-device;adb root;adb remount

然后把framework.jar push到system/framework/下面,同时还要删除这个目录下面的oat,arm,arm64三个目录(不删除会一直卡在开机动画),最后再运行下面的命令重启zygote,这样新替换的framework.jar就生效了。

adb shell stop;adb shell start;
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/superlee1125/article/details/115491698

标签:编译,apex,Android11,jar,framework,adb,minus
From: https://www.cnblogs.com/wanglongjiang/p/18208710

相关文章

  • 【DRF-03】rest-framework之APIView
    安装djangorestframeworkpipinstalldjangorestframework基本流程:url--》视图类--》执行dispatch方法fromrest_framework.viewsimportAPIViewfromrest_framework.responseimportResponseclassTestView(APIView):defdispatch(self,request,*args,*......
  • 在springboot项目中,打包本地的外部jar包,到运行的jar包中
    1、配置依赖<dependency><groupId>com.genesyslab</groupId><artifactId>genesyslab</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${project.basedir}/src/main/re......
  • The following instances are in the device manifest but not specified in framewor
    android 编译hal报错:ERROR:filesareincompatible:Thefollowinginstancesareinthedevicemanifestbutnotspecifiedinframeworkcompatibilitymatrix:android.hardware.hongxi.IHongxi/default(@1)Suggestedfix:1.UpdatedeprecatedHALstothelatestve......
  • 使用winsw 将 spring boot jar包注册称服务
    下载地址:ReleaseWinSWv2.10.3·winsw/winsw·GitHub下载winsw,使用版本WinSWv2.10.3版修改文件名  修改配置<configuration><!--安装成Windows服务后的服务名--><id>nacosConsumer</id><!--显示的服务名称--><name>nacosConsumer</name>&......
  • jar 启动提示: xxx.jar 中没有主清单属性
    一、背景说明1.现场有个jar包,里面的一个配置文件被研发写死在代码里了,为了图省事。不想重新打包。于是直接解压,结果报错了。当时的解压命令mkdircecp../wangzy.jar.jarxvfwangzy.jar2.修改对应配置文件。然后重新压缩rm-rfwangzy.jarjarcvfwangzy.jar*启......
  • 一个maven打包Fatjar的配置(非遮蔽)
     <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.6.0</version><configur......
  • 将本地 JAR 包安装到本地 Maven 仓库
    首先,需要将本地的JAR包安装到你的本地Maven仓库中。可以使用mvninstall:install-file命令来完成这一步。1.打开终端或命令行2.运行以下命令,将JAR文件安装到本地Maven仓库:mvninstall:install-file-Dfile=path/to/your/local-jar-file.jar-DgroupId=com.example-......
  • .net8 winform程序使用EntityFrameworkCore连接数据库
    在.NET8WinForms应用程序中使用EntityFramework(EF)Core,你需要按照以下步骤操作:1.添加EntityFrameworkCoreNuGet包。2.定义你的数据模型。3.创建数据库上下文(DbContext)。4.在数据库上下文中配置EntityFramework。5.使用EntityFrameworkCore的API来执行数据库操作。......
  • 【论文阅读】FlexGraph: A Flexible and Efficient Distributed Framework for GNN Tr
    阅读思考问题:PleasebrieflydescribehowhierarchicaldependencygraphsarebuiltinFlexGraph,andpointoutthespecificstageintheNAUabstractionwherethisprocesstakesplace.请简要描述在FlexGraph中如何构建分层依赖图,并指出在NAU抽象中的具体阶段发生此......
  • C#基于.net framework的应用开发实战编程(一) - 编程手把手系列文章
    上次介绍了C#的基于.netframework的Dll类库和Winform的编程过程,今天就来个实战演练一下,结合上次的内容,让读者能够有一个实战的过程,知道怎么用C#进行Winform的编程过程,实现一个小应用。       准备工作;因为软件研发主要从需求、设计、编码、测试、安装这个过程......