一键全局背景透明apk透明美化rom适合什么型号的手机

1 / 107 页
查看: 36288|回复: 1063
已精华【 LiuLei 教程】全魔网首发ROM制作优化美化全教程
阅读权限40
在线时间 小时
TA的每日心情慵懒 19:50签到天数: 23 天连续签到: 1 天[LV.4]偶尔看看III
当前用户组为 一方豪杰当前积分为 5253, 升到下一级还需要 747 点。
来自移动版
本帖最后由 Mfunz_LiuLei 于
14:08 编辑
注意:以下有的不适合2.3,但是对于4.1都可行的。因为我本人不更新2.3.
1、小白进阶篇,对各位大大的ROM的apk的增减
当你拿到一个刷机包,如果你想直接精简或者增加某个应用到刷机包中,那么往下看:
(1)删减apk,电脑端直接用WinRAR打开zip格式的刷机包(不可解压,如果想解压,需要再次签名,暂时不说,以后再说)
双击打开后,有meta-inf和system,有可能还有data。打开system-app,这里都是不获取最高权限无法卸载的系统应用,删减很简单,直接右键点击删除即可。有的包还在data-app文件夹集成软件,data-app文件夹里面的apk可以在不获取最高权限直接卸载,恢复出厂也就没有了。
(2)增加apk,无论实在system-app或者data-app中添加,都是直接拖进去,有的apk,例如输入法通常含有lib文件,以WinRAR打开apk能看到个lib文件夹,打开lib文件夹,有可能lib文件下还有其他文件夹,打开它,里面含有一个或者多个lib开头的文件,把这些lib全部复制到刷机包中的lib文件夹下。ROM中的apk名字不能有汉字,不能有空格,至于定义的名字,一般都是连续不间断的英文就行了。还有不能重名!对于在data-app下增加的apk的情况,如果刷机包不包含data,这种情况暂时不做讨论,以后会提出来。
2、刷机脚本以及ROM脚本编写方法
刷机脚本在meta-inf/com/google/Android/ updater-script 。ROM优化脚本一般在system/etc/init.d的根目录下和一个在system/build.prop。这两个脚本的编写都需要用nootpad编辑器来进行编写,普通写字板是不行的,千万记住了!刷机脚本updater-script一般不需要编写,不过你可以稍微修改下,例如你可以用nootpad打开它,找到UI.print这个词,这个词后面是刷机界面的显示,你可以编写自己的个性签名。如果你在data下添加脚本(例如v6脚本)或者在data/app下添加apk,那么你需要在updater-script添加挂载data分区代码支持。我把我自己用的一部分发出来
run_program(&/sbin/busybox&, &mount&, &/data&);
delete_recursive(&/data/dalvik-cache&);
package_extract_dir(&data&, &/data&);
set_perm_recursive(, , &/data/app&);
上面这一段就是挂在data分区代码
run_program(&/sbin/busybox&, &umount&, &/data&);mount(&ext3&, &EMMC&, &/dev/block/mmcblk1p21&, &/system&);
这一段是挂载system分区代码
package_extract_file(&system/bin/backuptool.sh&, &/tmp/backuptool.sh&);
package_extract_file(&system/bin/backuptool.functions&, &/tmp/backuptool.functions&);
set_perm(0, 0, 0777, &/tmp/backuptool.sh&);
set_perm(0, 0, 0644, &/tmp/backuptool.functions&);
run_program(&/tmp/backuptool.sh&, &backup&);
show_progress(0.);
ui_print(&************************************************&);
ui_print(&*& && && && && && && && && && && && && && && & *&);
ui_print(&*& &&&JELLY BEAN for Motorola OMAP3 devices& & *&);
ui_print(&*& && && && &##build by LiuLei##& && && && && &*&);
ui_print(&************************************************&);
ui_print(& &);
ui_print(&Deleting old system files...&);
delete_recursive(&/system&);
ui_print(&Starting Installation...&);
对照原版的updater-script看看就知道了,这段代码包含两部分挂载,data分区挂载和system分区挂载。从开头到第二个run&&program之前的就是data分区挂载代码,优化脚本暂时不多说,以后再谈。
3、配置文件build.prop的优化,build.prop位于system下,是一个开机配置文件,每次开机系统都会读取它。下面我拿出自己用的一个来解说
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=JZO54K
ro.build.display.id=刘磊自定义内核优
化版(前面的英文说的就是对ROM定
义的名字信息,可以为英文,可以为
汉字,以及下面的一些东西在关于手
机里面都能看到的)
ro.build.version.incremental=
(此句说的是版本日期,后
面的数字很容易看出来)
ro.build.version.sdk=16
ro.build.version.codename=REL
ro.build.version.release=4.1.2(此处
是安卓版本信息,喜欢装b的可以改
为其他数字)
ro.build.date=日 星期五
20:20:16(此句说的是ROM的生产日
期,可以包含中文字符)
ro.build.date.utc=
ro.build.type=user
ro.build.user=quarx(这句不清楚,
不过后面是q大的名字,做优化的时
候可以改为自己的ID,也可以不动)
ro.build.host=debian
ro.build.tags=release-keys
ro.product.model=MB526(此处定义
了手机型号)
ro.product.brand=MOTO
ro.product.name=MB526_DFP(产品
ro.product.device=umts_jordan
ro.product.board=jordan
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=Motorola
(此处应该是品牌信息)
ro.product.locale.language=zh(此
处是开机默默认语言,zh是中文)
ro.product.locale.region=CN(此处
定义了开机默认时区,cn是中国区
ro.wifi.channels=
ro.board.platform=omap3
# ro.build. use
ro.product.device
ro.build.product=umts_jordan
# Do not try to parse
ro.build.description or .fingerprint
ro.build.description=umts_jordan_
emara-user 2.3.6
4.5.1-134_DFP-132
release-keys
ro.build.fingerprint=MOTO/
MB526_O2DE/
umts_jordan:2.3.6/4.5.1-134_DFP-
132/:user/release-keys
ro.build.characteristics=default
ro.cm.device=mb526
# end build properties
# system.prop for jordan
rild.libpath=/system/lib/libril-moto-
rild.libargs=-d /dev/ttyS0
ro.sf.lcd_density=240(这一句是分
辨率修改,数值越大分辨率越低,数
值越小,分辨率越大,注意修改此选
项会影响图标大小,请勿随意修改)
#Bravia Engine Service
ro.service.swiqi.supported=true
persist.service.swiqi.enable=1
(上面这一段文字是定义了索尼引擎
显示,为了实现索尼引擎,仅仅这一
句是不够的,此处不多说)
#proximit sensor disable touch
mot.proximity.distance=100(此处应
该是传感器作用距离范围,不确定具
体意思,虽然见过,但是忘了具体意
# This defines the min duration
between two pointer event in ms
ro.min_pointer_dur=10(这一段文字
定义了两个像素点的最小距离,取值
为10是最符合defy的)
# Default network type.(此处意思是
默认的网络类型,以下是对网络类型
的诠释以及网络的参数)
# 3 -& GSM/WCDMA (auto mode,
according to PRL)
ro.telephony.default_network=3
# old ril switchs:
signalstrength,facilitylock,datacall,
icccardstatus,skipbrokendatacall
ro.telephony.ril.v3=
skipbrokendatacall,signalstrength
ro.telephony.ril_class=MotoWrigley3
# The interfaces to get DNS data
from when using mobile data
# Comma-separated
#mobiledata.interfaces=rmnet0,
rmnet1,rmnet2,rmnet3,rmnet4,
mobiledata.interfaces=rmnet0
wifi.interface=tiwlan0
# Time between scans in seconds.
Keep it high to minimize battery
# This only affects the case in which
there are remembered access
# but none are in range.
wifi.supplicant_scan_interval=180(
此处定义了WIFI扫描时间间隔,一般
来说取值120或者180之间,扫描间隔
越大越省电,但是扫描间隔慢,连接
# Use TI hotspot code
wifi.hotspot.ti=1
# Wifi tether interface
wifi.ap.interface=tiap0
# The OpenGL ES API level that is
natively supported by this device.
# This is a 16.16 fixed point number
ro.opengles.version = 131072
# Enable Jpeg HW decoder for
images & 300 kb (disabled, buggy)
jpeg.libskiahw.decoder.enable=0
jpeg.libskiahw.decoder.thresh=
# Disable Jpeg HW encoder
jpeg.libskiahw.encoder.enable=0
# Forbid format of these partitions in
mount menu :
ro.cwm.forbid_format=/misc,/
devtree,/config,/boot,/recovery,/
pds,/system
# Tell UsbService that we're using
ro.usb.use_custom_service=1
# use 1% battery steps
persist.sys.one_percent_batt=1
#Place files named by process
names in /data/local/hwui.allow/ (or
use HWA Selector app)
hwui.use.blacklist=true
# CpuGovernorService (require
ondemand cpu governor)
dev.pm.dyn_samplingrate=1
dalvik.vm.heapstartsize=16m(此处
定义了虚拟机初始堆栈大小,一般来
说,大点会加快反应速度,但是太大
会导致内存占用大,一般来说定义为
8或者16都可以,不建议超过16)
dalvik.vm.heapgrowthlimit=64m(此
处定义虚拟机增长限制)
dalvik.vm.heapsize=96m(此处定义
虚拟机大小,越大,打开软件越快,
但是越快消耗内存,导致再打开其他
软件速度变慢,一般优化ROM作者值
都在定义64到128之间)
#============================
=============================
=============================
# Note about persist.xxx properties :
# Don't edit values in this file, they
are only used to set the default
values on upgrade
# use setprop tool if you want to
change them.(这一段是对音量键功
能的诠释以及参数,一般化不做改
#============================
=============================
=============================
# LED charging indicator mode
# off = keep LED off during
# white = white LED for 'charging',
green LED for 'charged'
# rgb = mixed yellowish LED for
'charging', green LED for 'charged'
persist.sys.charge_led=white(上面
这一段文字定义了充电指示灯的亮灯
颜色控制以及亮灯开关)
# Brightness scaling of the button
persist.sys.button_brightness=100(
上面这一段定义了4大金刚亮度控
制,100表示最大,可以调小数值来
使它变暗,此处和framework里面的
亮度数值共同控制4大金刚亮度)
# use default multitouch
configuration
persist.sys.multitouch=2
# enable ADB
persist.service.adb.enable=1(此处
定义了用户可以进入最高权限)
#============================
=============================
=============================
# ADDITIONAL_BUILD_PROPERTIES
pm.sleep_mode=1(此处定义了使用
省电模式)
ro.ril.disable.power.collapse=0(此
处定义了禁用射频参与休眠,射频参
与休眠可能导致手机睡死,蓝牙无法
打开等奇怪现象,一般都是和上句的
pm-sleep这一句组合使用,一般情况
下原版q大没有这两句,这两句即是
对省电的优化)
debug.sf.hw=1(此处定义了使用gpu
渲染ui,一般化我这个build里面所提
到的数值1和0都是作为判断使用的,
此处的1是使用,0是不使用,)
debug.performance.tuning=1 (此处
定义了使用提高全局触摸响应,不使
用可改1为0或者去掉这句)
ro.rommanager.developerid=
cyanogenmodnightly
keyguard.no_require_sim=true
ro.url.legal=/
intl/%s/mobile/android/basic/
phone-legal.html
ro.url.legal.android_privacy=http://
android/basic/privacy.html
ro.com.google.clientidbase=android-
ro.com.android.wifi-
watchlist=GoogleGuest
ro.setupwizard.enterprise_mode=1
ro.com.android.dateformat=MM-dd-
ro.com.android.dataroaming=false
ro.cm.version=-NIGHTLY-
mb526(这句定义的是cyanogenmod
团队的版本号,下句也是,里面的数
字可以更改为自己修改优化后的ROM
ro.modversion=-
NIGHTLY-mb526
ro.config.ringtone=ring.ogg(此处定
义了电话铃声名字,名字的调取是从
media里面的电话铃声调取,)
ro.config.notification_sound=notice.
ogg(此处是短信铃声的选取,和电
话铃声同)
ro.config.alarm_alert=Hassium.ogg
(闹钟铃声)
ro.media.capture.flip=
horizontalandvertical
ro.com.google.locationfeatures=1
ro.telephony.call_ring.multiple=false
ro.media.dec.jpeg.memcap=
dalvik.vm.execution-mode=int:fast
(此处定义了系统对软件的安全验证方式,这里速
度的决定主要与安卓的安全验证有
关,官方的一般都是使用的安全模
式,民间的一般都是int:fast或者
int:jit,int:jit可能会有不兼容出
现,一般都是前者,具体含义请百度
dalvik.vm.lockprof.threshold=500
dalvik.vm.checkjni=false
dalvik.vm.dexopt-data-only=1
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=2m
ro.carrier=unknown
ro.url.safetylegal=http://
Support/legal/?model=MB525
ro.media.capture.maxres=5m
ro.media.capture.flash=led
ro.media.capture.flashIntensity=41
(定义的是照相闪光灯,不可胡乱更
改,以免烧坏了)
ro.media.capture.torchIntensity=25
(默认手电筒亮度)
ro.media.capture.classification=
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/
anr/traces.txt
# Faster Scrolling
windowsmgr.max_events_per_sec=
ro.kernel.android.checkjni=0
ro.max.fling_velocity=10000
ro.min.fling_velocity=5000(这一段
定义了滑动响应,一般化作者都是调
整在200到300之间,数值越大,滑动
响应越快越流畅,不过CPU占用越
大,也就会导致ROM性能以及流畅
度,第一句faster scrolling是标题,
这个可以随意改写,但是别写汉字。
一般化第一个符号是#的都是标题,
然后第二句Windows这句,就是滑动
响应最大数值为180,第三句第四句
意思是最大滑动速度是10000和最小
滑动速度是5000的意思,此处我是尽
量调小,因为这个滑动速度感觉一般
化很少能感觉到,我降低他的滑动速
度以降低CPU占用,可以提高性能,
# Faster reboot and frees more ram
persist.sys.purgeable_assets=1
dalvik.vm.dexopt-flags=m=v,o=y
(此段文字标题意思是快速重启和腾
出更多的运存占用,然后第二句意思
是默认允许清除不用的内存以释放更
多的RAM,第三句我不是很懂,但是
模糊的知道,一般ROM作者都是使用
上面这句或者m=y,详情可以参考
viper520的帖子里面有,我忘记了)
# Phone tweaks
ro.telephony.call_ring.delay=0
mot.proximity.delay=25
persist.sys.purgeable_assets=1(这
段文字表示对打电话的优化,
telephone.call-ring.delay这句好像是
拨号等待时间为0,就是可以快速拨
号。然后下面这句,是通话过程中的
光纤抖动,通俗点说就是通话过程中
当手机传感器移开耳朵,界面就会
亮,贴上去就会暗,这个数值就代表
当移开耳朵后等待多久才亮屏幕,数
值越小,等待的时间越小,亮屏速度
也越快,官方默认的貌似是500左
右,此处我用的是25,单位好像是毫
秒,然后最后一句,实际上是和上面
重复了,其实你仔细观察会发现,
cm10设置选项有允许清除不用的资源
以释放更多的RAM选项,当你把此句
的数值设置为1,就表示使用该选
项,开机时候,这个选项已经自动打
勾了,仔细看看吧)
# GPU 2D Cap
debug.gr.swapinterval=0(这句是禁用
gpu 的2d3d阀值上限,使gpu可以了发挥的更好
# 3G single
ro.ril.hsxpa=2 ro.ril.gprsclass=10
ro.ril.hep=1 ro.ril.enable.dtm=1
ro.ril.hsdpa.category=10
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=5(这一段定义
了3g信号的优化,优化ROM只要加上
去就行了,具体意思自己参悟或者百
# 3G TurboCharger Enhancement!
net.dns1=8.8.8.8
net.dns2=8.8.4.4
net.tcp.buffersize.default=6144,
net.tcp.buffersize.wifi=262144,
net.tcp.buffersize.lte=262144,
net.tcp.buffersize.hsdpa=6144,
net.tcp.buffersize.evdo_b=6144,
net.tcp.buffersize.umts=,
net.tcp.buffersize.hspa=,
net.tcp.buffersize.gprs=,
net.tcp.buffersize.edge=,
,(这一段定
义3g网络优化,就是gprs网络,同样
不多说),还有一些优化请提取我的build.prop和q大的对比就能看到优化代码了。
5、 、反编译与回编译
反编译可以用来美化和优化,正式开始前我们必须安装JAVA环境,我们可以下载jdk1.7(百度吧),变量配置好(同样百度自己配置,这里不多说),输入JAVA和javac都有好多提示就成功了!选择一个apktool,解压apktool.zip到d盘(也可以是其他盘,这里以d盘为例),开始正式教程:以defyparts.apk(是cm10的高级设置)为例。把defyparts.apk放入d盘的apktool内,把相应的框架文件(framework-res.apk)放入apktool,注意不放框架文件有的apk会出错,例如system.ui。
打开cmd(win7直接搜索cmd运行,xp点击控制面板,运行,输入cmd。),输入d:再输入cd apktool再输入apktool if framework-res.apk(上面三步的意思是打开d盘,再打开d盘中的apktool文件夹,再加载框架资源)。接着输入apktool d defyparts.apk(这里的d是反编译的意思),然后在d盘的apktool文件夹内你会看到defyparts文件夹,打开吧,这里就是我们需要修改的东西。修改好了以后再在cmd输入apktool b defyparts(这里的b表示回编译的意思)。如果出错表示你的修改出现失误,仔细根据cmd错误提示检查。回编译好后的在defyparts文件夹下的dist文件夹里面,有个defyparts.apk,注意这个回编译后的apk是不能正常使用的,因为反编译后的apk都没有签名。(每个apk都有签名文件,先这么记着就行了,至于签名具体是啥不用管)。以WinRAR分别打开原defyparts.apk和回编译后的defyparts.apk(也可以把这两个同名apk改后缀为rar后打开),在回编译后的defyparts.apk中找到你刚才修改的东西,直接拖进原defyparts.apk,(注意如果反编译的是framework-res.apk在拖recourse的时候一定要选择存储模式压缩)再把classdex和recourse也拖进原defyparts.apk(如果是改后缀为rar后拖进去的,拖进去后再改为apk),到这里就大功告成了!我们需要的毋庸置疑的是原defyparts.apk。回编译后的defyparts.apk就可以不要了。给个帖子有图有详细说法去看吧 /thread--1.html
6、supercharger v6的加入方法:
对于cm10的v6如果想全部加入还是比较麻烦的,之前也是学习了很久很久才完全搞清楚,比较繁琐我也懒得写了,上个我当初学习的地址吧【Q大CM10测试100% supercharged】V6 SuperCharger脚本很不错,推荐使用!
不过我做的rom包只是借用了v6的内存管理机制,其他的都没有采用。我还是觉得自己手动的改的数据要合理些
7、优化脚本的使用以及举例,注意优化脚本2.3和4.1的有的不能用,甚至导致不开机,自己自行测试,这些都是在system/etc/init.d下的脚本。把优化脚本放进去就行了。 以sd卡传输速度为例,控制sd卡速度的最底层代码是#!/system/bin/sh
if [ -e /sys/devices/virtual/bdi/179:0/read_ahead_kb ]
& & /system/xbin/echo &1024& & /sys/devices/virtual/bdi/179:0/read_ahead_
上面的1024就是卡速。也有称为缓存的,一般这个影响很小,都不错的。再来看下io调度,io调度是性能的瓶颈,一般相对来说deadline效率最高,noop和sio不相上下,cfq次之。我把控制io调度的代码发出来参考下
#!/system/bin/sh
# Tweak cfq io scheduler
for i in /sys/block/*/queue/
if [ -f &$i& ]; then
echo &cfq& & $i;
for i in /sys/block/*;
if [ -f &$i/queue/rotational& ]; then echo &0& & $i/queue/
if [ -f &$i/queue/iosched/low_latency& ]; then echo &1& & $i/queue/iosched/low_
if [ -f &$i/queue/iosched/back_seek_penalty& ]; then echo &1& & $i/queue/iosched/back_seek_
if [ -f &$i/queue/iosched/back_seek_max& ]; then echo && & $i/queue/iosched/back_seek_
if [ -f &$i/queue/iosched/slice_idle& ]; then echo &0& & $i/queue/iosched/slice_
if [ -f &$i/queue/nr_requests& ]; then echo &512& & $i/queue/nr_
if [ -f &$i/queue/iosched/fifo_batch& ]; then echo &1& & $i/queue/iosched/fifo_
if [ -f &$i/queue/iosched/quantum& ]; then echo &16& & $i/queue/iosched/
for i in /sys/block/*/queue/
if [ -f &$i& ]; then
echo &noop& & $i;
echo &deadline& & $i;
文中的noop以及deadline就是对调度模式的诠释。 刷包含不同调度模块的内核能看到。自行体验
8、对于wifi信号问题,可以采用禁用休眠的方式或许会稍微改善wifi的稳定性,一般情况下这个文件时通用的,这个文件的位置是system\etc\wifi\tiwlan.ini,下面附件我会上传这个文件,解压替换即可。
9、音量级别修改方法,以30级为例子。文中提到的1e是以及f都是十六进制数值,20级音量是14(cm10默认的是15级的)
framework.jar内的classes.dex文件
2. 找到文件 /android/media/
AudioService.smali文件 查找
MAX_找到如下代码相似内容: .line
177 new-array v2, v9, [I fill-array-
data v2, :array_1de iput-object v2,
p0, Landroid/media/
&MAX_STREAM_VOLUME:[I 可以看
到MAX_上面一行的内容,你可以看
到 “array_1ba” 字段。这个可能根据
不同而有所不同(但一般只有
”1ba“ 这几个字母有变化) 。
然后我们继续根据这个字段的内容
进行搜索,在这里我们查找
”array_1ba“。
:array_1de
.array-data 0x4
0xft 0x0t 0x0t 0x0t
0xft 0x0t 0x0t 0x0t
0xft 0x0t 0x0t 0x0t
0xft 0x0t 0x0t 0x0t(这一行)
0xft 0x0t 0x0t 0x0t
0xft 0x0t 0x0t 0x0t
0xft 0x0t 0x0t 0x0t
0xft 0x0t 0x0t 0x0t
0xft 0x0t 0x0t 0x0t
0xft 0x0t 0x0t 0x0t
.end array-data 我们需要修改的就是第四行,把f改为1e就可以了
10、默认关闭滚动缓存会解决某些应用的卡顿现象,所以我们最好将他关闭,方法:
framework.jar文件,
Scrollingcache 关闭需要修改 的文
件,反编frameowek.jar/android/
widget/AbsListView.smali 使用文
本编辑器软件打开来修改。 查找
ScrollingCache,需要修改的地方有
三个。 以下 .method private
createScrollingCache()V .registers
3 .prologue
const/4 v1,0x1
将&0x1&改成&0x0&
invoke-virtual {p0,v1},landroid/
widget/AbsListV-
&setScrollingCacheEnabled(Z)V
将&{p0,v1}&改成&{p0,v2}&
.nethod public
setScrollingCacheEnabled
(Z)V .registers 3 .parameter
&enabled& 将&enabled&改成&no& 再
重新编译回去替换就可以了
11、cm10全局背景的修改
修改framework-res.apk,反
编译后,打开res/values/styles.xml,
name=&windowBackground&&@
screen_background_dark&/item&
修改成&item
name=&windowBackground&&@
drawable/图片名称&/item&
PS:图片须为png格式;图片放在
drawable-hdpi中;
改完后,就有全局背景了,但是还是
有些地方可能没有,比如说设置.
所以还得再改个地方,也是在这个文
件中,查找到
&style name=&Widget.ListView&
parent=&@style/
Widget.AbsListView&&
name=&listSelector&&@drawable/
list_selector_background&/item&
name=&cacheColorHint&&?
colorBackgroundCacheHint &/item&
name=&divider&&@drawable/
divider_horizontal_dark_opaque&/
name=&Widget.ListView.White&
parent=&@style/
Widget.AbsListView&&
name=&listSelector&&@drawable/
list_selector_background&/item&
name=&cacheColorHint&&?
colorBackgroundCacheHint &/item&
name=&divider&&@drawable/
divider_horizontal_bright_opaque&/
中间两处 &item
name=&cacheColorHint&& ?
colorBackgroundCacheHint &/item&
name=&cacheColorHint&&@color/
transparent&/item&
这样子很多地方就又有自己所想的背
最后,编译好后,将原来的
framework-res.apk打开,将编译后生
成的文件build中,resources.arsc文
件拖入打开的framework-res.apk中,
存储方式为存储;还有你自己的图
片,拉入res/drawable-hdpi中,然后
就可以将新的framework-res.apk用
RE放入手机中;重启后就可以看到效
12、提高照相的质量,找到system\etc\media_profiles.xml
找到&ImageEncoding quality=&100& /&
&ImageEncoding quality=&90& /&
&ImageEncoding quality=&80& /&
&ImageDecoding memCap=&& /&
把90和80改为100即可最大限度提高拍照质量
13、摄像质量,找到system\etc\media_profiles.xml
&!-- &EncoderProfile quality=&720p& fileFormat=&mp4& duration=&30&&
&Video codec=&m4v&
bitRate=&&
width=&1280&
height=&720&
frameRate=&24& /&
&Audio codec=&aac&
bitRate=&96000&
sampleRate=&16000&
channels=&2& /&
&/EncoderProfile& --&
&EncoderProfile quality=&high& fileFormat=&mp4& duration=&60&&
&Video codec=&m4v&
bitRate=&&
width=&848&
height=&480&
frameRate=&24& /&
&Audio codec=&aac&
bitRate=&192000&
sampleRate=&44100&
channels=&2& /&
&/EncoderProfile&
&EncoderProfile quality=&480p& fileFormat=&mp4& duration=&30&&
&Video codec=&m4v&
bitRate=&4000000&
width=&640&
height=&480&
frameRate=&24& /&
&Audio codec=&aac&
bitRate=&96000&
sampleRate=&44100&
channels=&2& /&
&/EncoderProfile&
&EncoderProfile quality=&cif& fileFormat=&mp4& duration=&30&&
&Video codec=&m4v&
bitRate=&1200000&
width=&352&
height=&288&
frameRate=&24& /&
&Audio codec=&aac&
bitRate=&96000&
sampleRate=&16000&
channels=&2& /&
&/EncoderProfile&
&EncoderProfile quality=&qvga& fileFormat=&3gp& duration=&30&&
&Video codec=&h263&
bitRate=&500000&
width=&320&
height=&240&
frameRate=&24& /&
&Audio codec=&amrnb&
bitRate=&12200&
sampleRate=&8000&
channels=&2& /&
&/EncoderProfile&
&EncoderProfile quality=&timelapseqcif& fileFormat=&mp4& duration=&30&&
&Video codec=&m4v&
bitRate=&192000&
width=&176&
height=&144&
frameRate=&24& /&
&!-- audio setting is ignored --&
&Audio codec=&amrnb&
bitRate=&12200&
sampleRate=&8000&
channels=&2& /&
&/EncoderProfile&
&EncoderProfile quality=&timelapsecif& fileFormat=&mp4& duration=&30&&
&Video codec=&m4v&
bitRate=&1200000&
width=&352&
height=&288&
frameRate=&24& /&
&!-- audio setting is ignored --&
&Audio codec=&aac&
bitRate=&96000&
sampleRate=&16000&
channels=&2& /&
&/EncoderProfile&
&EncoderProfile quality=&timelapsehigh& fileFormat=&mp4& duration=&30&&
&Video codec=&m4v&
bitRate=&6000000&
width=&848&
height=&480&
frameRate=&24& /&
&!-- audio setting is ignored --&
&Audio codec=&aac&
bitRate=&96000&
sampleRate=&44100&
channels=&2& /&
&/EncoderProfile&
&EncoderProfile quality=&timelapse480p& fileFormat=&mp4& duration=&30&&
&Video codec=&m4v&
bitRate=&4000000&
width=&640&
height=&480&
frameRate=&24& /&
&!-- audio setting is ignored --&
&Audio codec=&aac&
bitRate=&96000&
sampleRate=&44100&
channels=&2& /&
&/EncoderProfile&
上面的文本是我修改过的,文中的samplerate是比特率意思,提高可以提高声音质量。channels=1表示单声道,2表示立体声,这个文本一般都是通用的,做优化的时候可以把这个文本替换即可,下面给出附件
13、关于minfree、adj的修改
mifree是空余内存的意思,安卓通过及时的运存回收来控制系统内存不够的情况。通过修改可以提升多任务的处理能力。我给出我自己依据v6修改的minfree以及adj文本。加入方法是:解压下面的附件得到data,直接拖进刷机包根目录即可,然后再在system/etc/init.d下放入一个s99supercharger文本(下面给附件解压得到),再在system/build.prop结尾补充一句 # End of V6 SuperCharged Entries.查看minfree和adj阀值请打开re管理器sys/module/lowmemorykiller/parameters/minfree,如果你看到的第一个是4700多的,那么就说明minfree优化做的不对。很多大大直接在etc添加脚本,实际上这个方法是不可行的。
14、CM10亮度调节、屏幕触动反馈以及4大金刚的触动反馈调节
亮度调节在framework-res.apk的控制之下,反编译后找到res/values/arrays,用nootpad打开找到下面的这些
&integer-array name=&config_longPressVibePattern&&
&item&0&/item&
&item&13&/item&
&/integer-array&
&integer-array name=&config_virtualKeyVibePattern&&
&item&0&/item&
&item&1&/item&
&item&13&/item&
&item&13&/item&
&/integer-array&
&integer-array name=&config_keyboardTapVibePattern&&
&item&0&/item&
&item&13&/item&
&/integer-array&
&integer-array name=&config_safeModeDisabledVibePattern&&
&item&0&/item&
&item&13&/item&
&/integer-array&
&integer-array name=&config_safeModeEnabledVibePattern&&
&item&0&/item&
&item&40&/item&
&item&500&/item&
&item&600&/item&
&/integer-array&
&integer-array name=&config_scrollBarrierVibePattern&&
&item&0&/item&
&item&30&/item&
&item&60&/item&
&item&30&/item&
&/integer-array&
上面的几个13控制的就是震动的反馈,这个是已经修改好了的微震的数值,几个大的数值我也不清楚是什么,不需要改动
&integer-array name=&config_autoBrightnessLevels&&
&item&8&/item&
&item&15&/item&
&item&100&/item&
&item&3000&/item&
&item&8000&/item&
&/integer-array&
&integer-array name=&config_autoBrightnessLcdBacklightValues&&
&item&13&/item&
&item&17&/item&
&item&48&/item&
&item&128&/item&
&item&226&/item&
&item&255&/item&
&/integer-array&
上面的这两段文字就是对应的亮度设置里面的数值了,可以更改数字达到较调的目的,这个也是更改好了的
&integer-array name=&config_autoBrightnessButtonBacklightValues&&
&item&32&/item&
&item&48&/item&
&item&96&/item&
&item&0&/item&
&item&0&/item&
&item&0&/item&上面的这一段就是4大金刚的亮度控制了,按道理说如果把这32&&48 和96都改为0,4大金刚就灭了,在build.prop里面有这么一句也是对4大金刚的控制 # Brightness scaling of the button backlight
persist.sys.button_brightness=60 按道理说改为0应该可以关闭金刚的亮度,因为我没有尝试把他们关闭。想试的自行体验把
15、框架速度调整
控制框架速度的代码依然在framework-res.apk中,反编译,找到values/integers,然后修改代码就行了,这里我把修改后的整个文本发出来,自己自行对照原版q大的这个文件就知道了问题在哪里,比较麻烦我也懒得一句一句打给你们
&integer name=&config_shortAnimTime&&75&/integer&
& & &integer name=&config_mediumAnimTime&&150&/integer&
& & &integer name=&config_longAnimTime&&200&/integer&
& & &integer name=&status_bar_notification_info_maxnum&&999&/integer&
& & &integer name=&config_soundEffectVolumeDb&&-6&/integer&
& & &integer name=&config_lockSoundVolumeDb&&-6&/integer&
& & &integer name=&config_activityShortDur&&100&/integer&
& & &integer name=&config_activityDefaultDur&&150&/integer&
& & &integer name=&config_radioScanningTimeout&&0&/integer&
& & &integer name=&config_networkTransitionTimeout&&60000&/integer&
& & &integer name=&config_max_pan_devices&&5&/integer&
& & &integer name=&config_wifi_supplicant_scan_interval&&15000&/integer&
& & &integer name=&config_wifi_framework_scan_interval&&300000&/integer&
& & &integer name=&config_wifi_driver_stop_delay&&120000&/integer&
& & &integer name=&config_lidOpenRotation&&-1&/integer&
& & &integer name=&config_deskDockRotation&&90&/integer&
& & &integer name=&config_carDockRotation&&-1&/integer&
& & &integer name=&config_defaultUiModeType&&1&/integer&
& & &integer name=&config_deskDockKeepsScreenOn&&3&/integer&
& & &integer name=&config_carDockKeepsScreenOn&&1&/integer&
& & &integer name=&config_lidKeyboardAccessibility&&2&/integer&
& & &integer name=&config_lidNavigationAccessibility&&0&/integer&
& & &integer name=&config_longPressOnPowerBehavior&&1&/integer&
& & &integer name=&config_criticalBatteryWarningLevel&&4&/integer&
& & &integer name=&config_lowBatteryWarningLevel&&15&/integer&
& & &integer name=&config_lowBatteryCloseWarningLevel&&20&/integer&
& & &integer name=&config_defaultNotificationLedOn&&500&/integer&
& & &integer name=&config_defaultNotificationLedOff&&2000&/integer&
& & &integer name=&config_notificationsBatteryLowARGB&&-65536&/integer&
& & &integer name=&config_notificationsBatteryMediumARGB&&-256&/integer&
& & &integer name=&config_notificationsBatteryFullARGB&&-&/integer&
& & &integer name=&config_notificationsBatteryLedOn&&125&/integer&
& & &integer name=&config_notificationsBatteryLedOff&&2875&/integer&
& & &integer name=&config_longPressOnHomeBehavior&&2&/integer&
& & &integer name=&config_screenBrightnessDim&&2&/integer&
& & &integer name=&config_lightSensorWarmupTime&&500&/integer&
& & &integer name=&config_virtualKeyQuietTimeMillis&&0&/integer&
& & &integer name=&config_datause_polling_period_sec&&600&/integer&
& & &integer name=&config_datause_threshold_bytes&&0&/integer&
& & &integer name=&config_datause_throttle_kbitsps&&300&/integer&
& & &integer name=&config_datause_notification_type&&2&/integer&
& & &integer name=&db_connection_pool_size&&4&/integer&
& & &integer name=&db_journal_size_limit&&524288&/integer&
& & &integer name=&db_wal_autocheckpoint&&100&/integer&
& & &integer name=&config_downloadDataDirSize&&100&/integer&
& & &integer name=&config_MaxConcurrentDownloadsAllowed&&5&/integer&
& & &integer name=&config_downloadDataDirLowSpaceThreshold&&10&/integer&
& & &integer name=&config_cursorWindowSize&&2048&/integer&
& & &integer name=&config_ntpTimeout&&20000&/integer&
& & &integer name=&config_networkPolicyDefaultWarning&&2048&/integer&
& & &integer name=&config_maxResolverActivityColumns&&2&/integer&
& & &integer name=&config_screenOnAnimation&&-1&/integer&
& & &integer name=&config_backKillTimeout&&2000&/integer&
& & &integer name=&config_deviceHardwareKeys&&15&/integer&
& & &integer name=&config_wallpaperMaxWidth&&-1&/integer&
& & &integer name=&max_action_buttons&&2&/integer&
& & &integer name=&preferences_left_pane_weight&&4&/integer&
& & &integer name=&preferences_right_pane_weight&&6&/integer&
& & &integer name=&preference_screen_header_scrollbarStyle&&&/integer&
& & &integer name=&preference_fragment_scrollbarStyle&&&/integer&
&/resources&
16、铃声、开机动画、让自定义的铃声设为默认铃声
打开system下的media文件夹就是这些问题的合集。首先bootanimation是开机第二屏幕动画的控制,
然后打开media文件夹下的audio文件夹,看到4个文件夹,alarms是放闹钟铃声的地方 notifications是放置短信铃声的地方 ringtones是电话铃声的地方 ui是桌面的声音反馈,打开ui,第一个是camera-click.ogg,这是打开相机时候的滴滴声音。effect-tick是按键声音,自己都听一遍就知道是什么声音了,关闭低电量提示音直接删除对应的铃声就行了。关闭相机等的声音也是如此。
对于自定义的铃声如果想让他开机就是默认的铃声,其实很简单,加入notifications有个短信铃声名字叫123.MP3那么,我们直接打开相应的build.prop,找到
ro.config.ringtone=234.ogg
ro.config.notification_sound=123.MP3
ro.config.alarm_alert=12.ogg
意思就是短信闹钟以及通知铃声里面的铃声名字要和build.prop对应起来,系统会自动识别为默认的
17、全局特效的修改方法
这个特效一般都在framework-res.apk中,反编译,找到res-anima,这里面包含的就是特效了,你可以提取其他ROM的其他特效直接替换进来就行了。jb特效九尾等特效都在这里控制的,替换后回编译即可。18、在高级设置中增减选项(目前我只会关联apk,),这部分内容较多,先空着有空再说,先说其他的
19、默认墙纸的修改方法
反编译framework-res.apk找到res/drawable-nodpi/defult-wallpaper.jpg。这个就是了,找个尺寸合适的壁纸替换默认壁纸就行了,名字要命名和原来相同才行。
20、说个题外话,简单说下10进制切16进制的切换方法
以10进制数76521为例,用除法取余数的运算,把76521先除
以16,得到4726---余5
用4726 再除以16 ,得到295-余6
用295再除以16 得到 18----余6.
用18除以 16 得到1----余2
然后,从下面的1,往上的余数连接起
来,就是12665。
21、拨号背景以及通话时候的背景的修改
这个非常简单,phone.apk控制通话时候的屏幕背景,contacts.apk控制拨号界面的背景。只要反编译后,找找看,自然一眼就认出来了。还有关于有人说反编译后的文件不能再再次反编译回编译,不然出错!实际上只要你别做错了东西,编译过180次的都可以正常编译。
22、补丁包如何加入到刷机包
举个例子,以替换4.2相机为例,打开4.2相机的补丁卡刷包,它包含meta-inf和system两个文件夹,meta-inf不用搭理它,他就是卡刷包的签名。打开system能看到几个文件夹,app和lib,把app下的apk移动到刷机包的app下,lib移动到刷机包的lib下,就那么简单。相同的文件夹移动或者替换就行了,自己举一反三吧,这个简单的很。
23、关于内核和超频脚本的控制
q大cm10的内核在刷机包的system/bootmenu/2nd-boot下,叫zlmage。超频脚本在config文件夹下,叫overclock.conf。用nootpad编辑器打开就可以修改默认的CPU转速和调速模式。打开后找到scaling 1 这个表示CPU调速模式选择模式1。那么模式一在哪里呢?模式一是什么呢?请往下看
在bootmenu文件夹下有个script文件夹,打开script找到overclock.sh,用nootpad打开,找到以下
Set Scaling
#############################################################
set_scaling()
case &$scaling& in
echo &conservative& & $SCALING_GOVERNOR
echo $con_freq_step & /sys/devices/system/cpu/cpu0/cpufreq/conservative/freq_step
echo $con_down_threshold & /sys/devices/system/cpu/cpu0/cpufreq/conservative/down_threshold
echo $con_sampling_rate & /sys/devices/system/cpu/cpu0/cpufreq/conservative/sampling_rate
echo $con_up_threshold & /sys/devices/system/cpu/cpu0/cpufreq/conservative/up_threshold
echo &interactive& & $SCALING_GOVERNOR
echo &ondemand& & $SCALING_GOVERNOR
echo $ond_sampling_rate & /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo $ond_up_threshold & /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo &performance& & $SCALING_GOVERNOR
echo &powersave& & $SCALING_GOVERNOR
echo boosted & $SCALING_GOVERNOR
echo $bst_debug_mask & /sys/devices/system/cpu/cpufreq/boosted/debug_mask
echo $bst_awake_ideal_freq & /sys/devices/system/cpu/cpufreq/boosted/awake_ideal_freq
echo $bst_down_rate_us & /sys/devices/system/cpu/cpufreq/boosted/down_rate_us
echo $bst_max_cpu_load & /sys/devices/system/cpu/cpufreq/boosted/max_cpu_load
echo $bst_min_cpu_load & /sys/devices/system/cpu/cpufreq/boosted/min_cpu_load
echo $bst_ramp_down_step & /sys/devices/system/cpu/cpufreq/boosted/ramp_down_step
echo $bst_ramp_up_step & /sys/devices/system/cpu/cpufreq/boosted/ramp_up_step
echo $bst_sample_rate_jiffies & /sys/devices/system/cpu/cpufreq/boosted/sample_rate_jiffies
echo $bst_sleep_ideal_freq & /sys/devices/system/cpu/cpufreq/boosted/sleep_ideal_freq
echo $bst_sleep_wakeup_freq & /sys/devices/system/cpu/cpufreq/boosted/sleep_wakeup_freq
echo $bst_up_rate_us & /sys/devices/system/cpu/cpufreq/boosted/up_rate_us
echo &smartass& & $SCALING_GOVERNOR
echo $smt_min_cpu_load & /sys/devices/system/cpu/cpu0/cpufreq/smartass/min_cpu_load
echo $smt_max_cpu_load & /sys/devices/system/cpu/cpu0/cpufreq/smartass/max_cpu_load
echo $smt_awake_min_freq & /sys/devices/system/cpu/cpu0/cpufreq/smartass/awake_min_freq
echo $smt_sleep_max_freq & /sys/devices/system/cpu/cpu0/cpufreq/smartass/sleep_max_freq
echo $smt_up_min_freq & /sys/devices/system/cpu/cpu0/cpufreq/smartass/up_min_freq
echo $smt_wakeup_freq & /sys/devices/system/cpu/cpu0/cpufreq/smartass/sleep_wakeup_freq
echo $smt_ramp_up_step & /sys/devices/system/cpu/cpu0/cpufreq/smartass/ramp_up_step
echo &userspace& & $SCALING_GOVERNOR
文中的1到7就是对CPU模式的解释,scaling可以选择1到7,从而实现切换不同的CPU调速模式。还可以再增加或者删减1到7的CPU模式。例如我们可以增加个minmax调速模式,应该是在7的下面仿照1到7的写法再来一个对minmax解释的语句,很简单,就不细说了。刷包含不同CPU调速模块的内核才能看到效果,内核不支持也不行。具体自行体验
24、搜索键锁屏
控制这个功能的代码在以下路径system/usr/keylayout/qtouch-touchscreen.kl
key 399 GRAVE WAKE_DROPPED
key 2 1 WAKE_DROPPED
key 3 2 WAKE_DROPPED
key 4 3 WAKE_DROPPED
key 5 4 WAKE_DROPPED
key 6 5 WAKE_DROPPED
key 7 6 WAKE_DROPPED
key 8 7 WAKE_DROPPED
key 9 8 WAKE_DROPPED
key 10 9 WAKE_DROPPED
key 11 0 WAKE_DROPPED
key 1 BACK WAKE_DROPPED
key 158 BACK WAKE_DROPPED
key 230 SOFT_RIGHT WAKE
key 60 SOFT_RIGHT WAKE
key 107 ENDCALL WAKE_DROPPED
key 62 ENDCALL WAKE_DROPPED
key 126 MENU WAKE_DROPPED
key 229 MENU WAKE_DROPPED
key 139 MENU WAKE_DROPPED
key 125 MENU WAKE_DROPPED
key 59 MENU WAKE_DROPPED
key 127 POWER WAKE_DROPPED
key 217 POWER WAKE_DROPPED
上面的两句就是控制搜索键锁屏的代码,这个已经是改好了的具有锁屏功能的,改回默认的话需要把127和217两行的POWER改为SEARCH注意需要大写
key 228 POUND WAKE_DROPPED
key 227 STAR WAKE_DROPPED
key 231 CALL WAKE_DROPPED
key 61 CALL WAKE_DROPPED
key 232 DPAD_CENTER WAKE_DROPPED
key 108 DPAD_DOWN WAKE_DROPPED
key 103 DPAD_UP WAKE_DROPPED
key 102 HOME WAKE
key 105 DPAD_LEFT WAKE_DROPPED
key 106 DPAD_RIGHT WAKE_DROPPED
key 115 VOLUME_UP WAKE_DROPPED
key 114 VOLUME_DOWN WAKE_DROPPED
key 116 POWER WAKE
key 211 FOCUS
key 212 CAMERA WAKE_DROPPED
key 16 Q WAKE_DROPPED
key 17 W WAKE_DROPPED
key 18 E WAKE_DROPPED
key 19 R WAKE_DROPPED
key 20 T WAKE_DROPPED
key 21 Y WAKE_DROPPED
key 22 U WAKE_DROPPED
key 23 I WAKE_DROPPED
key 24 O WAKE_DROPPED
key 25 P WAKE_DROPPED
key 26 LEFT_BRACKET WAKE_DROPPED
key 27 RIGHT_BRACKET WAKE_DROPPED
key 43 BACKSLASH WAKE_DROPPED
key 30 A WAKE_DROPPED
key 31 S WAKE_DROPPED
key 32 D WAKE_DROPPED
key 33 F WAKE_DROPPED
key 34 G WAKE_DROPPED
key 35 H WAKE_DROPPED
key 36 J WAKE_DROPPED
key 37 K WAKE_DROPPED
key 38 L WAKE_DROPPED
key 39 SEMICOLON WAKE_DROPPED
key 40 APOSTROPHE WAKE_DROPPED
key 14 DEL WAKE_DROPPED
key 111 DEL WAKE_DROPPED
key 44 Z WAKE_DROPPED
key 45 X WAKE_DROPPED
key 46 C WAKE_DROPPED
key 47 V WAKE_DROPPED
key 48 B WAKE_DROPPED
key 49 N WAKE_DROPPED
key 50 M WAKE_DROPPED
key 51 COMMA WAKE_DROPPED
key 52 PERIOD WAKE_DROPPED
key 53 SLASH WAKE_DROPPED
key 28 ENTER WAKE_DROPPED
key 56 ALT_LEFT WAKE_DROPPED
key 100 ALT_RIGHT WAKE_DROPPED
key 42 SHIFT_LEFT WAKE_DROPPED
key 54 SHIFT_RIGHT WAKE_DROPPED
key 15 TAB WAKE_DROPPED
key 57 SPACE WAKE_DROPPED
key 150 EXPLORER WAKE_DROPPED
key 155 ENVELOPE WAKE_DROPPED
key 12 MINUS WAKE_DROPPED
key 13 EQUALS WAKE_DROPPED
key 215 AT WAKE_DROPPED
key 55 STAR
key 74 MINUS
key 78 PLUS
key 83 PERIOD
key 98 SLASH
key 96 ENTER
#key 58 CAPS
key 41 GRAVE
key 166 MEDIA_STOP WAKE
key 163 MEDIA_NEXT WAKE
key 165 MEDIA_PREVIOUS WAKE
key 168 MEDIA_REWIND WAKE
key 164 MEDIA_PLAY_PAUSE WAKE
key 128 MEDIA_STOP WAKE
key 159 MEDIA_FAST_FORWARD WAKE
25、recovery版本的增加
以自定义内核的CM10的stable recovery添加5.6.7为例。假设A包含有5.6.7的recovery,B包只有5.7.0的,那么我想把5.6.7添加到B包,我们需要把A包bin下的bootmenu和bootmenu/script下的stable recovery.sh移动到b包即可实现。
26、关于移植驱动
这个问题,看起来复杂。实际上不复杂。大概说下思路。以MIUI界面移植到CM7。就是用MIUI的界面搭配CM7的底层驱动和组件。首先我们需要一款软件:比对软件,自己百度找找看。一般情况下,不同机型移植需要分辨率相同,当然如果你很牛逼,可以移植不同分辨率的,当我没说这句话。不同机型我没成功过,下面只说同机型移植,MIUI移植到CM7上,我们需要把MIUI下的framework下的所有框架文件一个都不能少的移植到CM包里,就是先要把CM下的framework删除,再把MIUI的framework下的所有框架文件移植过来,框架文件相互之间都有关联,所以必须一起移动。然后用对比软件对比lib库,把MIUI比CM多出来的驱动放到CM的lib库下。还要对比bin xbin等等,自己对比把多余的放到CM7包里就行了。至于移植后会不会出问题,那就看运气了。如果有问题,我们需要从MIUI的lib库把有问题的驱动替换回来即可,举个例子,例如开机WIFI热点fc,我们需要检查的有刷机脚本以及lib库,为啥?因为WIFI热点的驱动的工作方式可能不同,所以刷机脚本可能不同。WIFI热点功能就不能正常刷入手机,所以fc。另外一个就是lib库关联WIFI热点的驱动不兼容,所以你要一个一个试。当然了,试驱动也是有技巧的。例如有200个驱动,如果WIFI热点fc,我们先替换前100个驱动试试看有fc没,如果没有,说明不兼容驱动不在前100个里面,我们再把剩下的那100个驱动替换50,下次再替换25……刷机脚本你可以两个都试试看,如果两个刷机脚本刷机会有不同的问题,用对比软件对比一下,然后修改即可。其他没什么好说的。主要是尝试替换。
27、如何对ROM做zip线性对齐?
很简单的,在做了zip线性对齐的ROM里面提取两个文件,一个是在init.d下,名字不尽相同一般都包含zipalign,前面一般都有数字,这个文件名字可以自己定义。前面的数字会影响安卓执行的顺序。不过不影响。这个不需要懂。另外一个在xbin下,复制xbin下的这个zipalign到你的包包的xbin就OK了。
28、对系统做odex,这个CM10貌似全局odex会有问题,所以最好别做框架,做一下app下的即可,工具的话自己百度按照说明做,简单
29、自制开机动画
这个我是新手,只能说说大致思路,随意找个开机动画,打开。你会看到有可能有以下几个部分:part 0 part 1 desc.txt,这个txt文件控制的是动画的播放了,我们只需要在互联网上找到一系列的连贯的动画图片,在电脑上用WinRAR双击打开把原有的part0和part1下的内容删除,把自己的素材放进去即可,素材的大小问题说一下,defy屏幕是480#854的,所以 图片尺寸最大就是这个数字,就是全屏动画了。有的是320#480,这种不是全屏动画。还有一点需要注意:关于素材的命名,如果你的开机动画包含200张图片,命名结果是这样的
001、002……198、199、200,务必保持这种方式,不然开机动画的顺序就不同了。part0里面的部分是开机最先显示的动画,然后part1动画接着播放,当开机动画播放完毕以后,还没开机,part1会再次播放一遍,而part0不会参与重复播放。part0这部分也可以删除。
30、下拉栏透明、状态栏透明、全局透明教程
状态栏透明
要修改两个文件:systemui.apk和android.policy.jar
首先反编译systemui.apk
用Notepad++文本软件打开values\drawables.xml
找到 &item type=&drawable& name=&status_bar_background&&#ff000000&/item&
修改值:#ff是半透明,00是全透明,也可以是b0等..自己决定.
然后保存。回编译进行替换,将原来的SystemUI.apk用RAR压缩程序打开,将编译后生成的文件夹build中的classes.dex和resources.arsc文件拖入原来的SystemUI.apk中,存储方式为存储。
另外还要反编译android.policy.jar文件
怎么反编译呢?将android.policy.jar文件用RAR压缩程序把里面的classes.dex解压到桌面并进行反编译
用Notepad++文本软件打开smali\com\android\internal\policy\impl\PhoneWindowManager.smali文件
找到.method public getSystemDecorRectLw(Landroid/graphics/R)I将下面的
.line 2984
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowM-&mStatusBar:Landroid/view/WindowManagerPolicy$WindowS
if-eqz v0, :cond_1b
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowM-&mStatusBar:Landroid/view/WindowManagerPolicy$WindowS
invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowS-&getSurfaceLayer()I
move-result v0
.line 2986
.line 2985
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowM-&mNavigationBar:Landroid/view/WindowManagerPolicy$WindowS
if-eqz v0, :cond_26
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowM-&mNavigationBar:Landroid/view/WindowManagerPolicy$WindowS
invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowS-&getSurfaceLayer()I
move-result v0
goto :goto_1a
.line 2986
const/4 v0, 0x0
goto :goto_1a
.line 2984
const/4 v0, 0x0
保存。回编译进行替换,将原来的android.policy.jar用RAR压缩程序打开,将回编译得到的classes.dex文件拖入原来的android.policy.jar中,存储方式为存储。然后就可以将新的SystemUI.apk和android.policy.jar用RE放入手机对应目录中,修改权限后重启后就可以了。
下拉栏透明教程
下拉栏美化,就是要修改systemUI.
还是反编,但这次不是打开res,而是要打开smali\com\android\systemui\statusbar\phone;然后用Notepad++文本软件打开PhoneStatusBar$FastColorDrawable.smali文件,
# virtual methods
.method public draw(Landroid/graphics/C)V将下面的
iget v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$FastColorD-&mColor:I
const v0, -0x
(这后面几位数值0x-70-00-00-00的意思就是0x-透明度-R-G-B三基色,可以用拾色器选出自己喜欢的背景颜色;
保存。然后就是回编译进行替换,将原来的SystemUI.apk用RAR压缩程序打开,将编译后生成的文件夹build中的classes.dex和resources.arsc文件拖入原来的SystemUI.apk中,存储方式为存储。然后就可以将新的SystemUI.apk用RE放入手机对应目录中,修改权限后重启后就可以了。
(1)、反编译framework-res.apk,用文本编辑器打开res\values\styles.xml,这里说明一下,styles.xml就是主框架下的布局主题文件。
用Notepad++文本软件打开styles.xml
(2)、搜索
&item name=&colorBackground&&@color/background_dark&/item&
这里的背景指向是黑色,为了后面引用的透明度,改成
&item name=&colorBackground&&@color/transparent&/item&
(3)、搜索
&item name=&windowShowWallpaper&&false&/item&
如果能搜到好几处,就只把第一处改为
&item name=&windowShowWallpaper&&true&/item&
这里的窗体就是总的主题项目打开上面定义的透明度 这步骤很重要
(4)、接下来就是要在一些常用主题里面引用这个窗体,还是搜索
&style name=&Theme.Black& parent=&@style/Theme&&
在这个主题里面把
&item name=&windowBackground&&@color/black&/item&
&item name=&windowBackground&&@drawable/screen_background_selector_dark&/item&
请注意,这一句是把背景定义交给res/drawable文件夹下的screen_background_selector_dark.xml文件来控制了
(5)、打开res/drawable文件夹下的screen_background_selector_dark.xml这个文件,可以看到下面这一行内容:
&item android:drawable=&@drawable/background_holo_dark& /&
这一句就是定义了背景图片,这个图片的位置是res/drawable-nodpi,文件名为background_holo_dark.png
我们可以对这个图片做任意处理来适应我们的需要,可以处理为全透明也可以半透明。请注意这个图片的高度是充满屏幕的,也就是说是和任务栏是重合的。
(6)、分别搜索以下几个主题
a、&style name=&Theme.NoTitleBar& parent=&@style/Theme&&
b、&style name=&Theme.Black& parent=&@style/Theme&&
c、&style name=&Theme.Dialog& parent=&@style/Theme&&
d、&style name=&Theme.Light& parent=&@style/Theme&&
e、&style name=&Theme.Translucent& parent=&@style/Theme&&
f、&style name=&Theme.NoDisplay& parent=&@style/Theme&&
g、&style name=&Theme.Panel& parent=&@style/Theme&&
在每一个主题下面加上一行
&item name=&windowShowWallpaper&&false&/item&
(7)、搜索
&style name=&Theme.Holo& parent=&@style/Theme&&
往下能找到一行
&item name=&windowShowWallpaper&&false&/ item&
把这一行改为
&item name=&windowShowWallpaper&&true&/item&
(8)、用Notepad++文本软件打开res\values\drawables.xml
&item type=&drawable& name=&screen_background_dark&&#ff000000&/item&
&item type=&drawable& name=&screen_background_dark&&#&/item&
这里透明的是通讯录、通话记录等地方的背景。OK全部结束了。
31、至于下次更新什么再说吧 一时想不起来还有什么没更新……
本帖子中包含更多资源
才可以下载或查看,没有帐号?
热心帮助机油,奖励!
我很赞同你的文章.
感谢分享,谢谢!
加分鼓励一下,再接再厉!
感谢分享,谢谢!
感谢分享,谢谢!
感谢分享,谢谢!
原创内容,支持一下.
阅读权限30
在线时间 小时
TA的每日心情开心 23:15签到天数: 622 天连续签到: 1 天[LV.9]以坛为家II
当前用户组为 武林高手当前积分为 1088, 升到下一级还需要 412 点。
来自移动版
沙发支持中!!
阅读权限30
在线时间 小时
TA的每日心情奋斗 19:47签到天数: 787 天连续签到: 1 天[LV.10]以坛为家III
当前用户组为 武林高手当前积分为 983, 升到下一级还需要 517 点。
阅读权限40
在线时间 小时
TA的每日心情开心 15:06签到天数: 504 天连续签到: 1 天[LV.9]以坛为家II
当前用户组为 一方豪杰当前积分为 5040, 升到下一级还需要 960 点。
来自移动版
顶!!!!!!!
阅读权限30
在线时间 小时
TA的每日心情开心 11:05签到天数: 1 天连续签到: 1 天[LV.1]初来乍到
当前用户组为 武林高手当前积分为 919, 升到下一级还需要 581 点。
来自移动版
阅读权限40
在线时间 小时
TA的每日心情开心 01:01签到天数: 256 天连续签到: 1 天[LV.8]以坛为家I
当前用户组为 一方豪杰当前积分为 2389, 升到下一级还需要 3611 点。
来自移动版
前排支持!!!
阅读权限30
在线时间 小时
TA的每日心情开心 20:10签到天数: 2 天连续签到: 1 天[LV.1]初来乍到
当前用户组为 武林高手当前积分为 1071, 升到下一级还需要 429 点。
来自移动版
阅读权限30
在线时间 小时
TA的每日心情奋斗 09:12签到天数: 481 天连续签到: 2 天[LV.9]以坛为家II
当前用户组为 武林高手当前积分为 1322, 升到下一级还需要 178 点。
来自移动版
技术贴,后面还会是什么教程呢?
阅读权限20
在线时间 小时
TA的每日心情开心 12:06签到天数: 104 天连续签到: 1 天[LV.6]常住居民II
当前用户组为 小有名气当前积分为 520, 升到下一级还需要 80 点。
来自移动版
前排啊~~
阅读权限40
在线时间 小时
TA的每日心情无聊 22:43签到天数: 11 天连续签到: 3 天[LV.3]偶尔看看II
当前用户组为 一方豪杰当前积分为 1782, 升到下一级还需要 4218 点。
来自移动版
感谢分享。。。。。
1 / 107 页
&我们旨在提供一个良好的手机玩家技术交流、资源分享社区,如果有涉及版权的资源,请联系管理员并提供相应的版权证明,我们会进行相应处理。
Powered by Discuz! X3.2
Comsenz Inc.

我要回帖

更多关于 rom美化工具 的文章

 

随机推荐