[Android]使用Linux命令实现隐藏显示应用功能
以前一直在写一个能够隐藏应用的小程序,然后呢,在网上搜了许多教程…转念一想,这种富有独创性的技术怎么可能共享在网上…于是自己总结了出来,供dalao们丰富眼界(唉唉)
获取ROOT权限
咳咳,首先这个就不用说了吧,相信dalao们应该没有问题的,电脑上的模拟器倒是有ROOT,然而手机上呢就不一定有了…大家可以尝试用z4root或者Kingroot这一类的ROOT工具试试。
获取了ROOT权限之后,我们该怎样在程序中获取这个权限呢?
Process pro=Runtime.getRuntime().exec("su");
按理来说,ROOT过后的设备都会有一个su的命令,然后呢通过Runtime获取到的实例来执行这个命令,就可以获取到一个进程Process,然后我们又怎样键入命令呢?
首先,我们需要先使用这个Process创建出一个DataOutputStream实例,就叫它dos吧(怎么这么眼熟)
DataOutputStream dos=new DataOutputStream(pro.getOutputStream());
然后呢,我们就可以通过这个DataOutputStream执行命令了。
使用hide命令隐藏应用
dos.writeBytes("pm hide [应用包名]\n");
这个是linux提供的命令,pm是PackageManager的缩写,即应用管理器,然后hide应该都懂吧…最后记得要用\n回车来执行命令。
按理来说这样就应该成功了,然后记得把缓存区清空。
dos.flush();
那么也可以举一反三了,如果想再把这个软件显示出来,就可以使用以下命令。
dos.writeBytes("pm unhide [应用包名]\n");
但是这里存在一个问题,使用pm hide命令隐藏了一个应用后,程序将无法读取这个应用的详细信息,比如名字,图标等等,如果隐藏应用后再读取会报错。
那么我们该如何在应用隐藏的情况下显示它的信息呢?难不成要把图标,名字等等全部保存下来?那也太麻烦了,下面介绍另一种隐藏应用的方式。
使用disable命令隐藏应用
这个可以理解吧,disable的意思是停用,其实就是停用某一个程序,在系统应用的设置界面里面卸载按钮也是停用。
停用命令的使用方法还是差不多的。
dos.writeBytes("pm disable [应用包名]\n");
通过这样的方式同样可以实现隐藏应用,并且也可以读取应用的详细信息,同时我们照样可以将它显示出来。只不过使用disable命令隐藏的应用在显示时可能会出现一点问题,所以我们需要两步将它显示出来。
dos.writeBytes("pm disable-user [应用包名]\n");
dos.writeBytes("pm enable [应用包名]\n");
好的,这篇文章到这里就结束了,如果有什么问题欢迎留言提出~
[Android]使用Linux命令实现隐藏显示应用功能相关推荐
- linux 显示unix时间,小弟我使用过的Linux命令之uptime - 显示系统运行时间
我使用过的Linux命令之uptime - 显示系统运行时间 我使用过的Linux命令之uptime - 显示系统运行时间 本文链接:http://codingstandards.iteye.com/ ...
- Linux 命令之 uname -- 显示系统/主机的相关信息
文章目录 一.命令介绍 二.常用选项 三.命令示例 (一)显示系统主机名.内核版本号.CPU类型等信息 一.命令介绍 uname 命令的英文全称即"Unix name".用于显示系 ...
- Linux 命令之 ps -- 显示进程状态/查看进程信息
文章目录 介绍 语法格式 常用选项 命令示例 示例 1,查看进程的 PID.名称以及 CPU 占用率 示例 2,查看所有的进程 示例 3,按内存资源的使用量对进程进行排序 示例 4,按 CPU 资源的 ...
- Linux 命令之 type -- 显示指定命令的类型
文章目录 一.命令介绍 二.命令格式 三.命令类型 四.常用选项 五.命令示例 (一)查看命令的类型 (二)显示外部命令的绝对路径 一.命令介绍 type 命令用来显示指定命令的类型,判断给出的指令是 ...
- 多行溢出隐藏显示省略号功能的JS实现
在页面重构中,经常需要将过多的内容隐藏而显示部分.在单行文本中实现非常简单,但是在多行文本中,则需要根据实际选择不同的方式. 用CSS实现多行溢出隐藏的代码非常简单,但是兼容性也相对较低. 1 dis ...
- Linux命令之route - 显示和操作IP路由表
转自: http://codingstandards.iteye.com/blog/1125312 用途说明 route命令用于显示和操作IP路由表(show / manipulate the IP ...
- [Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名
Android 要求所有应用在安装前必须使用证书进行数字签名.Android 使用该证书来确定一个应用以及其作者身份,该证书不要求由证书发行机构颁发,因此 Android 应用经常使用自我签名的证书, ...
- [Android] 基于 Linux 命令行构建 Android 应用(四):命令行构建
谷歌提供的 Android SDK 支持 Ant 自动构建[1],你可以使用调试和发行两种模式进行构建,两种模式不同之处在于调试模式 Ant 会调用内置的调试密钥,而发行模式调用你提供的私钥. 首先安 ...
- Linux 命令之 id -- 显示用户ID和组ID
文章目录 命令介绍 常用选项 参考示例 显示当前用户的用户id及所属用户组的信息 显示用户所属群组的ID 显示用户所属附加群组的ID 显示指定用户信息 命令介绍 id命令可以显示真实有效的用户ID(U ...
最新文章
- win7压缩包安装mysql_win7怎么安装mysql5.7.13压缩文件图解
- 「第四篇」电赛控制题可以准备一些什么?
- Minor【 PHP框架】1.简介
- 软件工程第一次冲刺进度条(1-10天)
- 前端学习(2453):项目初始化
- aes 加密_结合RSA与AES实现前后端加密通信
- 【Linux】XXX is not in the sudoers file …… 的解决方案
- Polynomial(HDU-6668)
- 4999元起!华为Mate 30 5G系列今日预售:支持SA及NSA 5G双模
- 最长重复子串_3. 无重复字符的最长子串
- 谷歌、Facebook 大规模宕机!“裸奔时代”程序员该怎么办?
- SharePoint 常用操作杂谈
- Opening My World——ESRI用户大会有感
- macbook air 安装双系统windows10手册及避坑技巧
- 计算机管理禁用usb,电脑如何禁用U盘、怎样禁用USB存储工具,防止USB端口泄密?...
- 如何禁止计算机自动安装驱动,win10系统禁止自动安装驱动的详细技巧
- Java基础——Day23——Lock和TCP传输
- Learning Framer X 学习Framer X Lynda课程中文字幕
- IMWEB小白DAY3-制作个人名片
- 前端性能分析—前端优化