硬件抽象层模块文件的命名规范定义在hardware/libhardware/hardware.c文件中,如下所示。

hardware/libhardware/hardware.c

01 /**

02  * There are a set of variant filename for modules. The form of the filename

03  * is ".variant.so" so for the led module the Dream variants

04  * of base "ro.product.board", "ro.board.platform" and "ro.arch" would be:

05  *

06  * led.trout.so

07  * led.msm7k.so

08  * led.ARMV6.so

09  * led.default.so

10  */

11

12 static const char *variant_keys[] = {

13      "ro.hardware",  /* This goes first so that it can pick up a different

14                        file on the emulator. */

15     "ro.product.board",

16     "ro.board.platform",

17     "ro.arch"

18 };

这段代码和注释的意思是,硬件抽象层模块文件的命名规范为.variant.so”,其中,MODULE_ID表示模块的ID,variant表示四个系统属性ro.hardware、ro.product.board、ro.board.platform和ro.arch之一。系统在加载硬件抽象层模块时,依次按照ro.hardware、ro.product.board、ro.board.platform和ro.arch的顺序来取它们的属性值。如果其中的一个系统属性存在,那么就把它的值作为variant的值,然后再检查对应的文件是否存在,如果存在,那么就找到要加载的硬件抽象层模块文件了;否则,就继续查找下一个系统属性。如果这四个系统属性都不存在,或者对应于这四个系统属性的硬件抽象层模块文件都不存在,那么就使用“.default.so”来作为要加载的硬件抽象层模块文件的名称。

系统属性ro.hardware是在系统启动时,由init进程负责设置的。它首先会读取/proc/cmdline文件,检查里面有没有一个名称为androidboot.hardware的属性,如果有,就把它的值作为属性ro.hardware的值;否则,就将/proc/cpuinfo文件的内容读取出来,并且将里面的硬件信息解析出来,即将Hardware字段的内容作为属性ro.hardware的值。例如,在Android模拟器中,从/proc/cpuinfo文件读取出来的Hardware字段内容为goldfish,于是,init进程就会将属性ro.hardware的值设置为“goldfish”。系统属性ro.product.board、ro.board.platform和ro.arch是从/system/build.prop文件读取出来的。文件/system/build.prop是由编译系统中的编译脚本build/core/Makefile和Shell脚本build/tools/buildinfo.sh生成的,有兴趣的读者可以研究一下这两个文件,这里就不深入分析了。怎么去获取现成机器的ro.hardware值呢?

答:使用adb shell就可以查看ro.hardware的值是什么。在adb shell中执行以下命令就可以了:shell@android:/ # getprop ro.hardware //以下是打印结果

getprop ro.hardware

mt6589//mt6589就是要找的值了

以下是手机查询的结果:

shell@android:/ # getprop ro.hardware

getprop ro.hardware

mt6589

shell@android:/ # getprop ro.product.board

getprop ro.product.board

MTK6589T

shell@android:/ # getprop ro.board.platform

getprop ro.board.platform

shell@android:/ # getprop ro.arch

getprop ro.arch

shell@android:/ #

android获取ro._怎么去获取现成机器的ro.hardware值相关推荐

  1. java获取天气预报_使用java获取未来7天天气信息,可用于android

    环境:eclipsse, jdk1.6, 没有使用第三方的包,都是JDK有的. 项目结构如下: 1.获取天气预报的类 WeatherUtil.java [java] package com.siqi. ...

  2. python获取节假日_用python获取表格中的节假日起始日期

    开发中遇到关于日期(节假日)的问题.具体情况:业务每天都会在系统中下载10张表,下载规则是今天下昨天的数据,意思就是下载时的查询条件日期那一栏应该写昨天的日期,但是有一个小问题,遇到周末就不能下昨天的 ...

  3. python自动获取天气_用python获取天气数据,并作定时播报

    原标题:用python获取天气数据,并作定时播报 数据挖掘入门与实战 公众号: datadw 思路 1.调用和风天气的API,获取天气数据 2.用百度语音API,将天气数据合成语音 3.用树莓派每天早 ...

  4. ssas从mysql获取数据库_通过AMO获取SQL Server SSAS信息

    Analysis Management Objects (AMO) 是SQL Server SSAS的对象模型库,通过它可以方便的对SSAS里的对象进行访问及控制,包括Cube,DataSource, ...

  5. 公众号jdk 获取手机号_怎样快速获取使用国庆节公众号文章的素材和模板

    国庆节又称十一.国庆节.国庆日.中国国庆节.国庆黄金周.自1950年起,每年的10月1日,为中华人民共和国宣告成立的日子,即国庆日.峥嵘岁月,71年风雨兼程.终将迎来历史曙光.我们也马上迎来了国庆节小 ...

  6. 如何用python获取文献_[python]eutilities获取文献题录

    之前这篇文章(路人乙小明:用entrez eutilities来查pubmed文献)提过如何利用entrez eutilities查找文献.当时在最后面获取论文摘要和题录的部分直接用了text的模式. ...

  7. ios 高德挪动地图获取经纬度_高德地图获取地理位置经纬度并将经维度转化为详细地址信息...

    浏览器定位 经纬度 116.396574, 39.992706 的地理编码结果: /*************************************** 由于Chrome.IOS10等已不再 ...

  8. android获取ro._修改Android序列号(Serial Number)

    文档说明 本文档以SC806-CN-00-71(msm8909平台 Android7系统)为例,描述如何修改Android Serial Number. Serial Number说明 菜单 Abou ...

  9. 百度搜索效果(页面传来数据地址,由服务器去获取)

    百度搜索效果(页面传来数据地址,由服务器去获取): <!DOCTYPE html> <html><head><meta charset="UTF-8 ...

最新文章

  1. 转:vc中如何通过http的post方式上传文件
  2. 纽约大学计算机和信息科学专业排名,纽约大学计算机科学与信息系统世界排名2018年最新排名第33(QS世界排名)...
  3. Activiti源码 之工厂模式
  4. [Java基础]数据输入
  5. codeforces1472 G. Moving to the Capital
  6. nginx只能访问80端口_nginx 访问不了非80端口
  7. Tomcat下部署多个项目
  8. ICPC North Central NA Contest 2017 B - Pokemon Go Go
  9. 如何查询redhat的版本信息
  10. EBSD测试常见的问题及解答(二)
  11. JS 下拉菜单内容交换
  12. java servlet文件下载_Servlet 实现文件下载
  13. parcel + three.js
  14. Java查漏补缺之Java8新特性
  15. Latex 设置页眉与正文顶部距离
  16. STM32使用RL_TCPNET网络协议栈的开发
  17. 四大杀毒软件网友趣评
  18. 自动驾驶传感器平台盘点
  19. OpenHarmony源码
  20. Infiniband vs 以太网Ethernet 对比

热门文章

  1. java从屏幕输入数据_java键盘输入/屏幕输出练习
  2. [power bi]calculate
  3. grails 呈现html ckeditor
  4. 【04Vue3 目录结构】VUE3目录结构概述结构详解目录结构的作用注意事项
  5. springboot美容院预约管理系统mybatis java
  6. 我肚子好饿 早知道不学java了_肚子好饿的说说心情短语
  7. jsp wap页面手机浏览器自适屏大小
  8. 软考-架构师-第三章-数据库系统 第八节 数据库设计的基本步骤(读书笔记)
  9. 信用评分之一---P2P的逾期、坏账与违约定义
  10. 2022年最新微信小程序支付后端代码通俗易懂一篇文章让你了解微信支付