【转】DRM(三)libdrm库

【转】DRM(三)libdrm库,第1张

DRM是Linux内核层的显示驱动框架。它把显示功能封装成 open/close/ioctl 等标准接口,用户空间的程序调用这些接口,驱动设备,显示数据。

libdrm库封装了DRM driver提供的这些接口。通过libdrm库,程序可以间接调用DRM Driver。

DRM驱动会在/dev/dri下创建3个设备节点:

使用drmOpen()打开设备。它根据指定的name和busid,在上述三个设备中选择匹配的节点。

也可以使用open(),直接打开指定设备。

得到、设置capability。

下图显示各个组件,以及组件之间的关联关系。在DRM的函数名中称作资源(Resource)。如drmModeGetResources()。

每种资源的结构都定义了一个成员,唯一标识这个资源。如drmModeCrtc的crtc_id、drmModeConnector的connector_id、drmModeEncoder的encoder_id、drmModePlane的plane_id。

显示设备的设置、状态,保存在若干结构、变量中,如下图。如drmModeModeInfo,保存设备大小,刷新率。drmModeConnection保存连接状态。

drmModeRes结构保存DRM设备的资源集。

drmModeRes的成员fbs、crtcs、connectors、encoders是变长数组,数组长度保存在对应的变量,如count_fbs中。数组中保存的是资源ID。

函数drmModeGetResources()用于得到资源集。

根据资源 ID 得到对应的资源,包括connector、encoder、crtc。

与其他资源不同,plane资源不在drmModeRes结构中,而是保存在drmModePlaneRes结构。

成员planes是变长数组,数组长度保存在count_planes中。这里保存是plane的资源ID。

drmModeGetPlaneResources()得到plane资源集。

drmModeGetPlane() 根据Plane ID得到Plane。

drmModeProperty结构保存属性。

drmModeObjectProperties保存资源的属性集。

drmModeObjectGetProperties()得到资源属性集。

drmModeGetProperty()得到属性,drmModeObjectSetProperty()设置属性。

使用drmIoctl()创建、映射framebuffer。

使用Linux API函数 mmap(),将framebuffer映射到用户空间。

加入framebuffer(不是提交显示!)。

drmModeAtomicReq保存DRM请求。

drmModeAtomicCommit()提交请求。比如,将framebuffer保存的图像提交显示。

将framebuffer绑定到plane。程序更新framebuffer,就是更新plane。

Linux DRM API - NVIDIA

DRM示例工程 zizimumu/DRM_test

精简ROM里面APK对应的lib文件--搬运自【m小妹】

1、【system/app】

这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\app中。请机友熟悉了解其中的软件用途可以做删减与增加.看这里是否有你所需的程序,不需要的删除。你还可以添加你需要的默认安装软件,直接放进去就行了,注意不要用中文名。

app文件夹内软件详解:

(注意后缀为.odex,有的软件把它集成.apk里面去了,所以有的没有。如果app里面的软件有相应的.odex,做精简时也要一并删除掉。)

本帖隐藏的内容\system\app\AlarmClock.apk 闹钟

\system\app\AlarmClock.odex

\system\app\Browser.apk 浏览器

\system\app\Browser.odex

\system\app\Bugreport.apk Bug报告

\system\app\Bugreport.odex

\system\app\Calculator.apk 计算器

\system\app\Calculator.odex

\system\app\Calendar.apk 日历

\system\app\Calendar.odex

\system\app\CalendarProvider.apk 日历提供

\system\app\CalendarProvider.odex

\system\app\Camera.apk 照相机

\system\app\Camera.odex

\system\app\com.amazon.mp3.apk 亚马逊音乐

\system\app\Contacts.apk 联系人

\system\app\Contacts.odex

\system\app\DownloadProvider.apk 下载提供

\system\app\DownloadProvider.odex

\system\app\DrmProvider.apk DRM数字版权提供

\system\app\DrmProvider.odex

\system\app\Email.apk 电子邮件客户端

\system\app\Email.odex

\system\app\FieldTest.apk 测试程序

\system\app\FieldTest.odex

\system\app\GDataFeedsProvider.apk GoogleData提供

\system\app\GDataFeedsProvider.odex

\system\app\Gmail.apk Gmail电子邮件

\system\app\Gmail.odex

\system\app\GmailProvider.apk Gmail提供

\system\app\GmailProvider.odex

\system\app\GoogleApps.apk 谷歌程序包

\system\app\GoogleApps.odex

\system\app\GoogleSearch.apk 搜索工具

\system\app\GoogleSearch.odex

\system\app\gtalkservice.apk GTalk服务

\system\app\gtalkservice.odex

\system\app\HTMLViewer.apk HTML 查看器

\system\app\HTMLViewer.odex

\system\app\IM.apk 即使通讯组件包含MSN、yahoo 通

\system\app\ImCredentialProvider.apk

\system\app\ImProvider.apk

\system\app\ImProvider.odex

\system\app\Launcher.apk 启动加载器

\system\app\Launcher.odex

\system\app\Maps.apk 电子地图

\system\app\Maps.odex

\system\app\MediaProvider.apk 多媒体播放提供

\system\app\MediaProvider.odex

\system\app\Mms.apk 短信、彩信

\system\app\Mms.odex

\system\app\Music.apk 音乐播放器

\system\app\Music.odex

\system\app\MyFaves.apk T-Mobile MyFaves 程序

\system\app\MyFaves.odex

\system\app\PackageInstaller.apk apk安装程序

\system\app\PackageInstaller.odex

\system\app\Phone.apk 电话拨号器

\system\app\Phone.odex

\system\app\Settings.apk 系统设置

\system\app\Settings.odex

\system\app\SettingsProvider.apk 设置提供

\system\app\SettingsProvider.odex

\system\app\SetupWizard.apk 设置向导

\system\app\SetupWizard.odex

\system\app\SoundRecorder.apk 录音工具

\system\app\SoundRecorder.odex

\system\app\Street.apk 街景地图

\system\app\Street.odex

\system\app\Sync.apk 同步程序

\system\app\Sync.odex

\system\app\Talk.apk 语音程序

\system\app\Talk.odex

\system\app\TelephonyProvider.apk 电话提供

\system\app\TelephonyProvider.odex

\system\app\Updater.apk 更新程序

\system\app\Updater.odex

\system\app\Vending.apk 制造商信息

\system\app\Vending.odex

\system\app\VoiceDialer.apk 语音拨号器

\system\app\VoiceDialer.odex

\system\app\TtsService.apk好友动态通

\system\app\TtsService.apk语音合成

\system\app\Twitter.apk微博

\system\app\SuquashiInputMethod.apk自带输入法

2、【framework】文件夹下存放的是可以重复使用的框架类,这个文件夹下的framework-res.apk就是平常美化的重点。

system\framework文件列表详解

本帖隐藏的内容

\system\framework\am.jar

\system\framework\android.awt.jar AWT库

\system\framework\android.policy.jar

\system\framework\android.test.runner.jar

\system\framework\com.google.android.gtalkservice.jar GTalk服务

\system\framework\com.google.android.maps.jar 电子地图库

\system\framework\core.jar 核心库,启动桌面时首先加载这个

\system\framework\ext.jar

\system\framework\framework-res.apk

\system\framework\framework-tests.jar

\system\framework\framework.jar

\system\framework\input.jar 输入库

\system\framework\itr.jar

\system\framework\monkey.jar

\system\framework\pm.jar 包管理库

\system\framework\services.jar

\system\framework\ssltest.jar

\system\framework\svc.jar 系统服务

3、【bin】文件夹下存放的是一些shell和二进制程序,里面主要是Linux系统自带的组件(命令),不要做修改。

system\bin目录文件列表详解

本帖隐藏的内容

\system\bin\akmd

\system\bin\am

\system\bin\app_process 系统进程

\system\bin\dalvikvm Dalvik虚拟机宿主

\system\bin\dbus-daemon 系统BUS总线监控

\system\bin\debuggerd 调试器

\system\bin\debug_tool 调试工具

\system\bin\dexopt DEX选项

\system\bin\dhcpcd DHCP服务器

\system\bin\dumpstate 状态抓取器

\system\bin\dumpsys 系统抓取器

\system\bin\dvz

\system\bin\fillup

\system\bin\flash_image 闪存映像

\system\bin\hciattach

\system\bin\hcid HCID内核

\system\bin\hostapd

\system\bin\hostapd_cli

\system\bin\htclogkernel

\system\bin\input

\system\bin\installd

\system\bin\itr

\system\bin\linker

\system\bin\logcat Logcat日志打印

\system\bin\logwrapper

\system\bin\mediaserver

\system\bin\monkey

\system\bin\mountd 存储挂载器

\system\bin\netcfg 网络设置

\system\bin\ping Ping程序

\system\bin\playmp3 MP3播放器

\system\bin\pm 包管理器

\system\bin\qemud QEMU虚拟机

\system\bin\radiooptions 无线选项

\system\bin\rild RIL组件

\system\bin\sdptool

\system\bin\sdutil

\system\bin\service

\system\bin\servicemanager 服务管理器

\system\bin\sh

\system\bin\ssltest SSL测试

\system\bin\su**ceflinger 触摸感应驱动

\system\bin\svc 服务

\system\bin\system_server

\system\bin\telnetd Telnet组件

\system\bin\toolbox

\system\bin\wlan_loader

\system\bin\wpa_cli

\system\bin\wpa_supplicant

4、【etc】文件夹下保存的都是系统的配置文件,比如APN接入点设置等核心配置,一般我们需要改动的就是hosts文件。

system\etc文件列表详解

本帖隐藏的内容

\system\etc\apns-conf.xml APN接入点配置文件

\system\etc\AudioFilter.csv 音频过滤器配置文件

\system\etc\AudioPara4.csv

\system\etc\bookmarks.xml 书签数据库

\system\etc\dbus.conf 总线监视配置文件

\system\etc\dhcpcd

\system\etc\event-log-tags

\system\etc\favorites.xml 收藏夹

\system\etc\firmware 固件信息

\system\etc\gps.conf GPS设置文件

\system\etc\hcid.conf 内核HCID配置文件

\system\etc\hosts 网络DNS缓存

\system\etc\init.goldfish.sh

\system\etc\location 定位相关

\system\etc\mountd.conf 存储挂载配置文件

\system\etc\NOTICE.html 提示网页

\system\etc\permissions.xml 权限许可

\system\etc\pvplayer.conf

\system\etc\security

\system\etc\wifi WLAN相关组件

\system\etc\dhcpcd\dhcpcd-hooks

\system\etc\dhcpcd\dhcpcd-run-hooks

\system\etc\dhcpcd\dhcpcd.conf

\system\etc\dhcpcd\dhcpcd-hooks\01-test

\system\etc\dhcpcd\dhcpcd-hooks\20-dns.conf

\system\etc\dhcpcd\dhcpcd-hooks\95-configured

\system\etc\firmware\brf6300.bin

\system\etc\location\gps

\system\etc\location\gps\location 定位相关

\system\etc\location\gps\nmea GPS数据解析

\system\etc\location\gps\properties

\system\etc\security\cacerts.bks

\system\etc\security\otacerts.zip OTA下载验证

\system\etc\wifi\Fw1251r1c.bin

\system\etc\wifi\tiwlan.ini

\system\etc\wifi\wpa_supplicant.conf WPA验证组件

5、【fonts】顾名思义,就是字体文件,那个体积最大的就是中文字体文件,你可以替换自己喜欢的字体,DroidSansFallback.ttf是中文字体,DroidSans.ttf、DroidSans-Bold.ttf是英文。

6、【lib】文件夹下,存放了很多驱动文件,例如如何使得联系人按拼音排序的修改文件,那个也在lib下。

\system\lib目录文件列表详解:

本帖隐藏的内容

\system\lib\libaes.so

\system\lib\libagl.so

\system\lib\libandroid_runtime.so Android运行时库

\system\lib\libandroid_servers.so 系统服务组件

\system\lib\libaudio.so 音频处理

\system\lib\libaudioeq.so EQ均衡器

\system\lib\libaudioflinger.so 音频过滤器

\system\lib\libbluetooth.so 蓝牙组件

\system\lib\libc.so

\system\lib\libcamera.so 相机释放组件

\system\lib\libcameraservice.so 相机释放服务

\system\lib\libcorecg.so

\system\lib\libcrypto.so 加密组件

\system\lib\libctest.so

\system\lib\libcutils.so

\system\lib\libdbus.so

\system\lib\libdl.so

\system\lib\libdrm1.so DRM解析库

\system\lib\libdrm1_jni.so

\system\lib\libdvm.so

\system\lib\libexif.so

\system\lib\libexpat.so

\system\lib\libFFTEm.so

\system\lib\libGLES_CM.so

\system\lib\libgps.so

\system\lib\libhardware.so

\system\lib\libhgl.so

\system\lib\libhtc_ril.so

\system\lib\libicudata.so

\system\lib\libicui18n.so

\system\lib\libicuuc.so

\system\lib\liblog.so

\system\lib\libm.so

\system\lib\libmedia.so

\system\lib\libmediaplayerservice.so

\system\lib\libmedia_jni.so

\system\lib\libnativehelper.so

\system\lib\libnetutils.so

\system\lib\libOmxCore.so

\system\lib\libOmxH264Dec.so

\system\lib\libpixelflinger.so

\system\lib\libpvasf.so

\system\lib\libpvasfreg.so

\system\lib\libpvauthor.so

\system\lib\libpvcommon.so

\system\lib\libpvdownload.so

\system\lib\libpvdownloadreg.so

\system\lib\libpvmp4.so

\system\lib\libpvmp4reg.so

\system\lib\libpvnet_support.so

\system\lib\libpvplayer.so

\system\lib\libpvrtsp.so

\system\lib\libpvrtspreg.so

\system\lib\libqcamera.so

\system\lib\libreference-ril.so

\system\lib\libril.so

\system\lib\librpc.so

\system\lib\libsgl.so

\system\lib\libsonivox.so

\system\lib\libsoundpool.so

\system\lib\libsqlite.so

\system\lib\libssl.so

\system\lib\libstdc++.so

\system\lib\libsu**ceflinger.so

\system\lib\libsystem_server.so

\system\lib\libthread_db.so

\system\lib\libUAPI_jni.so

\system\lib\libui.so

\system\lib\libuti

7、【media】里面有一个压缩包是开机动画,audio文件夹下是系统铃声,这里你可以做增加、替换与删减。

\system\media\audio目录详解:

\system\media\audio\alarms 闹铃音

\system\media\audio\notifications 提示音

\system\media\audio\ringtones 铃声

\system\media\audio\ui 界面 *** 作事件音

8、【sd】这个是指手机系统中的app2sd的文件夹,也就是安装软件到SD卡上的文件夹

9、【usr】用户文件夹,包含共享、键盘布局、时间区域文件等。

system\usr目录文件列表详解:

本帖隐藏的内容

\system\usr\keychars

\system\usr\keylayout

\system\usr\share

\system\usr\srec

\system\usr\keychars\qwerty.kcm.bin

\system\usr\keychars\qwerty2.kcm.bin

\system\usr\keychars\trout-keypad-qwertz.kcm.bin

\system\usr\keychars\trout-keypad-v2.kcm.bin

\system\usr\keychars\trout-keypad-v3.kcm.bin

\system\usr\keychars\trout-keypad.kcm.bin

\system\usr\keylayout\h2w_headset.kl

\system\usr\keylayout\qwerty.kl

\system\usr\keylayout\trout-keypad-qwertz.kl

\system\usr\keylayout\trout-keypad-v2.kl

\system\usr\keylayout\trout-keypad-v3.kl

\system\usr\keylayout\trout-keypad.kl

\system\usr\share\bsk

\system\usr\share\zoneinfo

\system\usr\share\bsk\V_FD_speed_101.bsk

\system\usr\share\bsk\V_FD_std_101.bsk

\system\usr\share\zoneinfo\zoneinfo.dat

\system\usr\share\zoneinfo\zoneinfo.idx

\system\usr\srec\config

\system\usr\srec\config\en.us

\system\usr\srec\config\en.us\baseline.par

\system\usr\srec\config\en.us\baseline11k.par

\system\usr\srec\config\en.us\baseline8k.par

\system\usr\srec\config\en.us\dictionary

\system\usr\srec\config\en.us\g2p

\system\usr\srec\config\en.us\grammars

\system\usr\srec\config\en.us\models

\system\usr\srec\config\en.us\dictionary\basic.ok

\system\usr\srec\config\en.us\dictionary\cmu6plus.ok.zip

\system\usr\srec\config\en.us\dictionary\enroll.ok

\system\usr\srec\config\en.us\g2p\en-US-ttp.data

\system\usr\srec\config\en.us\grammars\VoiceDialer.g2g

\system\usr\srec\config\en.us\models\generic.swiarb

10、【xbin】这个更加不要去修改了。

11、【build.prop】这个文件是可以安全修改的(但是不要乱改),一般咱们只要改个版本号、与默认语言、与时区就可以啦。(修改尊重作者!)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12043791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存