文章目录

  • 开发平台基本信息
  • 问题描述
  • 解决方法
    • 去除默认dpi限制

开发平台基本信息

芯片: 高通SDM450
版本: Android 9.0
kernel: msm-4.9

问题描述

正常我们要修改屏幕的DPI,最简单的方法就是在编译的mk里面,给ro.sf.lcd_density这个属性赋值自己想设置的DPI。但是,我们有一款机器作为微信人脸支付硬件厂商,需要对接各个软件厂商,而不同的客户软件可能需要定制不同的DPI,因为ro属性不允许重写,那意味着即使不同厂商定制仅有dpi差别,也得分不同的固件,这样维护起来会特别麻烦;所以,就需要可以通过广播或者其他途径设置,使得dpi可动态设置。

解决方法

去除默认dpi限制

控制屏幕dpi的实际上有两个属性,ro.sf.lcd_density跟vendor.display.lcd_density。假如编译设置了ro.sf.lcd_density,那么就无法再改变屏幕的dpi,所以,要动态设置的前提是必须保证没有默认设置ro.sf.lcd_density。然后就是vendor.display.lcd_density,从代码可以看出,这个值设置了也是没有的,因为,每次开机的时候都会重新设置,默认设置的值是与硬件屏幕宽度相关。所以,要去掉这个设定,如果设置了自定义的dpi,则不重新设置vendor.display.lcd_density。

--- a/device/qcom/common/rootdir/etc/init.qcom.early_boot.sh
+++ b/device/qcom/common/rootdir/etc/init.qcom.early_boot.sh
@@ -68,24 +68,36 @@ elselog -t DRM_BOOT -p w "file: '$vbfile' or perms doesn't exist"fi+tplcddensity=`getprop persist.custom.lcd_density`
+function set_density_by_fb() {#put default density based on width
-    if [ -z $fb_width ]; then
-        setprop vendor.display.lcd_density 320
-    else
-        if [ $fb_width -ge 1600 ]; then
-           setprop vendor.display.lcd_density 640
-        elif [ $fb_width -ge 1440 ]; then
-           setprop vendor.display.lcd_density 560
-        elif [ $fb_width -ge 1080 ]; then
-           setprop vendor.display.lcd_density 480
-        elif [ $fb_width -ge 720 ]; then
-           setprop vendor.display.lcd_density 320 #for 720X1280 resolution
-        elif [ $fb_width -ge 480 ]; then
-            setprop vendor.display.lcd_density 240 #for 480X854 QRD resolution
+       echo $tplcddensity | grep -q '[^0-9]'
+    n1=$?
+
+    echo $tplcddensity
+    if [ -z $tplcddensity ]; then
+        if [ -z $fb_width ]; then
+            setprop vendor.display.lcd_density 320else
-            setprop vendor.display.lcd_density 160
+            if [ $fb_width -ge 1600 ]; then
+               setprop vendor.display.lcd_density 640
+            elif [ $fb_width -ge 1440 ]; then
+               setprop vendor.display.lcd_density 560
+            elif [ $fb_width -ge 1080 ]; then
+               setprop vendor.display.lcd_density 480
+            elif [ $fb_width -ge 720 ]; then
+               setprop vendor.display.lcd_density 320 #for 720X1280 resolution
+            elif [ $fb_width -ge 480 ]; then
+                setprop vendor.display.lcd_density 240 #for 480X854 QRD resolution
+            else
+                setprop vendor.display.lcd_density 240
+            fifi
+    elif [ $n1 -eq 1 ];then
+        setprop vendor.display.lcd_density $tplcddensity
+    else
+        setprop vendor.display.lcd_density 240fi}

注:可以通过adb设置persist.custom.lcd_density属性,然后重启设备设备在启动的时候会执行sh脚本,然后就设置的值写入到vendor.display.lcd_density中。

[高通SDM450][Android9.0]屏幕显示DPI可动态配置相关推荐

  1. [高通SDM450][Android9.0]屏蔽开放WIFi以及WIFI信号有个x导致无法上网

    文章目录 开发平台基本信息 问题描述 解决方法 1.解决WIFI信号有个x的问题 2.屏蔽开放WIFi 开发平台基本信息 芯片: 高通SDM450 版本: Android 9.0 kernel: ms ...

  2. [高通SDM450][Android9.0]刷机后RTC时钟不生效问题

    文章目录 开发平台基本信息 问题描述 解决方法 1.写入RTC时钟添加增加开机广播 开发平台基本信息 芯片: 高通SDM450 版本: Android 9 kernel: msm-4.19 问题描述 ...

  3. [高通SDM450][Android9.0]adb无法进行remount的解决方案

    文章目录 开发平台基本信息 问题描述 解决方法 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 在调试开发的时候,执行remount可 ...

  4. [高通SDM450][Android9.0]双屏异显、双屏异触

    文章目录 开发平台基本信息 问题描述 解决方法 双屏异显 双屏异触 延伸扩展 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 公司有一 ...

  5. [高通SDM450][Android9.0]禁止电话、短信呼入

    文章目录 开发平台基本信息 问题描述 解决方法 禁止电话.短信呼入 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 公司有一款设备,作 ...

  6. [高通SDM450][Android9.0]CTA认证--去掉录音功能

    文章目录 开发平台基本信息 问题描述 解决方法 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 设备在进行入网认证的时候,公司为了尽快 ...

  7. [高通SDM450][Android9.0]CTA认证--去除某些应用开机使用定位权限

    文章目录 开发平台基本信息 问题描述 解决方法 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 设备在进行入网认证,实验室在测试的时候 ...

  8. [高通SDM450][Android9.0]CTA认证--去掉彩信、短信、通话功能

    文章目录 开发平台基本信息 问题描述 解决方法 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 与去掉录音功能同理,设备在进行入网认证 ...

  9. [高通SDM450][Android9.0]CTA认证--去掉GPS功能

    文章目录 开发平台基本信息 问题描述 解决方法 开发平台基本信息 芯片: SDM450 版本: Android 9.0 kernel: msm-4.9 问题描述 与去掉录音功能同理,设备在进行入网认证 ...

最新文章

  1. libcurl远程获取文件大小源码
  2. RHEL7系统管理之内核管理
  3. python 静态方法 类方法 的作用_Python实例方法、类方法、静态方法的区别与作用详解...
  4. 湖南科技大学c语言程序设计b,2017年湖南科技大学计算机科学与工程学院826C语言程序设计与数据结构综合之数据结构考研题库...
  5. 今天开始学模式识别与机器学习Pattern Recognition and Machine Learning 书,章节1.1,多项式曲线拟合(Polynomial Curve Fitting)
  6. python边缘检测代码_Python中的边缘检测
  7. Spring事务 Transaction rolled back because it has been marked as rollback-only
  8. Linux shell脚本基础学习详细介绍(完整版)
  9. Regulator的下载地址
  10. 微软CEO纳德拉开讲,2016微软开发者峰会在京召开
  11. mysql语法题_mysql数据库题语法练习
  12. java exec source报错_Mac 下maven路径报错的坑
  13. html表单怎么设置编码,form 表单 设置编码和页面编码
  14. 大数据_MapperReduce_与hive的集成_使用hive数据分析工具_关联操作hbase---Hbase工作笔记0025
  15. fedora16 解码方案
  16. 【微机实验系列】标准输入输出系统
  17. mpvue小程序实现老虎机
  18. Win10用注册表开启任务栏透明
  19. 超牛无损图片放大神器PhotoZoom
  20. SharePoint使用CamlQuery查询人员和组

热门文章

  1. Oracle合作伙伴会员资格
  2. 图文深入解析 JAVA 读写锁,为什么读锁套写锁会死锁,反过来却不会?
  3. APP乱象丛生致手机危机四伏
  4. 烟气分析仪中检测O2、CO、SO2、NO2和NO的传感器
  5. JavaScript省市县三级联动-含源代码
  6. 苹果怎么使用计算机,查找我的iphone怎么用 查找我的iPhone电脑版使用教程
  7. 多边形内角和c语言编程,八年级上册数学多边形的内角和精选练习题
  8. python计算器小程序源码_python代码编写计算器小程序
  9. 如何用计算机算幂函数,怎么快速打开电脑上的计算器
  10. 文件太大无法复制到U盘的解决方法教程