一、Webkey功能简介
简图如下:
对用户来说:
用户可以通过PC或者手机的浏览器,输入账号密码登录之后,就可以实时观看Z3-camera的实时画面,并可以远程操作Z3(触控操作、点击按键)。
对开发者:
Z3上创建一个web服务器,pc端浏览器与之建立http连接之后,z3端实时把视频图像传给客户端,并接受与下发客户端传来的key跟touch事件!
在Z2上运行的的情况:
webkey版本:3.2.17
条件:需要root权限
调查结论:如果app是由我们自己写,那么root不是必须的。系统app是可以通过share system-uid的方式获取需要的权限!此方式第三方app是无法实现的,因为每个签名文件是不一样的。
在Z3上的情况:
root不是必须的条件!!
权限的问题主要在于:Camera端收到浏览器端发送的按键触摸事件时,需要下发到Android系统,该动作需要高级别的系统权限,第三方app是没有这个权限的。(这是android系统出于安全的考虑,才做出的限制!)
一、旧(Z2上正常工作的版本)webkey安装在Z3:
加上systemUID然后重新打包,做系统签名, 登录界面出来了,但是不能镜像!
后面做了很多尝试,根据error-log补上缺失的几个so库(libskia.so、libicuuc.so)、缺失的文件等等,还是无法正常运行。
基本判定,旧版本是无法兼容android-10的!!
二、Webkey官网最新APP验证:
如果通过局域网控制,需要安装Google-play并付费!!
三、找最新的能兼容android-10的Webkey:
吕建搞定了,用新版本的WebKey可以工作了!!!
Z2 3.2.17 OK
Z3 3.7.15 OK
Z3 3.10.7 NG
访问的地址由之前的http变成了https!!
验证ok的Webkey在Z3非ROOT版本可不可以启动
该项工作的意义:
目前Z2是root版本,升级是通过OTA全包升级。但是有一个很重大的问题是,一个超市有几百个机器,都采用全包升级,带宽不够,要升级很久,需要一批一批的升级。这样造成了非常大的麻烦。
之所有选择全包升级,原因就是被root的机器只能全包升级,不能做差分包。
如果机器不需要root,那么我们就可以做差分升级了!!
验证方式:
通过修改su文件的名字,来让webkey走非root流程!
信息补充,关于权限与系统签名:
1.app截屏的权限
android5.0之后,第三方app可申请权限进行获取,无需root和特殊权限!
2.下发按键or触摸事件的权限:
需要root,或者添加system-uid并签上platform签名
目前Z3上使用的是Android原生的签名(即Google的签名)
这样是有一定的风险,别的开发者可以拿到系统权限(签Google签名)!
最终的结论:
一、如果在root方式下工作,那么下面方案是可行的:
- Z3直接安装3.7.15,
- 把com.webkey文件夹拷贝进data/data
该方式非root不能相应按键跟触摸事件,官方回复邮件的解释是旧版本不支持platform-signature的方式,只支持root模式!
二、如果想在Z3非root版本上正常工作,需要条件如下:
- Z3安装官方回复邮件里的apk
- 安装Google-play并且付费( 局域网操控需要付费 )
该方式需要google认证+付费,所以比较难实现!