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的访问权限,那么应用程 ...
随机推荐
- Android与Asp.Net Web服务器的文件上传下载BUG汇总[更新]
遇到的问题: 1.java.io.IOException: open failed: EINVAL (Invalid argument)异常,在模拟器中的sd卡创建文件夹和文件时报错 出错原因可能是: ...
- 那些年被我坑过的Python——第十章Broker(rabbitMQ/redis)
基于RabbitMQ的direct任务驱动异步RPC程序实现: RPC_dispatcher指令分发器: #!/usr/bin/env python # -*- coding:utf-8 -*- __ ...
- QLineEdit
The QLineEdit widget is a one-line text editor. Header: #include <QLineEdit> qmake: QT += widg ...
- nginx下搭建fastcgi的开发环境
在上一章最简单理解CGI,FastCGI,WSGI 我们将fastcgi规范类比HTTP.下面我们通过一个案例更加明白fastcgi 我们使用的是 nginx作为前端 代理,我们包装了gevent_ ...
- 三种常见字符编码简介:ASCII、Unicode和UTF-8
什么是字符编码? 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255( ...
- 转:Gulp使用指南
原文来自于:http://www.techug.com/gulp Grunt靠边,全新的建构工具来了.Gulp的code-over-configuration不只让撰写任务(tasks)更加容易,也更 ...
- 转:PHP非阻塞模式
你可以任意转摘“PHP非阻塞模式”,但请保留本文出处和版权信息.作者:尘缘,QQ:130775,来源:http://www.4wei.cn/archives/1002336 让PHP不再阻塞当PHP作 ...
- GNU PID
多进程编程 写在前面的话 本文主要根据本人在UNIX系统上的编程实践经验总结而成, 既做为自己在 一个时期内编程实践的部分总结, 又可成为文章发表. 对UNIX程序员初学者来 说是一个小小的经验, 仅 ...
- Unity3d ngui基础教程
Unity3d ngui基础教程 NGUI教程:步骤1-Scene 1.创建一个新的场景(New Scene).2.选择并删除场景里的MainCamera.3.在NGUI菜单下选择Create a N ...
- Pots
poj3414:http://poj.org/problem?id=3414 题意:给你两个罐子的体积,然后让你只用这两个罐子量出给定k体积的水.题解:这里可以把两个罐子看成是一个二维的图,然后体积的 ...