4.4走framework MboxOutputModeService
9.0走systemcontrol
对应的切点:/sys/class/amhdmitx/amhdmitx0/avmute
往其写入 1,表示进行 SET_AVMUTE
往其写入-1,表示进行 CLEAR_AVMUTE
输入命令 cat /sys/module/hdmitx/parameters/hdmi_authenticated,输出大于 0 为成功,小于等于 0 为失败
输入命令 cat /sys/class/amhdmitx/amhdmitx0/hdcp_ksv_info,输出如下:
如果出现 AKSV 为 invalid 的情况,请检查 HDCP key 烧录是否有误。
如果出现 BKSV 为 invalid 的情况,请检查歉收端是否为合法的带有 HDCP key 的设备。
输入命令 cat /sys/class/amhdmitx/amhdmitx0/hdcp_ksv_info,出现以下打印表示检测成功,否则为检测失败
输入命令 cat /sys/class/amhdmitx/amhdmitx0/hpd_state
0: 未连接电视
1:已连接电视
输入命令 cat /sys/class/display/mode,输出当前分辨率(如:720p50hz)
输入命令 cat /sys/class/amhdmitx/amhdmitx0/disp_mode,也可查看分辨率,显示的是 vic 编号,其对应关系:
VIC: 0 –> HDMI_Unkown
VIC: 2 –> 480p
VIC: 4 –> 720p
VIC: 5 –> 1080i
VIC: 6 –> 480i
VIC: 16 –> 1080p
VIC: 17 –> 576p
VIC: 19 –> 720p50
VIC: 20 –> 1080i50
VIC: 21 –> 576i
VIC: 31 –> 1080p50
VIC: 93 –> 4k2k24hz
VIC: 94 –> 4k2k25hz
VIC: 95 –> 4k2k30hz
VIC: 98 –> smpte, 24hz
输入 echo 1080p > /sys/class/display/mode
cat /sys/class/amhdmitx/amhdmitx0/edid
cat /sys/class/amhdmitx/amhdmitx0/disp_cap
以下为输出(其中带星号的为最佳分辨率):
480i
576i
576p
720p
1080i
1080p
720p50hz*
1080i50hz
1080p50hz
cat /sys/class/display/mode
frameworks/base/core/java/android/app/MboxOutputModeManager.java
frameworks/base/services/java/com/android/server/MboxOutputModeService.java
实际上最终都是通过 MboxOutputModeService 类实现对 HDMI 制式的设置。
1. setDisplayMode()
Function: 设置当前屏幕的显示比例
Param: "4:3"
"16:9"
2. setScreenModeValue()
Function: 设置屏幕的显示模式
Param: "full": 全屏
"normal" : 正常模式
"16_9": 16:9
"4_3" : 4:3
3. GetScreenModeValue()
Function: 获取当前屏幕的输出模式。
Param: 无
4. setHdrMode()
Function: 设置显示的 HDR 模式
Param: "0":关闭 HDR
"1":打开 HDR
"2": auto 模式
5. getHdrMode()
Function:获取 HDR 模式
Param:无
6. setColorspaceMode()
Function: 设置显示的颜色空间和色深
Param: "Auto"
"Y420 8bit"
"Y420 10bit"
"Y422 12bit"
7. getColorspaceMode()
Function: 获取当前显示的颜色空间和色深
Param: 无
8. getSupportColorSpaceList()
Function: 获取当前显示设备支持的颜色空间和色深列表
Param: 无
9. getSupportResoulutionList()
Function: 获取当前显示设备支持的分辨率列表
Param:无
10. getBestMatchResolution()
Function: 获取当前显示设备最佳的分辨率
Param:无
11. setOutputMode()
Function:设置当前显示设备的显示模式
Param:"cvbs"
"720p60hz"
"1080p60hz"
获取当前显示设备支持的颜色空间及色深的节点:
cat /sys/class/amhdmitx/amhdmitx0/dc_cap
获取当前显示设备支持的分辨率节点:
cat /sys/class/amhdmitx/amhdmitx0/disp_cap
/sys/class/amhdmitx/amhdmitx0/hdcp_ver ro //RX端支持的HDCP version
/sys/class/amhdmitx/amhdmitx0/hdcp_lstore ro //本机含有的HDCP KEY类型
/sys/class/amhdmitx/amhdmitx0/disp_cap ro //RX支持的分辨率能力
/sys/class/amhdmitx/amhdmitx0/vesa_cap ro //RX端支持的VESA模式
/sys/class/amhdmitx/amhdmitx0/dc_cap ro //RX端支持的色深,色彩空间能力
/sys/class/amhdmitx/amhdmitx0/hdr_cap ro //RX端支持的hdr能力
/sys/class/amhdmitx/amhdmitx0/dv_cap ro //RX端支持的dolbyVersion能力
/sys/class/amhdmitx/amhdmitx0/hdcp_mode rw //{1|2}
/sys/class/amhdmitx/amhdmitx0/hdcp_ctrl wo //hdcp控制 {stop14|stop22}
/sys/module/hdmitx20/parameters/hdmi_authenticated ro //hdmi认证
/sys/class/amhdmitx/amhdmitx0/avmute wo //hdmi 声音图像{1 disable|-1 enable}
/sys/class/display/mode rw //读写分辨率模式
/sys/class/video/axis rw //播放器显示窗口大小坐标
/sys/class/graphics/fb0/window_axis rw //页面播放大小坐标
/sys/class/amhdmitx/amhdmitx0/hpd_state ro //HDMI线的拨插动作 {0未连接|1已连接}
/sys/class/amhdmitx/amhdmitx0/phy w //{0 disable| 1 enable}
echo bist3840 > /sys/class/amhdmitx/amhdmitx0/debug
echo bist1920 > /sys/class/amhdmitx/amhdmitx0/debug
echo bist1280 > /sys/class/amhdmitx/amhdmitx0/debug
echo bist720 > /sys/class/amhdmitx/amhdmitx0/debug
echo bistoff > /sys/class/amhdmitx/amhdmitx0/debug
关 pq
echo vpp_pq disable > /sys/class/amvecm/debug
echo 0 > /sys/module/am_vecm/parameters/probe_ok
开 pq
echo vpp_pq enable > /sys/class/amvecm/debug
echo 1 > /sys/module/am_vecm/parameters/probe_ok
//sr{0关|1开}
echo 0 > /sys/class/video/sr
echo 1 > /sys/class/video/sr
//bypass DI
echo 1 > /sys/module/di/parameters/bypass_all
//{0 disable| 1 enable}
echo 0 > /sys/class/amhdmitx/amhdmitx0/phy
echo 1 > /sys/class/amhdmitx/amhdmitx0/phy
//声音图像{1 disable|-1 enable}
echo 1 >/sys/class/amhdmitx/amhdmitx0/avmute
echo -1 >/sys/class/amhdmitx/amhdmitx0/avmute
//{stop14|stop22}
echo stop14 > /sys/class/amhdmitx/amhdmitx0/hdcp_ctrl
echo stop22 > /sys/class/amhdmitx/amhdmitx0/hdcp_ctrl
//{1|2}
echo 1 > /sys/class/amhdmitx/amhdmitx0/hdcp_mode
echo 2 > /sys/class/amhdmitx/amhdmitx0/hdcp_mode
$ps -A |grep -i hdcp
$kill -9 hdcp pid
$hdcp bin文件&
echo null > /sys/class/display/mode
echo 444,8bit > /sys/class/amhdmitx/amhdmitx0/attr
echo 1080p60hz > /sys/class/display/mode