当前位置: 首页 > article >正文

android app执行shell命令视频课程补充android 10/11适配-千里马android

(https://blog.csdn.net/learnframework/article/details/120103471)
https://blog.csdn.net/learnframework/article/details/120103471
hi,有学员在学习跨进程通信专题课程时候,在实战app执行一个shell命令的项目时候,对课程本身的android 8.1平台没有什么问题,但是学员想要自己适配到android 11上,估计也是目前最新的android版本,因为普遍android S厂商都还没有发布,因为android 的大版本升级适配本身工作也不小,这里就对android app执行shell命令这一部分进行一个升级适配的补充,尽量让买课的学员可以直接用于最新的android版本。
原来课程的项目实现思路等可以看如下blog
Socket让app实现shell命令行执行 https://blog.csdn.net/learnframework/article/details/119965296
具体项目代码和详细视频讲解可以购买我的相关视频
好了进入正题,主要分为以下几个步骤:

1、编译课程的源码rootServer时候会编译报错,这里的编译报错原因主要是因为android 8.1编译时候不会把定义了但是没有使用的变量认为是错误,但是在android 10/11上就是错误,这个大家直接把提示相关unused变量删除就可以

请添加图片描述

2、adbd中加入了StartSubprocess方法启动rootServer已经不生效了,因为android 10/11上对这个方法进行更新,继续直接使用无法在adbd拉起rootServer,所以这里采用了临时替代方案:
在这里插入图片描述
用截图几句替代原来的StartSubprocess既可以启动rootServer

3.第三方app无法与shell进程进行连接,会报错Permission Denied,这个其实是因为selinux权限的加强,让普通第三方app无法与shell进程进行一个socket通信:
在这里插入图片描述
解决方案:只能使用配置增加selinux权限,在对应的system/sepolicy/private/untrusted_app_27.te修改如下
在这里插入图片描述
4.adbd无法自启动
这个本身就是留给学员自己完成作业,大概思路有以下几个:
1、让用户自己去设置中开启adb调试开关就可以启动adbd
2、在system/core/init/rootdir/init.usb.rc修改启动adbd,同时也要禁止关闭adbd,学员也提出这个,进行验证也可行,但是可能不能关闭adbd
在这里插入图片描述

3、自己去init相应任何地方startService就可以,可以参考:
https://blog.csdn.net/learnframework/article/details/116719986

4、注意stop adbd会导致rootServer停止,因为stop时候会对adbd的所有子进程都进行kill,也就能理解为什么设置中关闭一下调试就会导致电脑的cmd也退出,logcat也无法抓了

更多framework详细代码和资料参考如下链接
投屏专题部分:

https://mp.weixin.qq.com/s/IGm6VHMiAOPejC_H3N_SNg

hal+perfetto+surfaceflinger

https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
其他课程七件套专题:在这里插入图片描述
点击这里
https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw

视频试看:
https://www.bilibili.com/video/BV1wc41117L4/

参考相关链接:
https://blog.csdn.net/zhimokf/article/details/137958615

更多framework假威风耗:androidframework007


http://www.kler.cn/news/353442.html

相关文章:

  • 三、ElementPlus下拉搜索加弹窗组件的封装
  • Python 基础之条件语句
  • 【JavaScript】LeetCode:66-70
  • Linux在命令行直接使用密码来远程执行命令和远程复制 + 新安装的库找不到问题解决方式
  • HDFS开启审计日志
  • 自动驾驶系列—厘米级精度:RTK技术如何革新自动驾驶定位
  • Android终端GB28181音视频实时回传设计探讨
  • 嵌入式系统---看门狗
  • 选项模式(Option Pattern)在 Go 语言中的应用
  • Unity RPG梦幻场景素材(附下载链接)
  • React中的useState和useEffect解析
  • 容器化部署kafka内外网分流
  • Unity开发Hololens项目
  • 点菜问题(北京大学考研机试题01背包)
  • 上海数据集团到访蓝象智联 探讨数据基础设施建设
  • 2.html编辑器介绍
  • MySQL 8.4.0解压版安装记录
  • Gin框架操作指南01:开山篇
  • 【前端】如何制作一个自己的网页(6)
  • 【TDA】mapper