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

拦截adb install/uninstall安装 - 安装流程分析

通过拦截 adb install/uninstall 命令需求,来了解adb install/uninstall 整个业务流程。

文章目录

  • 前言 - 需求-目标
    • 需求
    • 目标
  • 一、参考文档
    • 基本知识点
  • 二、涉及到修改文件
  • 三、实现方案
    • 定义系统属性值 - mediatek/system/common/device.mk
    • 监听系统属性开关设置 - packages/modules/adb/daemon/shell_service.cpp
    • 安装之前解析命令,对命令进行验证 拦截 - /frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
  • 四、知识点扩展
    • 需求
    • 涉及到的类
    • 业务流程-源码分析-BasicShellCommandHandler、ShellCommand、DomainVerificationManagerInternal、PackageManagerShellCommand
      • 各自职责-角色
      • 搞清楚-守护进程到底怎么传递到Java层,执行install/uninstall 逻辑的。
      • PackageManagerShellCommand - 翻译、调度命令
      • DomainVerificationManagerInternal - 验证过程
      • ShellCommand - PackageManagerShellCommand 执行CMD的帮助类
      • BasicShellCommandHandler - 执行CMD的帮助类
    • PackageManagerShellCommand 安装、卸载过程初步分析
      • onCommand 回调-分发业务->runInstall
      • install -> doRunInstall ->doCommitSession
      • apk 安装:doCommitSession -> session.commit(receiver.getIntentSender());
  • 总结


前言 - 需求-目标

本人以MTK Android13 版本为例,其它芯片平台和Android版本修改内容基本差不多 对于adb 模块各大芯片厂商和不同Android版本区别其实不大,可以参考。

需求

  • 提供禁用/启用 adb install/adb uninstall的指令及api

具体如下要求:

默认adb install/adb uninstall指令启用。
adb指令为:
adb shell adbinstall enale(启用adb install)
adb shell adbinstall disable(禁用adb install)
adb shell adbuninstall enable(启用adb u
http://www.dtcms.com/a/576830.html

相关文章:

  • 【小技巧】PyCharm建立项目,VScode+CodeX+WindowsPowerShell开发Python pyQT6
  • DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(五)
  • AI SQL助手本地搭建(附源码)
  • Zabbix企业级分布式监控系统(下)
  • 『Linux升级路』解析环境变量
  • 浏览器能正常访问URL获取JSON,但是pycharm里调不通
  • AI代码开发宝库系列:PDF文档解析MinerU
  • 校园招聘seo行业网
  • 开发网站的技术路线博达高校网站群建设教程
  • 物联网运维中基于联邦学习的跨设备隐私保护与协同优化技术
  • 物联网AI模组:连接与智能的融合
  • 【底层机制】ART虚拟机深度解析:Android运行时的架构革命
  • 嵌入式硬件:如何理解高频电子线路,从入门开始
  • 物联网赋能校园共享站:打造24小时一站式服务新体验!
  • 萤石开放平台申请物联网卡指南
  • 矩阵在密码学的应用——希尔密码详解
  • 20251106给荣品RD-RK3588-MID开发板跑Rockchip的原厂Android13系统时适配AP6275P模块的WIFI【使用荣品的DTS】
  • 学校网站代码模板成都的网站建设开发公司哪家好
  • 怎么制作自己的小网站低代码前端开发平台
  • Elastic Stack 或 ELK —— 日志管理与数据分析方案
  • 手机、平板、电脑如何投屏画面到电视?ToDesk远程控制TV版教程分享
  • UEC++UNiagaraFunctionLibrary源代码
  • 小杰-大模型(twelve)——大模型部署与应用——gradipo-实现UI界面
  • Python基础入门
  • 【React Native】粘性布局StickyScrollView
  • 无人机RTMP推流平台EasyDSS:构建新一代智能交通视频监控系统
  • 从大数据角度看时序数据库选型:Apache IoTDB的实战经验分享
  • Apache Drill 连接 MySQL 或 PostgreSQL 数据库
  • React Native App 图表绘制完整实现指南
  • 做招商加盟网站怎么样济南网站优化的周期