• 现象:
    远程屏幕录制正常,但使用鼠标点击屏幕无响应,无法对设备进行控制.

  • 查看异常log
    01-24 14:35:46.978954 2956 2956 I SunloginClient: [ipc][AndroidServer] client connected.
    01-24 14:35:46.979059 2956 2956 I SunloginClient: [inputagent][AgentServer] CInputAgentServer::on_connected()
    01-24 14:35:46.979078 2897 3145 I LocalSocketSunlogin: Encoder created video format: {color-format=2130708361, i-frame-interval=1, level=64, mime=video/avc, profile=1, width=720, bitrate-mode=2, bitrate=2000000, frame-rate=30, height=1280, repeat-previous-frame-after=10000000}
    01-24 14:35:46.979164 2956 2956 I SunloginClient: [inputagent] CVirtualInput::Init
    01-24 14:35:46.979248 2956 2956 I SunloginClient: [inputagent] manufacturer: alps
    01-24 14:35:46.979293 2956 2956 I SunloginClient: [inputagent] initialize uinput @ 69
    01-24 14:35:46.979556 2956 2956 E SunloginClient: [inputagent] open uinput device failed @ 77
    01-24 14:35:46.980021 2956 2956 E SunloginClient: [inputagent] scan dir failed for /dev/input:
    01-24 14:35:46.980101 2956 2956 I SunloginClient: [inputagent] CVirtualInput::Init(0), abs_x(0 – 0), abs_y(0 – 0)
    01-24 14:35:46.980235 2956 2956 I SunloginClient: [inputagent][VirtualInput] SetDisplayOrientation 0
    01-24 14:35:46.980273 2956 2956 I SunloginClient: [inputagent][AgentServer] input start

  • log分析
    从log中看到是没有权限打开uinput 和input节点,尝试把uinput和input权限修改为777后,还是报权限问题。
    — a/mt8765/system/core/rootdir/ueventd.rc
    +++ b/mt8765/system/core/rootdir/ueventd.rc
    @@ -70,13 +70,13 @@ subsystem sound
    -/dev/uinput 0660 system
    +/dev/uinput 0777 system
    -/dev/input/* 0660 root input
    +/dev/input/* 0777 root input

    这样修改后都不起作用,怀疑是sepolicy没有配置好导致的,于是在Userdebug版本上,开机之后执行命令adb shell setenforce 0 (关闭selinux)。手动安装签名后的远程协助apk,进行远程协助是可以控制的。

  • 配置sepolicy
    android KK 4.4 版本后,Google 默认启用了SELinux, 并会把SELinux 审查异常打印在kernel log 或者 android log(L 版本)中,对应的关键字是: “avc: denied” 或者"avc: denied"

异常的kernel log:

<36>[ 422.298785] .(1)[306:logd.auditd]type=1400 audit(1548311746.974:594): avc: denied { write } for pid=2956 comm=“liborayinput_ag” name=“uinput” dev=“tmpfs” ino=9221 scontext=u:r:system_app:s0 tcontext=u:object_r:uhid_device:s0 tclass=chr_file permissive=0

<36>[ 422.303527] .(1)[306:logd.auditd]type=1400 audit(1548311746.974:594): avc: denied { write } for pid=2956 comm=“liborayinput_ag” name=“uinput” dev=“tmpfs” ino=9221 scontext=u:r:system_app:s0 tcontext=u:object_r:uhid_device:s0 tclass=chr_file permissive=0

<36>[ 422.306444] .(1)[306:logd.auditd]type=1400 audit(1548311746.974:595): avc: denied { read } for pid=2956 comm=“liborayinput_ag” name=“input” dev=“tmpfs” ino=1140 scontext=u:r:system_app:s0 tcontext=u:object_r:input_device:s0 tclass=dir permissive=0

从kernel log中可以看到uhid_device需要write权限,而input_device需要read权限。但当给了相应的write和read权限后,还不能控制,于是再查看kernel log 又重新提示缺少open,search,ioctl权限。于是缺什么权限就加什么权限,最终sepolicy的配置修改如下:

device/mediatek/sepolicy/bsp/non_plat/system_app.te
+allow system_app input_device:dir {read open search};
+allow system_app uhid_device:chr_file {write open ioctl};

这样修改后,安装第三方远程协助APP 已可以成功控制屏幕了。

Android 安装第三方远程协助APP无法控制屏幕相关推荐

  1. android 如何去控制第三方音乐播放app之控制QQ音乐

    最近在做一个需求,要在桌面去控制qq音乐的播放(即,可以播放暂停,上一曲,下一曲显示歌名和歌手名).接下来一一说下完成这个需求的心路历程. 1.在网上查腾讯有没有针对qq音乐提供SDK接口,结果发现, ...

  2. android 安装第三方应用,Android手机常识 第三方应用如何安装

    如何安装第三方应用 刚买到一部新的手机,是不是有一种将自己所有喜欢的应用和游戏全都装进手机当中的冲动呢,但是大家有没有遇到过 这样的问题,就是下载完毕后,准备开始安装,手机却提示大家需要更改一些设置才 ...

  3. android 安装第三方app,Android识别预装的第三方App方法实例

    前言 新买一台手机,里面会有很多App,有的属于系统App,不可卸载,有的属于第三方App,厂商会预装一些常用的或者给了他们广告费的App,这些是可以卸载的. 如果要详细划分,系统App还可根据其路径 ...

  4. 高德地图 web android,Android 调用第三方地图类App (高德 百度 百度网页版)

    Screenshot_20170509-152819.png 前言 最近项目中需要用到地图的功能,但是应用本身不是地图类应用,而且用地图只是为了分享和展示一个地点而已,所以完全没有必要去集成厚重的sd ...

  5. android 程序保持常亮,APP界面保持屏幕常亮方法

    和您一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一.申请WAKE_LOCK 权限 二.Activity 中设置FLAG_KEEP_SCREEN_ON F ...

  6. 小米android在哪里,教大家安卓手机小米miui10远程协助在哪里进入

    当下很多小伙伴们都不知道手机系统当中的很多功能要怎么去使用,例如说现在就有很多小伙伴们就想要知道安卓手机小米miui10远程协助在哪里进入,因为这些都是我们在使用苹果系统当中会经常要应用到的一些技巧方 ...

  7. 如何实现远程协助iPhone?

    朋友.家人.同事的手机出现问题希望你来帮助解决时,一款远程协助软件可以为你省不少力.公司中要为iPhone用户提供技术支持也需要一款实用的远程工具来提高工作效率和竞争力.一般远程控制安卓手机部分品牌可 ...

  8. android禁止安装第三方app,Android6.0 禁止安装未知来源应用

    在Android 中可以禁止安装第三方应用,如果你的设备需要禁止所有应用安装,你就可以在这做些文章. /** * @deprecated Use {@link android.provider.Set ...

  9. android 8.1 9.0 10.0 默认允许安装第三方app去掉未知来源弹窗直接安装apk

    1.概述 在10.0的产品开发中,8.0以后对于安装第三方app时需要申请 REQUEST_INSTALL_PACKAGES权限,那么没有申请权限时就会弹出 安装未知来源的对话框,而在定制化开发中,有 ...

最新文章

  1. N - Is It A Tree?(判断环)
  2. Java 程序员必备的 Intellij IDEA 插件
  3. vivo升级android10系统,官方确认vivo NEX旗舰版会直接升级到Android10
  4. Red Hat 6.5安装Oracle 10g故障汇总
  5. 连接MySql出现Client does not support authentication protocol requested by server错误
  6. 计算机常用软件工具试题,常用工具软件》模拟试题及答案
  7. max30102c语言,max30102问题
  8. (四)Buffer 缓冲区
  9. 打印ie浏览器去除页眉页脚问题
  10. php实现发送微信模板消息的方法
  11. 软考真题的重要性不用再强调了吧
  12. CSS超出两行隐藏,但是仍然有部分第三行文字溢出
  13. 【ROM定制】Android 12 制作『MIUI官改』那点事③工具
  14. 手机寂静岭 java 攻略_寂静岭PT最终房间进入及通关攻略
  15. oracle 根据符号分列,oracle 树结构数据层次分列显示
  16. DL在地球物理中的应用及发展趋势
  17. 日本教育家多湖辉的《学生用功术》 (1)
  18. 简易封装 element form表单
  19. 基于matlab指纹识别论文,毕业论文-基于Matlab的指纹识别
  20. 齐振宏教授 变革领导力导师

热门文章

  1. java判断小数位数_java如何获取一个double的小数位数
  2. Jsp中分页功能的实现
  3. unraid 文件服务器,unraid使用记录3——黑群晖安装(包含文件)
  4. 华为云容器镜像服务 SWR 加速镜像的拉取和推送
  5. C++语言99个常见编程错误 常见错误7:无视基础语言的精妙之处
  6. 什么是 SRS 呢?在我们大部分的音频播放器里都内欠有这种音效。
  7. 硬件配置部分——从无到有自主搭建视觉惯性VI-SLAM(vins-mono)平台
  8. AI算法面试难度升级,该如何应对?
  9. javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? HTTPS请求异常
  10. cad怎么画立体图形教学_CAD怎么画立体图,手把手教你画三维图形