IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> linux内核dts 设置android 上层属性的方法 -> 正文阅读

[移动开发]linux内核dts 设置android 上层属性的方法

linux内核dts 设置android 上层属性的方法

不同的board 一般有不同的dts,有时上层需要不同的属性来标识做判断
这时候顺便把属性在dts 设置了上层就不用设置属性,比较方便。

在内核对应dts增加节点

     prop_config{
      status = "okay";
       lcd_width{
         property_name="lcd_primary_width";
         property_value="1200";
      };
     lcd_height{
          property_name="lcd_primary_height";
          property_value="1920";
      };
     };

在android system/core/init/init.cpp 增加代码

static char prop_config_dir[] = "/sys/firmware/devicetree/base/prop_config/";
static char *get_dts_char(char* path,char *buff) {
        FILE *fp = fopen(path, "r");

        while (fgets(buff,100,fp)) {
        }

        fclose(fp);
        return buff;
}
static void prop_config_set(void)
{
   DIR *dir;
   struct dirent *ptr;
   char pro_name[150];
   char pro_value[150];
   char buff_name[100];
   char buff_value[100];
   PLOG(ERROR) << "set prop-config start";
   if ((dir=opendir(prop_config_dir)) == NULL){
      PLOG(ERROR) <<"open dt prop-config dir error";
         return;
   }
   while ((ptr=readdir(dir)) != NULL){
       if(strcmp(ptr->d_name,".")==0 || strcmp(ptr->d_name,"..")==0)
           continue;
       if(ptr->d_type != DT_DIR) continue;
       sprintf(pro_name, "/sys/firmware/devicetree/base/prop_config/%s/property_name", ptr->d_name);
       sprintf(pro_value, "/sys/firmware/devicetree/base/prop_config/%s/property_value", ptr->d_name);
       property_set(get_dts_char(pro_name,buff_name),get_dts_char(pro_value,buff_value));

   }
    closedir(dir);
}

在system/core/init/init.cpp --> main() 中调用prop_config_set

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:56:17  更:2021-07-28 07:57:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 20:24:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码