以前一直在写一个能够隐藏应用的小程序,然后呢,在网上搜了许多教程…转念一想,这种富有独创性的技术怎么可能共享在网上…于是自己总结了出来,供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命令实现隐藏显示应用功能相关推荐

  1. linux 显示unix时间,小弟我使用过的Linux命令之uptime - 显示系统运行时间

    我使用过的Linux命令之uptime - 显示系统运行时间 我使用过的Linux命令之uptime - 显示系统运行时间 本文链接:http://codingstandards.iteye.com/ ...

  2. Linux 命令之 uname -- 显示系统/主机的相关信息

    文章目录 一.命令介绍 二.常用选项 三.命令示例 (一)显示系统主机名.内核版本号.CPU类型等信息 一.命令介绍 uname 命令的英文全称即"Unix name".用于显示系 ...

  3. Linux 命令之 ps -- 显示进程状态/查看进程信息

    文章目录 介绍 语法格式 常用选项 命令示例 示例 1,查看进程的 PID.名称以及 CPU 占用率 示例 2,查看所有的进程 示例 3,按内存资源的使用量对进程进行排序 示例 4,按 CPU 资源的 ...

  4. Linux 命令之 type -- 显示指定命令的类型

    文章目录 一.命令介绍 二.命令格式 三.命令类型 四.常用选项 五.命令示例 (一)查看命令的类型 (二)显示外部命令的绝对路径 一.命令介绍 type 命令用来显示指定命令的类型,判断给出的指令是 ...

  5. 多行溢出隐藏显示省略号功能的JS实现

    在页面重构中,经常需要将过多的内容隐藏而显示部分.在单行文本中实现非常简单,但是在多行文本中,则需要根据实际选择不同的方式. 用CSS实现多行溢出隐藏的代码非常简单,但是兼容性也相对较低. 1 dis ...

  6. Linux命令之route - 显示和操作IP路由表

    转自:  http://codingstandards.iteye.com/blog/1125312 用途说明 route命令用于显示和操作IP路由表(show / manipulate the IP ...

  7. [Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名

    Android 要求所有应用在安装前必须使用证书进行数字签名.Android 使用该证书来确定一个应用以及其作者身份,该证书不要求由证书发行机构颁发,因此 Android 应用经常使用自我签名的证书, ...

  8. [Android] 基于 Linux 命令行构建 Android 应用(四):命令行构建

    谷歌提供的 Android SDK 支持 Ant 自动构建[1],你可以使用调试和发行两种模式进行构建,两种模式不同之处在于调试模式 Ant 会调用内置的调试密钥,而发行模式调用你提供的私钥. 首先安 ...

  9. Linux 命令之 id -- 显示用户ID和组ID

    文章目录 命令介绍 常用选项 参考示例 显示当前用户的用户id及所属用户组的信息 显示用户所属群组的ID 显示用户所属附加群组的ID 显示指定用户信息 命令介绍 id命令可以显示真实有效的用户ID(U ...

最新文章

  1. win7压缩包安装mysql_win7怎么安装mysql5.7.13压缩文件图解
  2. 「第四篇」电赛控制题可以准备一些什么?
  3. Minor【 PHP框架】1.简介
  4. 软件工程第一次冲刺进度条(1-10天)
  5. 前端学习(2453):项目初始化
  6. aes 加密_结合RSA与AES实现前后端加密通信
  7. 【Linux】XXX is not in the sudoers file …… 的解决方案
  8. Polynomial(HDU-6668)
  9. 4999元起!华为Mate 30 5G系列今日预售:支持SA及NSA 5G双模
  10. 最长重复子串_3. 无重复字符的最长子串
  11. 谷歌、Facebook 大规模宕机!“裸奔时代”程序员该怎么办?
  12. SharePoint 常用操作杂谈
  13. Opening My World——ESRI用户大会有感
  14. macbook air 安装双系统windows10手册及避坑技巧
  15. 计算机管理禁用usb,电脑如何禁用U盘、怎样禁用USB存储工具,防止USB端口泄密?...
  16. 如何禁止计算机自动安装驱动,win10系统禁止自动安装驱动的详细技巧
  17. Java基础——Day23——Lock和TCP传输
  18. Learning Framer X 学习Framer X Lynda课程中文字幕
  19. IMWEB小白DAY3-制作个人名片
  20. 前端性能分析—前端优化

热门文章

  1. 天翼杯 web APITest
  2. vscode c++ 无法打开xxx 无法读取文件xxx
  3. Promise(承诺)
  4. 游完泳不注意这一点,脸部皮肤可能会越变越差
  5. Matlab利用M_map和mapshow绘制网格地图
  6. 如何提升近红外实验的信噪比?如何去除伪迹?
  7. Unity-BattleStar丨13. 终章:改善BUG,增加三连发模式
  8. win7 64位系统与32系统的区别
  9. 实况2018服务器维护,《实况足球2018》常见dll丢失问题解决方法汇总
  10. 宝宝长牙期间不喝奶怎么办呢?