问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请教,修改ro.sf.lcd

发布网友 发布时间:2022-05-06 10:27

我来回答

1个回答

热心网友 时间:2022-06-29 18:53

在kernel里面kernel/drivers/video/fbsysfs.c会导出数据/sys/class/graphics/fb0/virtual_size

在Y:\LA.BR.1.2.4-05310-8x16.0\device\qcom\common\init\init_msm8916.c 中获取virtual_size值,根据不同的屏幕大小设置ro.sf.lcd_density。
其中PROP_LCDDENSITY的值在device/qcom/common/init/init_msm.h中定义:

[cpp] view plain copy
#define VIRTUAL_SIZE "/sys/class/graphics/fb0/virtual_size"
#define BUF_SIZE 64

void init_msm_properties(unsigned long msm_id, unsigned long msm_ver, char *board_type)
{
char platform[PROP_VALUE_MAX];
int rc;
unsigned long virtual_size = 0;
char str[BUF_SIZE];

UNUSED(msm_id);
UNUSED(msm_ver);

rc = property_get("ro.board.platform", platform);
if (!rc || !ISMATCH(platform, ANDROID_TARGET)){
return;
}

rc = read_file2(VIRTUAL_SIZE, str, sizeof(str));
if (rc) {
virtual_size = strtoul(str, NULL, 0);
}

if(virtual_size >= 1080) {
if (ISMATCH(board_type, "SBC")) {
property_set(PROP_LCDDENSITY, "240");
property_set(PROP_QEMU_NAVKEY, "0");
} else
property_set(PROP_LCDDENSITY, "480");
} else if (virtual_size >= 720) {
// For 720x1280 resolution
property_set(PROP_LCDDENSITY, "320");
} else if (virtual_size >= 480) {
// For 480x854 resolution QRD.
property_set(PROP_LCDDENSITY, "240");
} else
property_set(PROP_LCDDENSITY, "320");

if (msm_id >= 239 && msm_id <= 243) {
property_set("media.msm8939hw", "1");
}

if (msm_id >= 268 && msm_id <= 271) {
property_set("media.msm8929hw", "1");
}

if (msm_id == 206) {
property_set("vidc.enc.narrow.searchrange", "0");
}
}

kernel/drivers/video/fbsysfs.c

static ssize_t show_virtual(struct device *device,
struct device_attribute *attr, char *buf)
{
struct fb_info *fb_info = dev_get_drvdata(device);
return snprintf(buf, PAGE_SIZE, "%d,%d\n", fb_info->var.xres_virtual,
fb_info->var.yres_virtual);
}

在Msm_fb.c (drivers\video\msm) 定义fb_info->var.xres_virtual

var->xres_virtual = panel_info->xres;
var->yres_virtual = panel_info->yres * mfd->fb_page +
((PAGE_SIZE - remainder)/fix->line_length) * mfd->fb_page;
所以ro.sf.lcd_density最终是有分辨率决定的。
init_msm_properties函数被谁调用了呢?暂时没找到

为了更加便捷的修改ro.sf.lcd_density,后面做了一个实验:
1、 在android系统运行的时候通过adb 修改/system/build.prop文件,添加一行:
ro.sf.lcd_density=480
后重启,发现字体变大了!
2、 所以通过修改/system/build.prop是有效的,后面网上查了一下build.prop的过程,它是由android编译系统生成的文件,主要属性配置来源与三个方面:
① build/tools/buildinfo.sh执行脚本,并输出到build.prop
② 把$(TARGET_DEVICE_DIR)/system.prop的内容追加到build.prop中
③ 收集ADDITIONAL_BUILD_PROPERTIES中的属性,追加到build.prop中。

3、 通过修改
device\qcom\msm8916_64_slm755_meig_02\system.prop
添加一行:
ro.sf.lcd_density=480,编译系统 make –j8
4、 刚开始
out\target\proct\msm8916_64_slm755_meig_02\system\build.prop
文件中出现了ro.sf.lcd_density=480可是后面又变回到原来的样子,ro.sf.lcd_density=480消失了!!不解!
5、 后来发现是因为在out\target\proct\msm8916_64_slm755_meig_02\system\下面还有一个
文件:build.prop.bakforspec

这个鬼东西一直会把修改后的build.prop强制还原到以前的状态,坑爹!后来把它删掉,build.prop中新增了修改项:ro.sf.lcd_density=480

所以综上:一般修改属性,或者添加属性,可以修改一下两个文件:

1、 build/target/proct/core_base.mk

2、$(TARGET_DEVICE_DIR)/system.prop
(device\qcom\msm8916_64_slm755_meig_02\system.prop)

在编译system的时候会更新到build.prop中!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 用gcc&#47;g++如何编译android工程中的.c&#47;.cpp程序,如何查看android工程师.c&#47;.cpp文件需要的依赖及如何解决 unix 编写一个脚本 搜索东西的 ksh和bash的异同,持续更新 如何用shell获取linux目录下的文件名 那个shell编程是在 linux中vi 什么类型的文件。以前只知道.C和.cpp文件 SHELL脚本中的通配符问题 linux下C++的文件链接问题 在Linux中运行cpp.sh,为什么说command not found 数字2309代表爱情意思 我迟早会让你承认你是我老婆 用数字怎么说? 怎么通过实名认证找回QQ 哪位可以提供绩效考核,和员工手册! 员工手册中的奖罚制度和绩效考核制度有冲突怎么办? 郭文煊的参加比赛 你曾经有过哪些超级失败的演讲? 跪求校园搞笑励志小品(大神们帮帮忙) 超级大学生 赵本山力挺校园小品王 房子台词 梦到在河里游泳捞粉条 &#39;他手捧鲜红的获奖证书,泪水涌出了眼眶。’请你跟据提供的作文结尾,展开想象编一个故事, 全国百强旅行社怎么考核 小学生端午节与儿童节如何放假放假??? 端午节学校放假问题 端午节放假问题! 端午怎么放假 端午节时法定节假日吗?国家规定有没有放假的? 翻天覆地害百性、相争二九来;猜一动物 十二生肖里什么肖能翻天覆地? 飞利浦剃须刀s7530/43有充电器吗?为什么我买回来发现没有充电器 飞利浦剃须刀7370充电器 毕业生在笔试中应该注意哪些问题?成功面试的原则有哪些 面试、笔试大概会有哪些问题?帮帮忙 了笔试,面试的时候一般问什么问题 面试和笔试一般考什么,有哪些要注意的 有没有游戏测试的面试笔试题分享一下? 求职面试或笔试开放性问题的经典问答哪能找到? 大学记者社团面试,笔试的问题及答案 我想问问湛江宝钢面试和笔试都问些什么问题? 面试之前的笔试题怎么做? 去面试的时候,笔试一般都是考什么的? 关于华为eudemon防火墙的配置都是什么意思?