前言:很多童鞋对美化很感兴趣,都想拥有一个完完全全属于自己风格的手机系统!对那些自定义全局背景,1%电量显示,透明下拉菜单。。。都很感冒!美化的重点跟难点就在于对"framework-res.apk"和"systemUI.apk"这两个文件的编译和反编译!这里说的编译和反编译是所有深度美化都必须要做的事,也就是说,所有的美化都是基于对apk的反编译后,才能进行的!而绝大多数修改"framework-res.apk"和"systemUI.apk"后导致无法进入系统,或者无限开机重启的,基本都是在编译跟反编译上出了问题!

framework-res.apk  的修改

framework-res.apk文件简介:
framework-res.apk文件位于/system/framework文件夹中,里面有着系统GUI的大部分的图片,包括图标,弹出对话框的样式,动作特效,界面布局,我们要知道"framework-res.apk"是不可以重签名的!(我们要切记这一点)另外,修改"framework-res.apk"之前务必先做好备份!这是相当重要的文件,稍有出错都会令你进不了系统的!以下为Framework-res.apk的文件结构:

  1. /assets
  2. /META-INF
  3. /res
  4. /AndroidManifest.xml
  5. /resources.arsc

复制代码

一、java平台的搭建、下载工具apktool
教程地址及下载地址:http://www.miui.com/thread-492332-1-1.html

二、反编译framework文件

在解压缩的ROM包或者用RE浏览器打开目录/system/framework下,就会看到有"framework-res.apk"的文件了,直接把他复制到电脑上准备用apktool反编译"framework-res.apk" ,在D盘根目录下建立一个apktool的文件夹,把解压好的APKTool.zip里面的三个文件以及“framework-res .apk”一齐放到D:\apktool中,打开“命令提示符”,方法:“开始--所有程序--附件--命令提示符”,或者快捷键“Win+R”,输入cmd,回车依次输入下面的代码

  1. d:
  2. cd apktool
  3. apktool if framework-res.apk
  4. apktool d framework-res.apk framework-res
  5. PS:d 是反编译命令 后面的 framework-res表示生成文件名为framework-res 的文件夹

复制代码

注意:这里的framework-res.apk一定要是原版ROM里的文件,没有经过修改的,不然会导致后面的SystemUI回编译失败。

此时:D:\apktool目录下就会多出一个名为
framework-res
的文件夹,里面放着就是反编译出来的文件了

三.Framework-res.apk图片修改及注意事项
本系列教程的主要研究方向在res文件夹中的图片与XML文件
在修改或替换framework-res.apk中的图片前,向大家提出以下几点建议,望大家注意,避免修改失败
  1)图片的获取
  关于图片的获取,大家可以用winrar打开framework-res.apk文件,进入找到res/drawable-mdpi(有些rom是drawable-ldpi)

把整个文件夹拖出来
  2)图片尺寸要注意
  大家修改时,要注意与原来的图片大小不要相差太远,不然会造成越界问题
  3)图片修改时注意名称一致
  各位在图片修改时,若需要保存,千万记着,图片的名称必须要跟原来的一致,多一个或少一个字都不行!
  4)图片的覆盖
  修改完图片后,我们再在winrar中打开framework-res,把图片分别拖入drawable-mdpi和drawable-ldpi文件夹覆盖
  5)framework-res.apk权限修改
  修改完后的framework-res.apk,权限已经被修改,我们要把它改成完全控制,具体方式如下:
  右击framework-res.apk,选择属性去掉只读属性,选择”安全”选项卡,然后点击编辑,把用户对象的完全控制选上,再点击确定,退出编辑界面。

最后,整理了一下大家经常想要修改的图片列表:

  1. emo_im_xxx  表情系列图片
  2. ic_jog_dial_xxx  锁屏界面功能图标(圆形的那些)
  3. ic_lock_idle_xxx  锁屏界面提示图标
  4. ic_menu_xxx  系统菜单图标
  5. stat_notify_xxx  状态栏提示图标(屏幕左方的图标)
  6. stat_sys_battery_xx  电池图标
  7. stat_sys_battery_charge_animX  充电时电池图标
  8. stat_sys_upload_animX  上载图标
  9. stat_sys_download_animX  下载图标
  10. stat_sys_gps_ongps  图标
  11. stat_sys_headset  耳机图标
  12. sym_def_app_icon  默认程序图标
  13. usb_androidUSB  连接机器人图片
  14. statusbar_background9  状态栏背景图标(2.2之后版本的ROM该图标在systemUI.apk里)
  15. jog_dial_bg  解锁背景图片

复制代码

四、回编译 framework-res .apk

当你已经在这里修改好想要修改的东西以后,接下来就要进行编译回去了!! “命令提示符”上输入:

  1. apktool b framework-res

复制代码

成功编译之后,
framework-res
文件夹就会多了个dist的文件夹,里面放的就是编译好的文件,同样命名为framework-res .apk

好了,重中之重就在下面了!不要以为编译好了就可以把这文件放回手机,还不可以的。
先搞清楚,我们现在有两个apk文件,一个是编译前的framework-res .apk,一个是编译后的framework-res .apk。
用压缩软件同时打开编译前和编译后的 framework-res .apk,是打开,而不是解压

细心观察,会发现编译后的 framework-res .apk ,少了一个META-INF的文件夹,这个其实就是apk包的签名所在,但是这框架文件是不能签名的,所以,我们才要进行下面的步骤
  我们需要把两类文件从编译后framework-res .apk拉到编译前framework-res .apk中替换,
  第一类是:刚才反编译后,你所替换过,或者修改过的所有文件
  第二类是:resources.arsc这一个文件
  所有文件一个都不能替换少了
  记得要放到相同的目录下哦!!
  替换好后,我们就得到了需要的“framework-res.apk”
  然后,用RE浏览器把“framework-res.apk”复制到/system目录下,然后,长按文件名选择权限,具体权限修改为所有用户组读取,用户写入权限(RE管理器挂载为读/写)修改好确定后,再把“framework-res.apk”剪切到/system/framework目录下,选择替换原文件,再次确认权限是否有误!
  PS:一定要修改好权限后才能放进/system/framework,不然系统会马上挂掉的!!
  最后就是重启手机,修改完成!

SystemUI.apk 的修改

SystemUI.apk简介

自android2.2开始,原本存在与framework-res.apk中的状态栏和下拉通知栏界面控制被分割出一个单独的apk文件,命名为SystemUI.apk,保存在System/app文件夹中,可看出,在本文件中,是存在着状态栏的图标,XML控制文件等,这样的分割,使我们可以更方便地去修改,也可更专注的研究美化状态栏。
以下为SystemUI.apk的文件结构:

  1. /res
  2. /META-INF
  3. /AndroidManifest.xml
  4. /classes.dex
  5. resources.arsc

复制代码

一.SystemUI.apk图片修改及注意事项
1)图片的获取
  关于图片的获取,大家可以用winrar打开SystemUI.apk文件,进入找到res/drawable-mdpi
2)图片尺寸要注意
  大家修改时,要注意与原来的图片大小不要相差太远,不然会造成越界问题
3)图片修改时注意名称一致
  各位在图片修改时,若需要保存,千万记着,图片的名称必须要跟原来的一致,多一个或少一个字都不行!
4)图片的覆盖
  修改完图片后,我们再在winrar中打开SystemUI.apk,把图片分别拖入drawable-mdpi和drawable-ldpi文件夹覆盖

二.常见修改图片列表

  1. battery_low_battery  充电提示
  2. stat_2g3g  下拉通知栏2G/3G切换图标
  3. stat_airplane_on/off  下拉通知栏飞行模式开启/关闭图标
  4. stat_bluetooth_on/off  下拉通知栏蓝牙开启/关闭图标
  5. stat_brightness_auto/mid/on/off  自动调节/适中/开启/关闭下拉通知栏屏幕亮度图标
  6. stat_data_on/off  下拉通知栏数据控制开启/关闭图标
  7. stat_flashlight_on/off  下拉通知栏电筒开启/关闭图标
  8. stat_gps_on/off  下拉通知栏GPS开启/关闭图标
  9. stat_lock_screen_on/off  下拉通知栏锁屏开启/关闭图标
  10. stat_media_xxx  下拉通知栏播放器控制图标
  11. stat_ing_xxx  下拉通知栏声音模式控制图标
  12. stat_orientation_on/off  下拉通知栏转屏控制图标
  13. stat_screen_timeout_on/off  下拉通知栏屏幕超时控制图标
  14. stat_sync_on/off  下拉通知栏同步开启/关闭图标
  15. stat_sys_data_xxx  数据通信图标
  16. stat_sys_no_sim  无sim卡通知图标
  17. stat_sys_signal_x  信号图标
  18. stat_sys_wifi_xwifi  信号图标
  19. stat_vibrate_XXX  震动提示图标
  20. shade_bg  下拉菜单背景
  21. statusbar_background  状态栏背景图片

复制代码

系列教程:

android应用、ROM开发者入门FAQ
JDK环境搭建以及APKTool和signapk整合工具及使用教程
Android平台ROM的定制及精简教程
Android APK反编译教程
Android ROM界面美化定制基础教程——第一屏开机动画修改
Android ROM定制——界面美化基础(framework-res、SystemUI修改)

转载于:https://my.oschina.net/u/2542649/blog/1541698

Android ROM定制相关推荐

  1. 安卓android+rom定制,移植,安卓Android ROM定制移植教程.doc

    安卓Android ROM定制移植教程 CyanogenMOD移植教程 转自秋叶随风Ivan.系统选择和安装建议使用 ubuntu LTS 10.04 X64 新手朋友推荐Deepin Linux 基 ...

  2. 安卓android+rom定制,移植,安卓Android ROM定制移植教程。.doc

    安卓Android ROM定制移植教程. CyanogenMOD移植教程 转自秋叶随风Ivan.系统选择和安装建议使用 ubuntu LTS 10.04 X64 新手朋友推荐Deepin Linux ...

  3. Android ROM定制——界面美化基础

    Android ROM定制--界面美化基础 前言:很多童鞋对美化很感兴趣,都想拥有一个完完全全属于自己风格的手机系统!对那些自定义全局背景,1%电量显示,透明下拉菜单...都很感冒!美化的重点跟难点就 ...

  4. Android ROM定制 入门到精通(含改机、移植、破解网络层、root原理、植入hook框架,反安全监测等)

    最近在定制一款ROM,拉取谷歌源码,解包.精简.修改.打包.想要实现MIUI一样的效果和国人常用的功能设置和手势. 在这个过程中遇到了很多疑难问题,也发现公司刚招来的这些小孩基础太差,而且他们根本不知 ...

  5. Android Rom定制与修改学习(一)

    最近ZUK惨遭联想抛弃,从而使得ZUK系列全线大降价,于是将服役了三年的荣耀6换下了,入手ZUK2 PRO,机器在硬件方面都挺让人满意,只是联想采用了一块AMOLED屏,相比较于IPS而言,A屏颜色实 ...

  6. android设置UI界面背景,Android ROM定制——界面美化基础(framework-res、SystemUI修改)...

    前言:很多童鞋对美化很感兴趣,都想拥有一个完完全全属于自己风格的手机系统!对那些自定义全局背景,1%电量显示,透明下拉菜单...都很感冒! 美化的重点跟难点就在于对"framework-re ...

  7. Android手机ROM定制初级教程以及Android系统文件夹结构介绍【转】

    Android手机ROM定制初级教程以及Android系统文件夹结构介绍 一个完整的OM根目录会有以下几个文件夹及文件: data META-IN system boot.img  系统目录说明 1. ...

  8. Android利用Java反射获取用户手机的rom定制系统及版本,EMUI,MIUI,ColorOS,FunthouchOS等

    Android利用Java反射获取用户手机的rom定制系统版本及版本号,EMUI,MIUI,ColorOS,FunthouchOS等 前言 正文 结语 前言 现在手机厂商都推出了自己的基于Androi ...

  9. Android 12.0 rom定制专栏系列解读

    一.前言 在从事android系统rom定制化的这几年里,经历了坎坎坷坷,开发过好几种类型的产品,也随着google对android系统的更新加快,也需要跟随上时代的进步,所以需要把平时工作中遇到的问 ...

最新文章

  1. 2018.8.17提高B组模拟考试
  2. OSChina 周一乱弹 —— 程序员用什么浏览器能看出来品位么
  3. NodeAsp——像开发NodeJS应用一样玩转ASP
  4. 检查字符串是否包含数字
  5. 如何使用命令行编译运行java文件(一个或多个),找不到主类解决
  6. PyTorch | Tensor、Numpy、Variable之间的转换
  7. Aix5.3安装Bash环境
  8. Github带来的不止是开源,还有折叠的认知
  9. 如何更好的掌握一个知识点_如何成为一个更好的讲故事的人3个关键点
  10. elasticsearch java_java Elasticsearch详细介绍及使用实例分析
  11. 在VC中动态加载ODBC的方法
  12. 带集成保护的共模滤波器(CMF)行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  13. CKEditor 5 在线编辑 PDF
  14. visual studio 2015中的webapi生成helpPage,页面不显示方法说明问题解决
  15. Spring学习笔记(入门)
  16. 阿里 OSS图片上传 —— 原生JS中使用
  17. 软件测试项目实例_餐饮系统(初稿,后续待整理)
  18. 转行学习IT技术要做哪些准备
  19. 126邮箱如何绑定qq邮箱服务器,126邮箱注册登陆入口(一招教你快速登录QQ/网易邮箱)...
  20. Android7 WIFI系统 PNO机制流程详解和隐藏BUG修改

热门文章

  1. Swift5.1 语言指南(二十) 类型转换
  2. 量子计算机与易经,易经卦象的演化过程,就是一个量子计算机模型?
  3. 受降息利好影响,两市超4400股下跌,沪指击穿3400点创指跌超3%,北向资金疯狂抛售146亿
  4. 【51单片机】串口通信
  5. Scavenger:在不同的paste网站上搜索泄漏的凭据
  6. Description: A component required a bean of type ‘XXXXXX‘ that could not be found.
  7. [LeetCode Python3]77. Combinations回溯
  8. 学生用计算机app,学生党利器!微软出品的这个小众APP,帮你搞定数学难题!
  9. ABAP BAPI_PO_CREATE1 净价net_price 无效
  10. Echarts --- 可视化练习(pie01 --- 南丁格尔玫瑰图)