Android Rom修改
最近项目里要实现修改开机动画 屏蔽系统桌面等一些涉及到修改底层的功能 一开始研究了一番 心想着看来这是要定制系统 做rom开发了 所以就牛逼哄哄的跑去下源码 研究rom开发 后来发现这将是一个庞大的工程 不是我一个人能搞定的 就只能想别的法子啦!
思路就是下载现成的rom进行修改,修改开机动画文件,自定义锁屏替换rom中的锁屏apk,自定义launcher替换rom中的锁屏apk.
1.首先下载对应机型的rom文件后缀是zip的压缩文件,我这里是用华为C8813做实验的。
2.解压出你下载的rom看下目录结构。
每个rom的目录结构都可能不太一样但是大体上还是一样的 其中的boot.img文件比较核心貌似什么内核文 件,所以别去动它,打开system目录下面的app目录,可以看到这里放的就是系统的一些应用的apk文件了。
3.上面简单的介绍了下rom,网上有很多相关的资料说明。下面开始修改开机动画和替换rom的apk。
步骤很简单找到开机动画所在目录,华为这款rom的开机动画目录是在cust\chinatelecom\cn\media下面这里 有俩个zip压缩文件
不同的rom中开机动画所在目录也是不一样的一般都在system\media目录下,不过文件名字都一样只要在你们 rom中搜索bootanimation.zip文件就可以快速找到所在了。
这里有个操作需要注意下,所有的修改替换操作都必须用WINRAR压缩软件(或者其他的压缩软件)直接打开压 缩包,然后进行添加或删除操作,不可以直接解压出来改完了再打包压缩回去,这样你修改之后的rom很可能没
用,因为rom在开发过程中打包的环境和你当前的环境可能不一样。
好了找到开机动画文件之后我们可以用winrar软件打开来看一下
part0和part1文件夹下就是一些开机动画的图片,原理就是动画做完之后导出一帧一帧的图片,播放时就按顺序播放这些图片,还有一个desc.txt文件,这个文件就是用来控制动画播放的一下参数的。
简要的介绍一下这些参数(摘自网络):
480854意思是说你开机动画在屏幕先以多少的分辨率显示,30这个数字是代表着每秒播放的帧数,拿我这个开机画面打个比方说,part0文件夹里面共76个图片,播放时间就是76/30=2.533333秒播放完毕,当然在手机里面会有一定的延时,尤其是你的图片文件比较大的情况下,手机想播快也快不起来.
以下部分是实现画面重复位置的
p1(代表着播放一次)0(空指令)part0*/这句指令就代表这part0文件夹内的图片只按名称顺序播放一次,p0(重复播放)0(空指令)part1*/这一句指令代表着part1文件夹内的图片会循环反复播放opda.com.cn/forum.php还有一种是指令不常用,我也来解释一下吧;
p010part1这里面的那个10代表着播放完part1文件夹内的图片一遍之后稍作停顿,然后再循环播放一遍,再停顿少许,再播放,再停顿稍许·········重复下去
p110part1同理,这句代表着播放完part1文件夹内的图片之后稍作停顿然后继续执行吓一条命令。
如果想作出一些特殊的效果,可以活用这些命令,然后分配不同的图片在各个文件夹里来实现各种重复与循环。
现在就可以把你自己的开机动画图片放到part0和part1文件下了
这你如果你没压缩成zip和存储方式时开机时手机会不认你修改之后的动画,就一直黑屏没有动画显示 知道进入系统为止。
4.替换rom中apk文件
我这里自定义了一个锁屏和launcherapk,找到\system\app目录下的rom中默认的桌面和锁屏apk,将自己自定义的apk文件命名成和其一样,然后替换,添加方式和修改动画师一样的,压缩zip格式存储方式。根据各自rom的不同,一些软件可能不在这个目录下,像华为这款rom的锁屏不在app目录下而是在\system\delapp目录下,到时候就得根据自己需要自己去找了。
所有工作都做完了之后就可以用这个修改之后的rom进行刷机了。刷完之后进入系统看到的锁屏和launcher就是我自定义的了,希望你不会刷成砖,我比较幸运 嘻嘻。以上就是我这次的经验分享,关于rom修改网上还有更多优秀的资料,只要自己肯去努力研究,就必定会取得成功,那种满满的成就感 吼吼 简直太美好了
Android Rom修改的更多相关文章
- Android ROM开发(三)——精简官方ROM并且内置ROOT权限,开启Romer之路
Android ROM开发(三)--精简官方ROM并且内置ROOT权限,开启Romer之路 相信ROM的相关信息大家通过前几篇的学习都是有所了解了,这里就不在一一提示了,这里我们下载一个官方包,我们还 ...
- 【ROM修改教程】添加高级电源重启菜单(安卓4.0.4官方ROM)
准备工作: 电脑上安装好JDK.下载smali和baksmali.下载apktools.要修改的ROM.adb工具(可选) 注:由于本教程面向的对象为有一定ROM修改基础的兄弟,所以对于如何使用电脑, ...
- Android ROM 开发技能图谱
# Android ROM 开发技能图谱 ## 1. 操作系统 * Ubuntu(首选)* MacOSX ## 2. 编程语言 * Java * JNI(务必掌握)* C++* C ## 3. 源码 ...
- Android ROM 备书
1. Android ROM 目录接口 我们经常说的刷ROM是刷系统的意思,但是ROM的原意并不是这样,ROM的全称是read only memory只读储存器,正因为它是“只读”的,而且系统文件通常 ...
- 详细介绍android rom移植知识普及
详细介绍android rom移植知识普及 最近接到很多兄弟们的求助,也回答过无数个和下面这个问题类似的问题: 如何编译android 原生代码得到一个rom,然后跑到某某手机上. 鉴于很多兄弟对这块 ...
- Android ROM 制作教程
本文来自: 起点手机论坛 具体文章參考:http://www.qdppc.com/forum.php?mod=viewthread&tid=43751&fromuid=1 1.Andr ...
- Android动态修改ToolBar的Menu菜单
Android动态修改ToolBar的Menu菜单 效果图 实现 实现很简单,就是一个具有3个Action的Menu,在我们滑动到不同状态的时候,把对应的Action隐藏了. 开始上货 Menu Me ...
- Android必知必会-Android Studio修改包名
如果移动端访问不佳,请尝试–> Github版 背景 公司做相似产品较多,一般都是以某个产品为基础修改,逐步替换设计图的切图.这个就会导致需要经常为Copy的项目修改包名. 这里是参考一些网上的 ...
- Android系统修改硬件设备访问权限
Android系统修改硬件设备访问权限 在硬件抽象层模块文件(so)文件中,提供的函数调用open函数来打开设备文件,比如/dev/gpio,如果不修改设备文件/dev/gpio的访问权限,那么应用程 ...
随机推荐
- Entity Framework 级联删除
为一对主从表增加级联删除功能 protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.E ...
- iOS中浅淡UIApplication单例-b
在iOS的操作系统中 每一个程序都对应一个application单例,每一个application都对应一个Appdelegate代理,在代理中控制程序的各个状态.我们在程序中获取Applicatio ...
- unity3d中脚本生命周期(MonoBehaviour lifecycle)
最近在做一个小示例,发现类继承于MonoBehaviour的类,有很多个方法,于是乎必然要问出一个问题:这么多个方法,执行先后顺序是如何的呢?内部是如何进行管理的呢?于是在网上找了许多资料,发现了Ri ...
- [POJ 1742] Coins 【DP】
题目链接:POJ - 1742 题目大意 现有 n 种不同的硬币,每种的面值为 Vi ,数量为 Ni ,问使用这些硬币共能凑出 [1,m] 范围内的多少种面值. 题目分析 使用一种 O(nm) 的 D ...
- html中混入的特殊字符
从设计那里拿来的psd中常常会有全角的单双引号. 如果只是拷贝这些字符到做好的html里面,顶多看到乱码再加以改正. 但是,如果是通篇的doc,需要加上各种html语义标签,在拷贝来的doc文字之间加 ...
- json数值和结构
JSON 值可以是: l 数字(整数或浮点数) l 字符串(在双引号中) l 逻辑值(true 或 false) l 数组(在方括号中) l 对象(在花括号中) l null JSON建构 ...
- backbone初次使用及hello world
官网:http://backbonejs.org/ Backbone.js gives structure to web applications by providing models with k ...
- POJ 1651 Multiplication PuzzleDP方法:
有N张写有数字的卡片排成一行,按一定次序从中拿走N-2张(第1张和最后一张不能拿),每次只拿一张,取走一张卡片的同时,会得到一个分数,分值的计算方法是:要拿的卡片,和它左右两边的卡片,这三张卡片上数字 ...
- HDU 1269 迷宫城堡 【强联通分量(模版题)】
知识讲解: 在代码里我们是围绕 low 和 dfn 来进行DFS,所以我们务必明白 low 和 dfn 是干什么的? 有什么用,这样才能掌握他. 1. dfn[] 遍历到这个点的时间 2. ...
- 数据结构(动态树):[国家集训队2012]tree(伍一鸣)
[问题描述] 一棵n个点的树,每个点的初始权值为1.对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c: - u1 v1 u2 v2:将树中原 ...