安卓修改ROM 修改固件中的一些基本常识 自己做rom注意事项

修改rom 制作rom 解包rom的一些问题解析

安卓系列机型如何内置app 如何选择so文件内置

修改设置里 添加选项 添加文字 修改图标 修改版本号等等 实例解析

最近有几个粉丝对修改rom有兴趣。今天主要给这些友友提供一些自己初学修改rom的一些建议和思路,可以供大家参考,只是个人见解.初步的常识可以参考以上两个博文了解相关。

修改rom的基本常识

如果你手里有官方的线刷包,而且你也有兴趣尝试这方面的操作。那么可以继续查看我下面的步骤。对做rom的工具和解包打包过程这边不做阐述,毕竟各种解打工具各有所长,具体以自己操作为主。当我们要修改rom的时候。对于初学者应该尝试先不要直接该系统分区,因为有的搞完不开机有多重因素

没有官方固件可以查看我往期博文了解怎么提取系统分区  怎么制作线刷包等

修改系统固件不开机 安卓13去除系统app签名验证的几种方法

miui编译第三方卡米 对应的修改步骤位置

建议修改步骤

1-----先不要直接下手系统分区。应该先搞boot内核分区,可以先修补boot 然后写入手机看能不能开机。如果是电脑端修补boot,还要分清楚当前机型的cpu架构来修补

01----不能开机就先尝试更换面具版本重新修补在写入测试。在这个基础上可以结合去avb验证的方法

02---如果更换面具版本修补和结合去avb验证写入还是不进系统。那么对于小品牌机型首先判断机型有没有bl锁。

03----正常来说,只要解锁了bl分区的机型。对应安卓版本只修补boot写入或者结合去avb校验正常就可以进入系统了。如果这样还不进。那么你在搞系统分区也是白费功夫。

04---当然以上这种情况也有例外。例如vivo机型虽然解锁了bl分区。但写入常规修补boot和去验证会不开机,原因需要专用的修改面具版本来修补内核

对于初学者来说,循序渐进一步步来.因为不同于资深大佬。他们可以抓log来查看系统进程就可以明白具体问题。

修补boot写入可以进系统后的操作

按以上步骤修改内核可以进系统,那么接下来我们可以对系统分区下手了

1-----直接对系统分区解包打包。不做任何修改。然后写入手机查看能不能进系统。首先我们要明白一个道理。只要对系统解包打包不做任何的修改。他已经不属于官方包了,这点很重要。很多友友说我没有修改什么怎么重新打包后写入手机不开机呢。还以为是打包工具的问题,其实就是以上的道理。他已经不属于官方包。

2-----只解包打包不进系统就可以尝试按我以前的有关博文去除各种校验问题来尝试。例如dm校验  去卡米等各种验证.

以上只是针对初学友修改固件的一些建议.

故障解决思路

当你可以按以上步骤修改开机的情况下会遇到各种关于的改rom的bug

例如修改了build.prop文件导致的不开机 卡log 精简app等问题。这种就要找系统开机校验的原因对症操作。

进阶路程

当你具备修改rom基本操作可以正常开机的情况下,你可以进行反编译系统框架 美化自己机型的进阶操作了。例如用反编译工具反编译framework-res.apk,在获得的反编译目录内framework-res\res\layout\unlock_dna_typeb.xml文件就是锁屏输出的界面,用文本编辑器打开这个文件,原码说明参看下列代码备注:

.android.internal.policy.impl.ZteLockScreenViewandroid:background="@drawable/unlock_bg" android:layout_width="fill_parent"android:layout_height="fill_parent"//ulock_bg是背景,改相应图片xmlns:android="schemas.android./apk/res/android"><TextView android:textSize="19.0sp" android:textStyle="bold"android:textColor="#ff000000" android:gravity="right" android:id="@id/carrier"android:layout_width="480.0px" android:layout_height="wrap_content"android:layout_marginTop="16.0px" android:layout_marginRight="15.0px" /> //#ff000000是营运商颜色,默认#ff000000是黑色完全不透明android:layout_width="fill_parent" android:layout_height="wrap_content"android:layout_marginLeft="0.0px" android:layout_marginTop="103.0px"><LinearLayout android: orientation="horizontal" android:id="@id/timeDisplay"android:layout_width="243.0px" android:layout_height="75.0px"android:layout_marginLeft="12.0px" android:layout_marginTop="0.0px"><ImageView android:id="@id/hour_1" android:layout_width="wrap_content"android:layout_height="wrap_content" android:src="@drawable/time_8"/>< ImageView android:id="@id/hour_0"android:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/time_8" />< ImageViewandroid:id="@id/parting_point" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_marginLeft="2.0px"android:src="@drawable/parting_point" />< ImageViewandroid:id="@id/minute_1" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_marginLeft="2.0px"android:src="@drawable/time_8" />< ImageView android:id="@id/minute_0"android:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/time_8" /></LinearLayout> //以上是时间显示,时间数字通过调用图片time_0至9,中间冒号调用图片parting_point<ImageView android:id="@id/am_pm" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_marginLeft="259.0px"android:layout_marginTop="39.0px" android:src="@drawable/am" />//这段调用图片am_zh和pm_zh来显示上午和下午,换图片即可< /RelativeLayout>< TextViewandroid:id="@id/division" android:background="#ff605f5f"android:layout_width="318.0px" android:layout_height="2.0px"android:layout_marginLeft="0.0px" android:layout_marginTop="180.0px" />//定义横线位置与颜色android:textColor="#ff605f5f" android:id="@id/date"android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_marginLeft="24.0px" android:layout_marginTop="193.0px"android:text="@string/default_date" /> //定义日期位置与颜色android:textAppearance="?textAppearanceMedium" android:textColor="#ff605f5f"android:id="@id/status1" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_marginLeft="24.0px"android:layout_marginTop="4.0dip" android:drawablePadding="4.0dip"android:layout_below="@id/date" /> //定义星期位置与颜色android:id="@id/arrow_left" android:visibility="invisible"android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_marginLeft="36.0px" android:layout_marginTop="424.0px"android:src="@drawable/arrow_left" /> //定义向左下指示图片及其位置android:id="@id/arrow_right" android:visibility="invisible"android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_marginLeft="142.0px" android:layout_marginTop="319.0px"android:src="@drawable/arrow_right" />//定义向右上指示图片及其位置android:id="@id/unlock_handler" android:clickable="true"android:layout_width="480.0px" android:layout_height="480.0px"android:layout_alignParentRight="true" android:layout_alignParentBottom="true"/>< .android.internal.policy.impl.UnlockAniViewandroid:id="@id/unlock_animation" android:visibility="gone"android:layout_width="480.0px" android:layout_height="480.0px"android:layout_alignParentRight="true" android:layout_alignParentBottom="true"/>< ImageView android:id="@id/unlock_icon"android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_marginLeft="20.0px" android:layout_marginTop="654.0px"android:src="@drawable/unlock_icon" /> //定义向开锁图标及其位置android:id="@id/selected_icon" android:visibility="invisible"android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_marginLeft="-10.0px" android:layout_marginTop="620.0px"android:src="@drawable/selected_icon" />< ImageViewandroid:id="@id/silence_icon" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_marginLeft="381.0px"android:layout_marginTop="298.0px" android:src="@drawable/silence_in" />//定义移动到声音图标后显示的图片及其位置android:visibility="invisible" android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_marginLeft="349.0px"android:layout_marginTop="272.0px" android:src="@drawable/selected_silence_icon"/> //定义移动到开锁图标后显示的图片及其位置android:id="@id/emergencyCallButton" android:layout_width="wrap_content"android:layout_height="wrap_content" android:src="@null"android:layout_alignParentRight="true" android:layout_alignParentBottom="true"/>< ImageView android:id="@id/emergency_icon"android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_marginLeft="409.0px" android:layout_marginTop="688.0px"android:src="@drawable/emergence_icon" /> //定义声音图标及其位置</.android.internal.policy.impl.ZteLockScreenView>

android:id="@id/emergencyCallButton" android:layout_width="wrap_content"

android:layout_height="wrap_content" android:src="@null"

android:layout_alignParentRight="true" android:layout_alignParentBottom="true"

/>

< ImageView android:id="@id/emergency_icon"

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_marginLeft="409.0px" android:layout_marginTop="688.0px"

android:src="@drawable/emergence_icon" /> //定义声音图标及其位置

<

/.android.internal.policy.impl.ZteLockScreenView>

修改完回编译替换系统

修改主题美化

<activity
    android:theme="@style/splashTheme"
    android:name=".MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
-----------------------------------
还有例如替换开机动画  开机声音。默认开机壁纸  修改版本信息等等

目前各种反编译工具很多。在这些操作过程中你会逐步了解系统框架 反编译签名 4K对齐等等的操作。这些你搞明白后,你已经属于完rom中的大佬级别.

其实兴趣是最好的老师,当我们修改的rom可以开机的时刻,那种心情是一般人无法体会和理解的。就相当于你修好了你喜欢的一件物品。不在与其价值如何。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/142439.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打点初级技巧

什么是打点&#xff1f; 打点的目的获取一个服务器的控制权限。获得一个webshell。 步骤 如果你拿到一个网站的名字&#xff0c;该如何进行打点呢&#xff1f;首先&#xff0c;在天眼查上查询该网站&#xff0c;进入查询到的官网&#xff1a; 天眼查-商业查询平台_企业信息查…

Linux驱动开发笔记

疑问 file_operation中每个操作函数的形参中inode的作用 设备树中compatible属性中厂商和型号如何填写 file_operation定义了Linux内核驱动的所有的操作函数&#xff0c;每个操作函数与一个系统调用对应&#xff0c;对于字符设备来说&#xff0c;常用的函数有&#xff1a;lls…

Java项目实战-查询用户列表接口服务搭建

概述 这里通过设计一个对用户进行增删改查的接口服务&#xff0c;来练习java项目工程化、Spring框架、Mybatis框架的实际应用 本项目目录 上一节初始化项目&#xff0c;已经controller层了&#xff0c;下方新建包&#xff1a;pojo、mapper、service pojo:所有的实体类都放这…

手机相机系统介绍

目录 一张照片是如何生成的? 相机的成像原理 相机硬件 颜色四要素 相机硬件三大块 模组结构 镜头 镜头光路 镜头常见参数 镜头-FOV&EFL 镜头-焦距 镜头-光圈 图像传感器 图像传感器-像素-底 RGB排布 图像传感器-Pattern & PDAF Sensor CMOS sensor …

Kafka的消息传递保证和一致性

前言 通过前面的文章&#xff0c;相信大家对Kafka有了一定的了解了&#xff0c;那接下来问题就来了&#xff0c;Kafka既然作为一个分布式的消息队列系统&#xff0c;那它会不会出现消息丢失或者重复消费的情况呢&#xff1f;今天咱们就来一探。 实现机制 Kafka采用了一系列机…

怎样找到NPM里面开源库下载地址

场景 最近帮忙找一个开源库地址。这里以vue/language-core为例子。 解决 https://registry.npmmirror.com/vue/language-core/1.8.13这里就是如下格式&#xff1a; https://registry.npmmirror.com/{包名}/{版本号}打开这个页面后&#xff0c;得到开源库下载地址&#xff0c…

Java基于SSM+JSP的服装定制系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1 简介2 .技术栈3 分析4系统设计4.1 软件功能模块设计4.2.2 物理模型设计 5系统详细设计5.1系统功…

力扣:110. 平衡二叉树(Python3)

题目&#xff1a; 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff…

目前很火的养猫微信小程序源码带流量主+搭建教程

目前很火的养猫微信小程序源码带流量主搭建教程。 搭建教程 进入小程序我们下载开发者工具 开发者工具安装好了 我们就把前端源码导入进开发者工具中 这里的APPID我们填写自己的小程序APPID 修改siteinfo.js里的uniacid和acid 这两个ID在刚才后端添加的小程序那里看 在把…

2023年信创云管平台选哪家?咨询电话多少?

随着云计算和信创国产化的快速发展&#xff0c;越来越多企业需要支持信创系统的云管平台。但很多企业不知道市面上信创云管平台有哪些&#xff0c;也不知道选哪家&#xff1f;这里我们小编就给大家来回答一下。 2023年信创云管平台选哪家&#xff1f;咨询电话多少&#xff1f;…

九日集训 Leetcode 371.两整数之和

给你两个整数 a 和 b &#xff0c;不使用 运算符 和 - &#xff0c;计算并返回两整数之和。 示例 1&#xff1a; 输入&#xff1a;a 1, b 2 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;a 2, b 3 输出&#xff1a;5提示&#xff1a; -1000 < a, b < 10…

智能生活从这里开始:数字孪生驱动的社区

数字孪生技术&#xff0c;这个近年来备受瞩目的名词&#xff0c;正迅速渗透到社区发展领域&#xff0c;改变着我们居住的方式、管理的方式以及与周围环境互动的方式。它不仅仅是一种概念&#xff0c;更是一种变革&#xff0c;下面我们将探讨数字孪生技术如何推动社区智能化发展…

力扣-169. 多数元素(C语言+分治递归)

1. 题目 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 2. 输入输出样例 示例1 输入&#xff1a;nums [3,2,3] 输出&#xff…

代码随想录算法训练营第四十九天 | 动态规划 part 10 | 买卖股票的最佳时机i、ii

目录 121. 买卖股票的最佳时机思路代码 122.买卖股票的最佳时机II思路代码 121. 买卖股票的最佳时机 Leetcode 思路 贪心&#xff1a;记录最低值&#xff0c;并且遍历股票逐个寻找股票卖出最大值 动态规划&#xff1a; dp[i][0] 表示第i天持有股票所得最多现金 dp[i][1] 表示…

黎明加水印微信小程序源码 支持流量主接入

黎明加水印微信小程序源码&#xff0c;支持流量主接入。支持从聊天记录选择文件、相机拍摄、直接选择文件 支持白底、黑底的隐形水印&#xff0c;制作后&#xff0c;通过增加蒙版方能看到水印 纯前端&#xff0c;可嵌入任何项目。 部署教程 1、解压后得到项目文件夹 3、把…

什么才是物联网领域最好的开发语言?

什么才是物联网领域最好的开发语言&#xff1f; 最好&#xff01;运行最快&#xff1f;开发最高效&#xff1f;最容易学习&#xff1f; 各有特点&#xff01; 采用C/C语言&#xff0c;运行最快&#xff0c;一般采用厂家提供的底层驱动支持包BSP&#xff0c;所有MCU都支持。如…

华为OD机考算法题:最小数量线段覆盖

目录 题目部分 解读与分析 代码实现 题目部分 题目最小数量线段覆盖难度难题目说明给定坐标轴&#xff08;一维坐标轴&#xff09;上的一组线段&#xff0c;线段的起点和终点均为整数并且长度不小于1&#xff0c;请你从中找到最少数量的线段&#xff0c;这些线段可以覆盖住…

【从0学习Solidity】36. 默克尔树 Merkle Tree

【从0学习Solidity】36. 默克尔树 Merkle Tree 博主简介&#xff1a;不写代码没饭吃&#xff0c;一名全栈领域的创作者&#xff0c;专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构&#xff0c;分享一些项目实战经验以及前沿技术的见解。关注我们的主页&#xf…

通俗易懂-OpenCV角点检测算法(Harris、Shi-Tomas算法实现)

目录 1 图像的特征 2&#xff0c;Harris角点检测 2.1 代码实现 2.2结果展示 3&#xff0c;Shi-Tomasi角点检测算法 3.1 &#xff0c; 代码实现 3.2结果展示 1 图像的特征 2&#xff0c;Harris角点检测 、 2.1 代码实现 import cv2 as cv import matplotlib.pyplot as …

QFrame类学习笔记

1、QFrame的作用 QFrame类继承于QWidget类&#xff0c;被QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget, and QToolBox等类继承。 QFrame作为许多基础控件的基类&#xff0c;提供许多成员方法给子类&#xff0c;实现子类的框架样式的设计。框架样式主要…