Android静默安装一(Root版)
近期开发上线一个常驻app,项目已上线,今天随笔记录一下静默安装相关内容。我分三篇静默安装(root版)、静默安装(无障碍版)、监听系统更新、卸载、安装。先说说我的项目需求:要求app一直运行,通过指令进行自动安装并在安装成功后自动开启。行业人事都了解,非root权限不可能无声无息的完成此要求。我分两步完成了此功能开发。今天记录一下root权限下实现静默安装app。本文使用RunTime执行pm install安装指定文件。一、获取权限
```javapublic class SilentInstall {/*** root权限下,静默安装apk* @param apkPath 目标文件* @return true 安装成功; false 安装失败*/public boolean install(String apkPath) {boolean result =false;DataOutputStream dataOutputStream =null;BufferedReader errorStream =null;try{// 申请su权限Process process = Runtime.getRuntime().exec("su");dataOutputStream =new DataOutputStream(process.getOutputStream());// 执行pm install命令String command ="pm install -r "+ apkPath +"\n";dataOutputStream.write(command.getBytes(Charset.forName("utf-8")));dataOutputStream.flush();dataOutputStream.writeBytes("exit\n");dataOutputStream.flush();process.waitFor();errorStream =new BufferedReader(new InputStreamReader(process.getErrorStream()));String msg ="";String line;// 读取命令的执行结果while((line = errorStream.readLine()) !=null) {msg += line;}// 如果执行结果中包含Failure字样就认为是安装失败,否则就认为安装成功if(!msg.contains("Failure")) {result =true;}}catch(Exception e) {Log.e("install",e.getMessage(),e);}finally{try{if(dataOutputStream !=null) {dataOutputStream.close();}if(errorStream !=null) {errorStream.close();}}catch(IOException e) {Log.e("install",e.getMessage(),e);}}return result;}}
调用
if (!new SilentInstall().install(absolutePath)) {// 调用系统安装方法Intent install = new Intent(Intent.ACTION_VIEW);Uri uri = Uri.fromFile(new File(apkPath));install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);install.setDataAndType(uri,"application/vnd.android.package-archive");context.startActivity(install);}
有root权限时,使用静默安装。没有权限时使用系统安装方法。
但是使用系统安装方法,明显时不符合项目需要的。所以我使用无障碍服务,辅助系统安装方法完成无操作安装。
下篇使用无障碍服务进行无操作安装应用。欢迎各位同学指导……
相关文章:
Android静默安装一(Root版)
近期开发上线一个常驻app,项目已上线,今天随笔记录一下静默安装相关内容。我分三篇静默安装(root版)、静默安装(无障碍版)、监听系统更新、卸载、安装。先说说我的项目需求:要求app一直运行&…...
【漏洞复现】2.Apache Log4j2远程代码执行漏洞(CVE-2021-44228)复现及分析
文章目录 1. 预备知识2. 漏洞复现2.1 漏洞介绍2.2 漏洞原理分析2.2.1 Log4j介绍2.2.2 JNDI介绍2.2.3 利用原理 2.3 漏洞复现2.3.1 使用docker搭建复现环境2.3.2 DNSLog验证2.3.3 JNDI注入反弹shell 2.4 漏洞修复2.4.1修改log4j2版本2.4.2 临时解决方案 1. 预备知识 Apache是一个…...
Simulink|局部遮荫下光伏组件多峰值PSO-MPPT控制
目录 主要内容 1.光伏电池工程数学模型的输出特性程序 2.普通扰动观察法进行MPPT 3.基于粒子群寻优的多峰输出特性 4.PSO_MPPT仿真模型 下载链接 主要内容 在实际的光伏发电系统中,由于环境多变等因素的影响,当局部出现被遮挡情况时光伏阵列…...
今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 3月21日,星期四
每天一分钟,知晓天下事! 2024年3月21日 星期四 农历二月十二 1、 教育部:2024年高考全国统考6月7日、8日举行,将专项整治手机作弊、严打高考移民。 2、 我国出台首部节约用水行政法规《节约用水条例》,5月1日起施行。…...
蓝桥杯Python B组练习——完美的代价
一、题目 问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是…...
分布式游戏服务器
1、概念介绍 分布式游戏服务器是一种专门为在线游戏设计的大型系统架构。这种架构通过将游戏服务器分散部署到多台计算机(节点)上,实现了数据的分散存储和计算任务的并行处理。每个节点都负责处理一部分游戏逻辑和玩家请求,通过高…...
idea中常见快捷键及插件操作
1、双击shift【万能】 (1)输入pull,回车可以更新代码 (2)输入commit,回车可以提交代码 (3)输入history,可以查看提交记录 (4)输入break,回车可以查…...
理解树的结构-算法通关村
理解树的结构-算法通关村 1.树的结构 树是一个有n个有限节点组成一个具有层次关系的集合,每个节点有0个或者多个子节点,没有父节点的节点称为根节点,也就是说除了根节点以外每个节点都有父节点,并且有且只有一个。树的种类比较多…...
金融知识分享系列之:支撑阻力
金融知识分享系列之:支撑阻力 一、支撑阻力原理二、支撑阻力作用1.识别市场资金的预期2.作为入场和平仓的重要参考 三、寻找支撑阻力四、延伸思考五、支撑阻力总结 一、支撑阻力原理 支撑阻力核心要素: 锚定效应订单驱动 支撑阻力原理: 市…...
如何使用Excel创建一个物品采购表
在企业的日常运营中,物品采购是一个常见且重要的活动。有效的采购管理不仅可以确保企业及时获得所需物资,还可以控制成本、提高效率。Microsoft Excel是一个功能强大的工具,它可以帮助我们创建和管理物品采购表。本文将详细介绍如何使用Excel…...
容器中的大模型(三)| 利用大语言模型:容器化高效地部署 PDF 解析器实践...
作者:宋文欣,智领云科技联合创始人兼CTO 01 简介 大语言模型(LLMs)正逐渐成为人工智能领域的一颗璀璨明星,它们的强大之处在于能够理解和生成自然语言,为各种应用提供了无限可能。为了让这些模型更好地服务…...
java采集小程序联合航空官方
本文仅限学习研究讨论,切忌做非法乱纪之事 中国联合航空有限公司(以下简称“中国联合航空”)总部位于北京,现为中国东方航空股份有限公司(以下简称“东航”)旗下的全资子公司。中国联合航空成立于1986年12月26日&#…...
【力扣每日一题】lc1793. 好子数组的最大分数(单调栈)
LC1793. 好子数组的最大分数 题目描述 给你一个整数数组 nums (下标从 0 开始)和一个整数 k 。 一个子数组 (i, j) 的 分数 定义为 min(nums[i], nums[i1], ..., nums[j]) * (j - i 1) 。 一个 好 子数组的两个端点下标需要满足 i < k < j 。 请…...
ES的集群节点发现故障排除指南(1)
本文是ES官方文档关于集群节点发现与互联互通的问题排查指南内容。 英文原文(官网) 集群节点发现是首要任务 集群互连,重中之重! 在大多数情况下,发现和选举过程会迅速完成,并且主节点会长时间保持当选状…...
使用html+css制作一个发光立方体特效
使用htmlcss制作一个发光立方体特效 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Documen…...
贵州省二级分类土地利用数据(矢量)
贵州省,地处中国西南腹地,地貌属于中国西南部高原山地,境内地势西高东低,自中部向北、东、南三面倾斜,平均海拔在1100米左右。贵州高原山地居多,素有“八山一水一分田”之说。全省地貌可概括分为࿱…...
通过nginx+xray服务搭建及本地配置
一、xray服务配置 下载:https://github.com/XTLS/Xray-core 进入下载界面 这里我选择的是Xray-linux-64.zip 将文件解压到 /usr/local/xray 编辑配置文件/usr/local/xray/config.json uuid可以在v2ray客服端自动生成,也可以在UUID v4 生成器 - KKT…...
第一节 Axure RP产品经理原型进阶学习
第一天 1、认识RP9 Axure RP 9,Axure RP 9是美国 Axure Software Solution公司的旗舰产品, 是一个快速的原型工具,常用于各项网络设计,包括了原型图、线框图等等。 要进行原型设计,将文字性文档转变为互动性的可视画…...
Linux实战笔记(三) 文件压缩
大家好,我是半虹,这篇文章来讲 Linux 系统中常用的文件压缩方式 0、序言 在 Linux 系统中,存在许多打包或压缩文件的工具 这篇文章会对一些常用的工具进行分类整理和介绍 如果只是需要知道怎么对不同格式的文件做解压缩,可以直…...
树形递归模板
详情参考CSDN链接: https://www.cnblogs.com/lidar/p/12972792.html public class Menu {// 菜单idprivate String id;// 菜单名称private String name;// 父菜单idprivate String parentId;// 菜单urlprivate String url;// 菜单图标private String icon;// 菜单顺序private …...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
