如何在空白服务器上搭建网站,pc主页网站建设,网络服务对人们生活的影响,网站备案在哪里1.背景
最近在TV开发中遇到一个问题#xff1a;如何判断设备烧录过HDCP KEY的问题#xff0c;由于MTK的官方接口返回值并不准确#xff0c;只能判断2.2是否烧录#xff0c;不能准确判断1.4是否烧录过#xff0c;因为HDCP 的KEY有两个#xff0c;分别是1.4和2.2#xff…1.背景
最近在TV开发中遇到一个问题如何判断设备烧录过HDCP KEY的问题由于MTK的官方接口返回值并不准确只能判断2.2是否烧录不能准确判断1.4是否烧录过因为HDCP 的KEY有两个分别是1.4和2.2为了兼容更多用户的设备这两个文件都要烧录成功MTK的接口如下
if (MtkTvFApiSystemWrapper.getInstance().checkFile(vendor/tvcertificate/hdcp_key.bin)|| MtkTvFApiSystemWrapper.getInstance().checkFile(vendor/tvcertificate/hdcp2_key.bin)) {// Toast.makeText(getActivity(), HDCP KEY已烧录请勿重复操作, Toast.LENGTH_LONG);hasHdcpKeytrue;}
为了能准确判断是否烧录了这两个文件只能换其他方法
后来经测试发现烧录HDCP KEY文件后在 vendor/tvcertificate/tee路径下会生成两个文件分别是0和1所以只要能够获取该路径下的文件列表就可以判断是否烧录过HDCP KEY文件了。
2.获取./tee下的文件列表 public static final String HDCP_TEEvendor/tvcertificate/tee;/*** 判断 ./tee 路径下有没有名为0和1的文件* return*/public static boolean isHasHdcp14() {File fileTee new File(HDCP_TEE);File[] listFiles fileTee.listFiles();String[] arrayString fileTee.list();boolean hasHdcp14 false;if (arrayString null || arrayString.length 0) {Log.d(TAG, isHasHdcp14: list null);return false;} else {ListString nameList Arrays.asList(arrayString);for (int i 0; i nameList.size(); i) {Log.d(TAG, isHasHdcp14: list nameList.get(i).toString());if (nameList.contains(0) nameList.contains(1)) {hasHdcp14 true;Log.d(TAG, isHasHdcp14: true);}}}return hasHdcp14;}
因为没有权限读取这个文件所以返回为null
3.给指定文件权限
要修改init.mt5862.rc文件mt5862是平台名称
这个文件有执行顺序我们选择在开机后修改权限这样用户如果在开机后立刻去系统设置中检查HDCP KEY是否烧录也没有问题因为已经拿到权限了
on boot# create the coredump file...chmod 666 /vendor/tvcertificate/teechmod 666 /vendor/tvcertificate/tee/0chmod 666 /vendor/tvcertificate/tee/1...如上修改了这个文件后需要重新编译固件烧录到设备上
拿到权限后再调方法就可以获取./tee路径下的文件列表了
其他文件权限可以参考这个流程。