固件快速修改定制指南

来自弘迪在线
Hdadmin讨论 | 贡献2022年2月10日 (四) 09:43的版本 如何修改屏幕分辨率?
跳转至: 导航搜索

本章节介绍如何快速修改定制系统固件,涉及相关文件的修改既可通过修改源码后重新编译并打包,也可使用全志固件修改器DragonFace(可在资料光盘/开发工具中下载)直接修改打包后的固件镜像。

如何修改屏幕分辨率?

1. 在FEX文件中修改[lcd0]参数块;

2. 对于小于800x480分辨率的屏需要替换开机LOGO,将图片缩小到分辨率不大于液晶分辨率的尺寸;

3. 修改build.prop文件中的ro.sf.lcd_density属性,对照下表:

液晶分辨率 480x272 320x480 800x480 1024x600或更高
lcd_density 72 85 120 160

如何改为仅HDMI输出,且自定义屏幕分辨率?(A64/A40i)

1. 在FEX文件中修改lcd_used=0;

2. 在FEX文件中修改hdmi_used=1;

3. 在FEX文件中修改[disp]参数块,对照下表:

720P 1080P
screen0_output_type 3 3
screen0_output_mode 5 10
screen1_output_type 0 0
screen1_output_mode 5 10
fb0_width 1280 1920
fb0_height 720 1080

4. 在build.prop中persist.sys.hdmi_audio_enable前面添加:

persist.sys.hdmi_output_mode=5

数字代表输出模式,5为720P 60Hz,10为1080P 60Hz,注意要与FEX文件中参数匹配。

5. 如果遇到色彩显示不正常,可尝试修改FEX文件:hdmi_cts_compatibility=1;

如何修改触摸屏分辨率?

1. 在FEX文件中修改ctp_screen_max_x和ctp_screen_max_y;

2. 如果需要对调X轴,则让ctp_revert_x_flag=1;同理Y轴对调让ctp_revert_y_flag=1;

3. 如果需要交换X/Y轴,则让ctp_exchange_x_y_flag=1;

如何旋转摄像头、支持双摄像头等?

使用固件修改器修改camera.cfg文件的参数项,具体请参考《A64 Android M快速移植指南》3.6.3章节。

如何让固件支持UVC摄像头?(即禁用CSI)

1. 在FEX文件中修改csi0_used=0和csi0_dev0_used=0;

2. 修改init.rc文件,将下列代码块屏蔽:

# csi module

insmod /system/vendor/modules/videobuf2-core.ko

insmod /system/vendor/modules/videobuf2-memops.ko

insmod /system/vendor/modules/videobuf2-dma-contig.ko

insmod /system/vendor/modules/vfe_io.ko

insmod /system/vendor/modules/ov5640.ko

insmod /system/vendor/modules/vfe_v4l2.ko

即在每行第一个字母前增加#,如下:

# csi module

#insmod /system/vendor/modules/videobuf2-core.ko

#insmod /system/vendor/modules/videobuf2-memops.ko

#insmod /system/vendor/modules/videobuf2-dma-contig.ko

#insmod /system/vendor/modules/vfe_io.ko

#insmod /system/vendor/modules/ov5640.ko

#insmod /system/vendor/modules/vfe_v4l2.ko

3. 在打开“相机”或者其他使用摄像头的应用前请先插好USB摄像头!

如何向固件中添加开机自启动的APP(需具备Launcher属性)?

1. 将apk文件加入固件;

2. 修改build.prop,在persist.sys.hdmi_audio_enable=0后添加如下两行:

ro.sw.defaultlauncherpackage=xxxxxxxx

xxxx为指定apk的包名。包名可以只写一部分,系统会自动匹配包含此字符串的包名所对应APP并将匹配到的最后一个设为Launcher。

如何切换以太网网卡驱动(RTL8152/SR9900)?

修改init.rc,找到下列代码:

# network

insmod /system/vendor/modules/usbnet.ko

#insmod /system/vendor/modules/asix.ko

#insmod /system/vendor/modules/qf9700.ko

#insmod /system/vendor/modules/mcs7830.ko

#insmod /system/vendor/modules/rtl8150.ko

#insmod /system/vendor/modules/r8152.ko

#insmod /system/vendor/modules/cdc_ether.ko

#insmod /system/vendor/modules/smsc75xx.ko

#insmod /system/vendor/modules/smsc95xx.ko

insmod /system/vendor/modules/sr9900.ko

保证第一行usbnet.ko不被注释掉,剩下的需要使用哪个驱动就取消注释哪个,注意不同型号的网卡驱动只能有一个存在。

如何开机时自动打开“停用HW叠加层”?

修改build.prop,找到下列代码:

ro.debug.disable_hwc=1

修改该值,1为打开“停用HW叠加层”选项,0为关闭。对于高分辨率显示输出开启此项后将采用GPU进行图像叠加,可解决画面抖动、撕裂等问题,但也会加重GPU负担,功耗和发热增加。

如何开机默认竖屏显示(屏幕旋转)?

修改build.prop,找到下列代码:

persist.sys.ui_rotation=0

修改该值为旋转角度,可选值0,90,180,270。注意调整后开机LOGO(bootlogo.bmp)需要进行对应方向调旋转(长宽要不可超过屏幕分辨率),启动动画(bootanimation.zip)的图片需改为竖幅(不要进行旋转)。

如何默认隐藏状态栏或导航栏?

修改build.prop,找到下列代码:

persist.sys.nobar=0

修改该值为隐藏选项,0-不隐藏,1-只隐藏状态栏,2-只隐藏导航栏,3-都隐藏。