安装游戏时说已安装了存在shiro自定义权限控制的应用,而且我已经有了ROOT权限

 |  |  |  |  | 
热门搜索:
您所在的位置:&&&&&&安卓一键root工具大全(手机权限获取软件)
现今,某些手机厂商联合运营商,预装很多烦人的应用来打造封闭的生态圈,而又以各种措施妨碍消费者获取管理员权限(root权限),强迫消费者接受这些应用。 使用一键root应用之后,就可以很方便的卸载这些应用了。
V1.7.7.7271 官方版
用于pc端一键获取安卓手机root权限的神器
ROOT大师是刷机大师团队潜心研究开发的绿色版免安装用于pc端一键获取安卓手机root权限的神器,可完美支持三星、HTC、索尼、华为、中兴、联想、酷派等超过1000个机型,android2.1-android4.2系统的手机。软件操作简单,一键解决。软件功能:...
V2.3.1.28 简体中文官方安装版
一键root权限获取工具
卓大师root专家是一款pc端的android手机root软件。全球用户使用最多的root软件,采用世界领先的一键操作模式,无论普通用户还是高级用户都能快速上手,顺利完成操作。简洁的操作界面,快捷高效的root操作。强大的自制root引擎,无需重启直接秒杀!支持50...
一款功能十分强大的root工具箱
一款功能十分强大的root工具箱,市场5星评级,不过需要获取root权限。注意使用root工具箱需要对手机系统和root有一定了解,否者操作可能带来一定风险。软件功能:-重新启动/恢复/启动程序/热重启/下载模式-设置APN/备份/还原-移除Delvik-移除...
V2.0 官方版
专业级别的android系统深度定制工具
傻瓜一键root是一款专业级别的android系统深度定制工具。软件需要获取root权限,它可以最大限度的定制修改系统和软件的数据,从而实现对手机关键功能的自定义。软件功能:1、移动软件到SD卡;2、备份或者删除任何系统或应用的数据;3...
V1.0 官方版
界面简单但是功能强大
现在不需要刷机也能获得root权限了,软件界面简单但是功能强大,智能判断手机情况,输出最符合要求的方案,获取ROOT权限的几率大幅提升完全中文界面,而且傻瓜化设计,适合任何阶段的用户使用通用性强。
V1.1.5 官方版
最强一键ROOT工具
它是2014年刷机首选,它是最好用的一键Root工具,无需电脑一键搞定,更难得可贵的是全中文界面哦,有需求的玩家赶快前来下载吧,精彩不容错过。软件特色:1、手机上直接ROOT,无需电脑!2、全中文界面,新手小白也能轻松掌握3、支持多...
真正的一键root操作
谷歌发布了安卓4.4.2KOT49H,也更新了相应的CF-Auto-root工具,支持nexus4安卓4.4.2KOT49H一键root。还特别舒心的为我们解决了fastboot,adb命令需要的工具包问题,也就是说在这个版本我们不必担心fastboot和adb驱动问题了,CF-Auto-root包里已经自带了。...
V4.3.5 官方版
唯一一款真正破解root的软件
ROOT百宝箱是“九度空间团队”集合市面上数10套成功率极高的root破解引擎为一体的Android应用,一次下载,一次破解,无广告,纯绿色,root成功率高达85%,是市面上唯一一款真正破解root的软件。内置预装应用卸载功能,使大多数已经root的手机轻松扫除预...
V5.9 官方最新电脑版
安卓驱动工具、真正做到自动驱动搜寻
绿豆刷机神器电脑版(原"安卓驱动")――安卓首款驱动工具,真正做到自动驱动搜寻,自动安装驱动,并提供超过10000款的全免费安卓软件,安卓游戏,实现自动简洁安装。发布以来,已获得超过35万名安卓玩家的支持和喜爱,在35个安卓最火的论坛内都有专帖推荐...
V1.1.001128 简体中文绿色免费版
可以支持绝大多数的安卓手机
LBE一键ROOT集成超过37套ROOT引擎,能轻松ROOT市面上绝大多数的安卓手机,安全可靠,操作便捷,支持android2.1及以上版本,ROOT成功后安装的授权管理,能让用户完全掌控其它应用能否读取手机内隐私的权力,让用户的手机受到全方位的保护获取root系统最高...
V3.1 官方最新版
安卓手机ROOT工具
安机网一键root工具是目前市场上好用的安卓手机ROOT工具,软件最新版本更新,全面支持4.0手机系统的ROOT。让你快速安全的ROOT自己手机,无风险。支持机型:HTCSensation(G14)GalaxyNexus(i9250)LGOptimus3D(P920)HTC...
一键获取root权限
移动叔叔ROOT工具是一款一键获取root权限的工具。移动叔叔ROOT工具使用方法:以下以联想A60为例子,打开同步工具(如:豌豆荚等)并确认驱动都安装好!同步工具开启的情况,请不要关闭,同时开启移动叔叔一键ROOT工具。(A60需要同步工具同时打开...
V2.4.0 安卓版
手机版root权限破解及系统管理工具
百度一键root是百度公司推出的一款手机版root权限破解及系统管理工具。软件功能:1、安全、高效的获取手机最高权限,没有任何风险;2、卸载不必要的系统应用,释放手机空间;3、保护您的隐私,杜绝不良软件的恶意行为;4、管...
V2.0 绿色免费版
全能一键root工具
kingrootPC(一键root工具)是kingroot团队开发的用于pc端一键获取安卓手机root权限的工具。软件说明:支持htc、moto、三星、索尼爱立信、华为、中兴、联想、酷派等超过65个品牌400个型号,android2.1-android4.0.3系统的手机。软件操作简...
V1.0 绿色版
用来禁止某些你不需要的应用软件自动启动、清理内存等
小米电视ROOT工具是一款类似于安卓手机的一键root工具。小米电视作为一款搭载Android系统的智能电视,当然也是可以进行ROOT,以便让用户获取最高权限。ROOT后可以自行安装授权管理或者其它优化工具,用来禁止某些你不需要的应用软件自动启动、清理内存等...
V1.9.4 官方版
手机一键root工具
Root助手是手机一键root工具。软件功能特点:一键ROOTROOt工具,支持机型最多,成功率最高的一键ROOT工具全面支持集成多款ROOT引擎,多平台支持,不断钻研新技术ROOT更多机型系统管理自带授权管理,强力卸载内置垃圾...
V4.0.3 免费版
可获取小米手机root权限
小米M1一键ROOT工具(可获取小米手机V4.0.3版本ROOT权限)使用方法:使用USB数据线连接手机和电脑(我的win7系统,XP系统可能需要自己手动安装驱动)。连接好后,按照命令提示操作即可!获取Root权限过程中,可能需要多次重新启动手机...
V2.3.0 官方版
功能强大的一键root权限工具
一键root神器是一款功能强大的一键root权限工具。软件说明:1、为了解决定制机的root问题,我们专注于各种安卓机型的root破解。2、它会自动连接云服务器,从几百种机型里,智能匹配最适合您机型的Root方案3、在Root之前会自动备份系...
V1.0 官方版
界面简单但是功能强大
现在不需要刷机也能获得root权限了,软件界面简单但是功能强大,智能判断手机情况,输出最符合要求的方案,获取ROOT权限的几率大幅提升完全中文界面,而且傻瓜化设计,适合任何阶段的用户使用通用性强。
V1.0 官方版
一键获取ROOT权限的强大软件
《轻松ROOT》是一款一键获取ROOT权限的强大软件。在手机端安装以后,点击root,然后手机自动重启即可root, 如果root不成功或者出现bug,重启机器即可恢复之前状态。G7和艾诺测试成功,其他机型请自测。
V2.0 官方版
可以最大程度修改系统文件
安卓一键root是一款专业级别的android系统深度定制工具。软件需要获取root权限,它可以最大限度的定制修改系统和软件的数据,从而实现对手机关键功能的自定义。软件功能:1、移动软件到SD卡;2、备份或者删除任何系统或应用的数据;3、...
V2.01 官方版
针对最新款手机的刷机进行详细讲解
你的手机没ROOT之前,你是以一个使用者的身份在用这个手机。你只能被动的使用里面的一些功能。而ROOT之后呢?你就变成了一个开发者的身份。就是说你可以深入的编辑这部手机了。甚至说如今安卓系统说得如火如茶的“刷机”说简单点你的手机ROOT了之后你就...
V1.9.4.4 绿色版
纯绿色的电脑一键root工具
root精灵是一款纯绿色的电脑一键root工具,本款一键root电脑版不仅具有体积小、成功率高等特点,而且还集成了多套root引擎,覆盖android2.3-4.2系统,能够支持中兴华为、三星htc等国内外品牌,超过300款机型,简单又实用。软件特点:1、...
V1.0 官方版
不需要刷机也能获得root权限了
现在不需要刷机也能获得root权限了,软件界面简单但是功能强大,智能判断手机情况,输出最符合要求的方案,获取ROOT权限的几率大幅提升完全中文界面,而且傻瓜化设计,适合任何阶段的用户使用通用性强。
V2.0.1.2 官方绿色版
安卓手机一键root工具
ROOT精灵是为安卓手机一键ROOT工具,运行环境为PC端,绿色无需安装!集成多套ROOT引擎,支持中兴华为、三星HTC等国内外品牌,覆盖Android2.3-4.2超过2000款机型。无Root,不安卓,所以要得到更多的玩机乐趣,通常大家都会对手机进行Root破解,如果你...
索尼LT18i一键ROOT 2.3.4已亲测成功
本文介绍索尼LT18i一键ROOT2.3.4已亲测成功,详细的介绍了索尼LT18i如何获取root教程,并提供相关ROOT工具下载。更多安卓手机系统刷机教程敬请关注安卓网新手教程站。本ROOT方法只测试了2.3.4,并已成功ROOT,先拿出来分享,其他未试。(2.3的和LT15i...
1.1.0 简体中文绿色免费版
一键ROOT工具
今天小编要推荐的就是目前超强悍的Android手机一键root工具软件之一kingroot。kingroot几乎支持Android目前所有的版本。kingroot的一键Root的方法非常简单,只需点击“一键Root”就能让你的手机自动获取Root权限。软件特点:“一键root”(Kin...
V5.1.7 安卓版
集成Z4root,UniversalAndRoot,kingroot等Root方式
一键Root大师加强版再次增加300款机型的一键root,,支持上千部机型一键获取ROOT权限,集成十多套ROOT引擎,成功率遥遥领先!秒杀所有同类软件。一键Root大师手机版Root教程:本教程将为大家带来最简单最快捷的手机端直接一键root教程...
V6.5.5 最新版
卸载预装应用,精简您的系统
360一键root工具是一款支持三星、索爱、MOTO、HTC、LG、中兴、华为等超过70个品牌500款机型的一键root,帮助您获取权限删除系统内不必要的应用,精简系统,加快手机速度。软件功能:1、卸载预装应用,精简您的系统2、彻底关闭后台进程...
V3.5.08 官方免费版
操作简单,安全无风险,轻松获取最高权限
百度出品安卓一键Root工具,操作简单,安全无风险,轻松获取最高权限。最安全最好用对的安卓手机Root工具。Root后,能删除手机预装应用,管理开机自启动,提升手机性能。 功能特点:1、开机加速:禁止开机自启,尽享极速开机2、权...
V1.4.2 官方版
一键获取手机最高管理权限的强大软件
z4root优化版是一款一键获取手机最高管理权限的强大软件。在手机端安装z4root以后,点击root,然后手机自动重启即可root。如果root不成功或者出现bug,重启机器即可恢复之前状态。三星、HTC、联想、华为、中兴等多款机型都测试成功,其他机型请自测。...
BlueStacks安卓模拟器root工具(内附教程)
经过一段时间的摸索,借鉴国外优秀网站的大神放出的英文教程,自己亲测可以对BlueStacks进行ROOT,现下也没有中文教程,以下是我自己集百家所长总结的,BlueStacks安卓模拟器root工具(内附教程),希望对大家有帮助,还有就是希望大家都多交流吧
酷派5950怎么root?
酷派5950怎么root?酷派5950怎么刷机?很多酷派5950用户都在寻找酷派5950root刷机教程,下面统一小编就为大家带来了酷派5950root刷机教程以及root工具下载!还没root的赶紧来看看吧!酷派5950root刷机教程:1.打开手机设置――...
一键刷入 ROOT
【root教程】1.解压N7100_ROOT.Zip会看见Odin3v3.07&CF-Auto-Root-t03g-t03gxx-gtn7100.tar.md5。2.打开Odin3v3.07。3.点击Odin3v3.07里面的PDA,再选择CF-Auto-Root-t03g-t03gxx-gtn7100.tar.md5。...
所以该ROOT方案不会因三星官方升级而失效。
【利用三星特殊挖煤升级模式】,【采取与三星官方固件相同协议】真正实现【无需手动刷入recovery】就USB连上手机直接root!本方案并非采用三星漏洞,所以该ROOT方案不会因三星官方升级而失效。三星S415个机型,含GT-I9508移动版、GT-I9502联通...
三星系列通用一键Root工具
对于Android系统来说,获取了root权限才能够实现更多自定义功能,但手机root的方法各异,并没有一个真正能够完美的一键root工具,能够将所有Android手机全部root,今天笔者为大家推荐的一键root工具就是手机中国网友放出的一键root工具,这个工具具备操...
理论上S4系列所有版本通用,请各机友自测!!!
一、刷入8核版或者4核版的第三方RECOVRY二、刷机步骤:1.下载卡刷包(本软件)后复制到你的外置卡上2.手机关机进入恢复模式3.如果你已经有可以卡刷的recovery,则此第3步可以略过进入恢复模式:手机关机后按住音量上...
目前已经支持快速Root I9190.
Universal Root 现在支持大多数的三星 Galaxy 系列 Android 设备,将为您提供 Odin 更新方式和 Recovery 更新方式。目前已经支持快速Root I9190.
下载附件的 tar 包,在挖煤模式下使用 Odin 刷入,重新启动之后即可获得 ROOT 权限!
通过刷升级版的方式来获取ROOT权限的
三星I9300怎么获取root权限,本文介绍通过刷升级版的方式来获取ROOT权限的,相关教程请查看
三星i9300卡刷获取root权限的图文教程:/jiaocheng/6044.html
HTC ONE X怎么root?
HTCONEX怎么root?本文就教大家如何获取HTCONEXROOT权限所需ROOT工具下载以及简明的教程1.下载附件解压任意目录2.手机的USB调试功能打开,连接到PC3.运行ones一键ROOT.exe当窗口自动退出后,拔掉数据线刷机...
如何获取三星I9250root权限。
本文就教大家如何获取三星I9250root权限。【简明教程】将root.zip放入9250内存卡里面1、第一步:执行“第一步:进入fastboot.bat”,进入bootloader模式2、在该模式下,执行“第二步:recovery.bat”3、注意,不要重启,立刻在bootloader模式下面...
解决华为C8650如何获取root权限的问题
解决华为C8650如何获取root权限的问题。本软件简单易用,欢迎有需要的机友下载.第一步:在手机上,进入设置,应用程序,开发,勾选“USB调试”第二步:解压压缩包(在附件下载),任何位置均可第三步:手机开机,用数据线连接电脑,双击...
HTC T328W root卡刷包
【HTCT328Wroot卡刷包下载】本文提供的是HTCT328W,此包为卡刷升级包,!【使用方法】1:将下载下来的ROOT底包放入SD卡下的根目录里。(不要解压!)2:手机进入fastboot模式(不用连接电脑!)3:用音量键选择第二项RECOVERY后电源...
华为C8812怎么root?
华为C8812怎么root?华为C8812怎么刷Recovery?华为C8812怎么一键解锁?本文所提供的工具下载以及简明的教程(1)确保电脑已正确安装了ADB和FASTBOOT驱动;(2)进入FASTBOOT模式:音量键下和电源键;(3)持续按住10秒左右,界面停留在菊花界面;(...
HTC G14 Root卡刷升级包
HTCG14Root卡刷升级包使用教程:1.下载刷机包然后复制到SD卡根目录2、直接点击之前Flash-Recovery解压出来的重启进入Recovery.bat,就会进入RECOVERY恢复模式了!3、按菜单键向下选择到installzipfromsdcard...
索尼Xperia ZL L35h 一键免解锁ROOT工具
本文介绍索尼XperiaZLL35h一键免解锁ROOT教程,详细的介绍了XperiaZLL35h如何获取root权限教程,并提供相关刷机工具下载。更多安卓手机系统刷机教程敬请关注安卓网新手教程站。1.请把关于手机的电脑软件关闭关闭“安装PCCompanion...
MOTOXT910一键Root工具
MOTO XT910一键Root工具下载,解决MOTO XT910如何获取root权限的问题。本软件简单易用,欢迎有需要的机友下载....
V20804 官方版
专业的安卓程序卸载利器
免Root删内置软件是一款专业的安卓程序卸载利器,可以轻松卸载用户程序和系统内置程序.本软件采用首创智能直接删除程序文件,及其关联缓存文件等.轻松卸载所有类型程序。软件特点:1、不用再去担心哪些系统程序可以删除,哪些不可以删除;...
V2.3.0 官方版
针对最新款手机的刷机进行详细讲解
你的手机没ROOT之前,你是以一个使用者的身份在用这个手机。你只能被动的使用里面的一些功能。而ROOT之后呢?你就变成了一个开发者的身份。就是说你可以深入的编辑这部手机了。甚至说如今安卓系统说得如火如茶的'刷机'说简单点你的手机ROOT了之后你就可以...
V1.2.1 官方版
成功率最高的一款手机一键root工具
完美ROOT是完美刷机的同类产品,可以帮助你的手机一键root,号称是成功率最高的一款手机一键root工具,海量机型支持,无需任何准备工作!支持三星,HTC,索尼,谷歌几大品牌千余款机型一键ROOT,并带有移除ROOT以及自动安装驱动功能。完美ROOT自主研发的...
三星s5368root工具包
首先说明一点,我是标准的菜鸟。拿到这手机的时候,我用的还是黑白屏幕。让我找到方法,只能说是碰巧。昨天看一个群里的朋友聊天看了一下午。期间有不少朋友也成功了,有的说同时开几个ROOT的软件。我是在今天早上1点左右的时候,ROOT成功的。下面我就把...
V4.0 免费版
联想ROOT工具
联想k860root刷机工具原本S2的4.0工具,不过经过测试是可以对K860进行ROOT的,不过有一点不完美,就是不容易彻底移除ROOT。使用方法1、下载联想k860root刷机工具,下载后解压2.手机连接USB线3、运行TPSparkyRoot文件4、打开运行后...
V1.0 免费版
支持对Nexus 4手机进行一键Root、一键解锁等功能
Nexus4的专属工具包:Nexus4Toolkit。该软件支持对Nexus4手机进行一键Root、一键解锁、安装ClockworkModrecovery等高级操作。另外,该工具包还支持自动安装驱动程序、备份、刷机模式、恢复模式以及更多功能。目前该工具只支持Windows平台,没有Mac...
全机型傻瓜root脚本
先去下载并腾讯手机管家forandroid驱动,确认能用QQ管家连接上手机再进行ROOT操作。(否则会提示“系统找不到指定的路径”)出手机管家软件。将下载的文件解压,双击“点我一键root.bat”按照屏幕提示ROOT。使用方法:1、设置----》开...
V35.2 官方版
一键获取ROOT权限的强大软件
超级ROOT是一款一键获取ROOT权限的强大软件,不需要刷机也能获得root权限了,软件界面简单但是功能强大,智能判断手机情况,输出最优方案,完全中文界面,方便操作,而且傻瓜化设计,适合任何阶段的用户使用通用性强。如果root不成功或者出现bug,重启机器...
V2.00 官方版
安卓手机root权限授权软件
安卓手机不ROOT,就不能发挥出安卓手机应有的强大性能!目前一键root工具非常多,但大多都只能ROOT某一个手机型号,更不用说能ROOT目前绝大多数的Android手机了。一键root工具好用吗?下面我教大家腾讯一键root工具使用教程,简单易学,超级好用。
V9.0 官方版
非常有用的一键获取ROOT权限的小工具
傻瓜式root工具箱是一款非常有用的一键获取ROOT权限的小工具,这款软件能够在Android 2.2和Android 3.0系统中正常使用!
V1.81 免费版
Nexus提权工具
NexusRootToolkit是一款方便易用的Nexus提权工具。该软件可以帮助用户来备份android手机系统,应用程序,数据包等,快速的恢复系统,利用备份的img镜像文件。他还支持root权限的提取和破解,可以直接锁定和反锁定root。注意事项:此工具...
V1.6.6 安卓版
能够一键获取安卓手机root权限的软件
Root权限获取是一款能够一键获取安卓手机root权限的软件。该软件集成了多套root引擎,对主流机型的root权限获取可以实现秒杀。对于其他一些不常见或冷门机型也可以实现联网云root,采用联网下载最新root方案来进行root。同时,新版Root权限获取集...
专题教程资讯
小编有话说
ROOT大师是刷机大师团队潜心研究开发的绿色版免安装用于pc端一键获取安卓手机root权限的神器,可完美支持三星、HTC、索尼、华为、中兴、联想、酷派等超过1000个机型,android 2.1-android 4.2系统的手机。软件操作简单,一键解决。
卓大师Root专家
卓大师root专家是一款pc端的android手机root软件。全球用户使用最多的root软件,采用世界领先的一键操作模式,无论普通用户还是高级用户都能快速上手,顺利完成操作。简洁的操作界面,快捷高效的root操作。强大的自制root引擎,无需重启直接秒杀!支持5000款以上的机型一键root!
Root 工具箱 Root Toolbox
一款功能十分强大的root工具箱,市场5星评级,不过需要获取root权限。注意使用root工具箱需要对手机系统和root有一定了解,否者操作可能带来一定风险。
傻瓜一键root
傻瓜一键root是一款专业级别的android系统深度定制工具。软件需要获取root权限,它可以最大限度的定制修改系统和软件的数据,从而实现对手机关键功能的自定义。
现在不需要刷机也能获得root权限了,软件界面简单但是功能强大,智能判断手机情况,输出最符合要求的方案,获取ROOT权限的几率大幅提升完全中文界面,而且傻瓜化设计,适合任何阶段的用户使用通用性强。
CF-Auto-root工具
谷歌发布了安卓4.4.2 KOT49H,也更新了相应的CF-Auto-root工具,支持nexus4安卓4.4.2 KOT49H一键root。还特别舒心的为我们解决了fastboot,adb命令需要的工具包问题,也就是说在这个版本我们不必担心fastboot和adb驱动问题了,CF-Auto-root包里已经自带了。
Root百宝箱
ROOT百宝箱是“九度空间团队”集合市面上数10套成功率极高的root破解引擎为一体的Android应用,一次下载,一次破解,无广告,纯绿色,root成功率高达85%,是市面上唯一一款真正破解root的软件。 内置预装应用卸载功能,使大多数已经root的手机轻松扫除预装软件。你的支持是我们成长的动力。欢迎下载体验。32904人阅读
Android(161)
最近好长时间都没有写blog了,主要是因为最近工作上的事以及下载Android源码的事耽误的(下载源码这件事会在后续的blog中写道,这个真的很有意义呀~~),那么今天来写点什么呢?主要的灵感来自于早上看新闻看到一篇文章说有一款应用在后台中卸载用户手机中的所有浏览器的app,不会被用户察觉,但是最后百度浏览器还是用反侦察技术找到这个邪恶的应用然后将其告上法庭了。那么我们就来看看怎么能够实现应用的静态安装和卸载呢?就是不让用户知道,下面就来一步一步的介绍一下实现步骤:一、访问隐藏的API方式进行静态的默认安装和卸载1.系统安装程序android自带了一个安装程序---/system/app/PackageInstaller.apk.大多数情况下,我们手机上安装应用都是通过这个apk来安装的。代码使用也非常简单:/* 安装apk */
public static void installApk(Context context, String fileName) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.parse(&file://& + fileName),&application/vnd.android.package-archive&);
context.startActivity(intent);
/* 卸载apk */
public static void uninstallApk(Context context, String packageName) {
Uri uri = Uri.parse(&package:& + packageName);
Intent intent = new Intent(Intent.ACTION_DELETE, uri);
context.startActivity(intent);
}通过发一个Intent,把应用所在的路径封装整uri.之后默认启动了PackageInstaller.apk来安装程序了。但是此种情况下,仅仅是个demo而已,很难达到开发者的需求。如:1).界面不好2).被用户知晓3).什么时候安装完了,卸载完了呢?当然这里关于第三点的话,为了达到自己的需求,相信很多人都会接着来监听系统安装卸载的广播,继续接下来的代码逻辑。监听系统发出的安装广播在安装和卸载完后,android系统会发一个广播android.intent.action.PACKAGE_ADDED(安装)android.intent.action.PACKAGE_REMOVED(卸载)咱们就监听这广播,来做响应的逻辑处理。实现代码:public class MonitorSysReceiver extends BroadcastReceiver{
public void onReceive(Context context, Intent intent){
//接收安装广播
if (intent.getAction().equals(&android.intent.action.PACKAGE_ADDED&)) {
//接收卸载广播
if (intent.getAction().equals(&android.intent.action.PACKAGE_REMOVED&)) {
}AndroidManifest.xml文件中的配置:
&receiver android:name=&.MonitorSysReceiver&&
&intent-filter&
&action android:name=&android.intent.action.PACKAGE_ADDED& /&
&action android:name=&android.intent.action.PACKAGE_REMOVED& /&
&/intent-filter&
&/receiver&到此,确实安装卸载的整体流程都知道了,但是这个效果肯定是无法达到项目的需求。一般这种应用商店类(豌豆荚)的项目,肯定是会要自定义提示框效果的安装卸载功能,而不是调用系统的安装程序。那咱就要想法子实现静默安装、卸载咯。下面这种调用系统隐藏api接口来实现静默安装卸载,是比较大众靠谱的,实现自定义的提示界面(关于这个调用系统隐藏的api接口,我们在之前讲到如何获取手机电量的一篇文章中介绍过了)2.系统隐藏的api隐藏api,顾名思义,普通情况下肯定是调用不到的。翻翻源码\frameworks\base\core\java\android\content\pm目录下PackageManager.java,应该发现在注释行里有加上@hide声明。调用的安装下载接口如下:安装接口:public abstract void installPackage(Uri packageURI,IPackageInstallObserver observer, int flags,String installerPackageName);卸载接口:public abstract void deletePackage(String packageName,IPackageDeleteObserver observer, int flags);并且都是抽象方法,需要咱们实现。&看参数里IPackageInstallObserver &observer一个aidl回调通知接口,当前目录中找到这接口:package android.content.
* API for installation callbacks from the Package Manager.
oneway interface IPackageInstallObserver {
void packageInstalled(in String packageName, int returnCode);
}好吧,这里有现成的干货,咱拿过来直接用呗(当然如果没有源码的那就算了,那能实现的只是demo)。具体步骤:从源码中拷贝要使用的aidl回调接口:IPackageInstallObserver.aidl、IPackageDeleteObserver.aidl当然完全可以拷贝整个pm目录,这样就不会报错了。作者项目里面用到了pm,所以把PackageManager.java以及涉及到的一些文件也拷贝过来了,不然eclipse报找不到PackageManager对象。结构如下:注:此处的包名android.content.pm一定要和源码目录结构一致,不然源码里编译会提示找不到aidl接口。一切朝源码编译看齐此处有2种方式实现:1.直接只取IPackageDeleteObserver.aidl和IPackagerInstallObserver.aidl、IPackageMoveObserver.aidl等要使用的接口,然后通过bindService来和系统连接服务,然后直接调用接口即可(这种没有方式作者没试过,不过原理上来说应该是可行的,除非系统没有这个Service实现这个接口。有需求的可以深究下)2.作者此处的方法是直接拷贝了源码PackageManager.java等文件过来,不过靠过来之后eclipse会提示一些接口错误,但这里作者把上面那几个.java文件都放空了,因为用不到,只是为了编译过才拷贝了那么多文件。最简单的就是直接拷贝4个文件即可:PackageManager.javaIPackageDeleteObserver.aidlIPackagerInstallObserver.aidlIPackageMoveObserver.aidl然后把PackageManager.java中报的异常的接口都注释掉即可实现回调接口,代码如下:安装的回调接口:/*静默安装回调*/
class MyPakcageInstallObserver extends IPackageInstallObserver.Stub{
public void packageInstalled(String packageName, int returnCode) {
if (returnCode == 1) {
Log.e(&DEMO&,&安装成功&);
new ToastThread(InstallActivity.this,&安装成功&).start();
Log.e(&DEMO&,&安装失败,返回码是:&+returnCode);
new ToastThread(InstallActivity.this,&安装失败,返回码是:&+returnCode).start();
}安装的方法:String fileName = Environment.getExternalStorageDirectory() + File.separator + &baidu&+File.separator +&UC.apk&;
Uri uri = Uri.fromFile(new File(fileName));
int installFlags = 0;
PackageManager pm = getPackageManager();
PackageInfo pi = pm.getPackageInfo(&com.UCMobile&,PackageManager.GET_UNINSTALLED_PACKAGES);
if(pi != null) {
installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;
} catch (NameNotFoundException e) {
MyPakcageInstallObserver observer = new MyPakcageInstallObserver();
pm.installPackage(uri, observer, installFlags, &com.UCMobile&);从代码中可以看到我们想安装的是从SD卡中的baidu文件夹中的UC.apk(所以在测试程序的时候需要将UC.apk拷贝到SD卡中的baidu文件夹中,或者你可以自定义一个文件的存放目录)卸载原理是一样的卸载的回调接口:/* 静默卸载回调 */
class MyPackageDeleteObserver extends IPackageDeleteObserver.Stub {
public void packageDeleted(String packageName, int returnCode) {
if (returnCode == 1) {
Log.e(&DEMO&,&卸载成功...&);
new ToastThread(InstallActivity.this,&卸载成功...&).start();
Log.e(&DEMO&,&卸载失败...返回码:&+returnCode);
new ToastThread(InstallActivity.this,&卸载失败...返回码:&+returnCode).start();
}卸载的功能:PackageManager pm = InstallActivity.this.getPackageManager();
IPackageDeleteObserver observer = new MyPackageDeleteObserver();
pm.deletePackage(&com.UCMobile&, observer, 0);这里我们一定要传一个包名。自此,静默安装卸载代码实现。最后在AndroidManifast.xml中要注册权限和添加为系统用户组&manifest xmlns:android=&/apk/res/android&
package=&com.autoinstallpackage.demo&
android:versionCode=&1&
android:versionName=&1.0.19&
android:sharedUserId=&android.uid.system&&
&uses-sdk android:minSdkVersion=&4&/&
&uses-permission android:name=&android.permission.ACCESS_NETWORK_STATE&/&
&uses-permission android:name=&android.permission.INTERNET& /&
&uses-permission android:name=&android.permission.INSTALL_PACKAGES& /&
&uses-permission android:name=&android.permission.DELETE_PACKAGES& /&
&uses-permission android:name=&android.permission.MOUNT_UNMOUNT_FILESYSTEMS&/&
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE&/&
&uses-permission android:name=&android.permission.RECEIVE_BOOT_COMPLETED&/&
&/manifest&这里要注意的地方有两个:第一个必须要添加:android:sharedUserId=&android.uid.system&这个是将其应用注册成系统用户组中,如果不加这行代码的话,会出现报错,但是加了这行代码之后,如果还报错的话,重新clean一下项目就好了,这个是Eclipse的一个bug吧还要添加安装和卸载的权限:&uses-permission android:name=&android.permission.INSTALL_PACKAGES& /&
&uses-permission android:name=&android.permission.DELETE_PACKAGES& /&这时候上面的工作都做完之后,那么我们就来用Eclipse运行一下吧:好吧,貌似不是那么的顺利,出现一个安装错误,其实这个信息去百度一下之后会找到很多的相关资料,因为这个问题有很多人遇到过,所以解决的方法也是很多的,就是需要将我们的应用签名成系统级的即可,那么我们该怎么办呢?网上普遍的两种方法:第一种是:得到platform.pem,platform.x509.pem,signapk.jar这三个文件进行签名:签名的命令很简单:java -jar signapk.jar platform.x509.pem platform.pem&&需要签名的apk & 签名之后的apk下图是我签名的操作:第二种方法:很麻烦的,为什么说麻烦呢?因为需要下载源代码,然后将我们的应用拷贝到指定的目录即可:1.如果你有系统源码,最简单的就是将eclipse里面的应用拷贝到系统里面,然后编译系统,会生成out/target/product/generic/system/app/abc.apk,这个应用就是经过系统签名了。具体方法如下:将应用文件夹复制到源码目录:packages/experimental/project_name/里面,并且只保留src、res、libs、androidmanifest.xml这三个文件,里面新建一个Android.mk文件,内容如下:LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-subdir-java-files)LOCAL_PACKAGE_NAME := abcLOCAL_CERTIFICATE := platforminclude $(BUILD_PACKAGE)然后进行编译即可其实我们在将第一种方法的时候有一个问题就是那三个签名的文件到哪里能搞到,这个吗?可以到网上去搜索的,但是本人在下载下来然后进行签名,结果总是失败,于是,我就放弃了从网上去下载,那么还有什么方法可以得到呢?好吧,还得去下载Android源码,编译之后可以在指定的目录中找到这三个文件但是还没有完,不管是第一种方法还是第二种方法,我在试验的过程中还是失败,原因是什么呢?因为我们如果用这三个文件进行签名或者把工程放到源码中进行编译的话,都必须要注意一点:就是签名的文件的系统版本必须和安装到设备的系统的版本一样,说白一点:现在假如签名的那三个文件是从下载的编译之后的源码中得到的,那么这三个文件的版本就是这个Android源码的版本:比如是4.4版本的,那么我们用这三个文件进行签名之后的apk包只能安装到系统版本为4.4的机子上,同理如果我们将工程直接放到Android源码中进行编译的话,假如Android源码的系统版本是4.4,那么编译之后的apk也只能安装到系统版本为4.4的机子上。所以我们从网上下载到的签名的三个文件进行签名之后总是失败,所以这种方式总是不靠谱的,因为我们从网上下载的签名文件肯定不知道他的版本号,但是我们可以将签名之后的包安装到每个版本的系统中进行尝试,所以最靠谱的方式还是我们下载源码然后得到这三个签名的文件即可,因为我们自己下载的源码肯定知道版本的。这三个文件对应的目录是:signapk.jar: 源码目录/out/host/linux-x86/framework/signapk.jarplatform.pk8和platform.x509.pem: &源码目录/build/target/product/security/platform.pk8&platform.x509.pem当我们使用第一种方法的时候,我们需要用Eclipse中导出一个未签名的包,这个很简单了,这里就不介绍了~~运行的结果:因为手头上没有4.4系统的机子,又不想刷机,所以就用模拟器了。在这个过程中安装和卸载可能要一段时间,所以要等待一会,不要着急~~那么我们就介绍了使用隐藏的api来进行默认的安装和卸载app,Demo工程下载地址:导入工程之后,需要做的几步:在SD卡中拷贝一个UC.apk到baidu文件夹(需要新建的)导出未进行签名的包下载签名的工具:按照上面的签名步骤进行操作然后找到一个系统是4.4版本的测试机或者模拟器进行安装包(因为我的签名文件的版本是4.4)二、通过命令进行静态的默认安装和卸载1、需要签名文件,不需要root权限下面我们再来看一下如何使用命令的方式来实现默认的安装和卸载app,我们知道可以使用命令:adb install &apk文件adb uninstall &包名进行安装和卸载操作。我们在代码中可以使用Runtime类进行操作:Runtime.getRuntime().exec(&adb uninstall com.UCMobile&);或者ProcessBuilder:new ProcessBuilder().command(&adb&,&uninstall&,&com.UCMobile&).start(); 看到这两个类的区别在于,第一种是将命令一起写完,第二种是将命令用空格分隔,然后将其当做参数进行传递的,其实command方法的参数是一个String可变参数类型的但是我们执行上面的代码发现总是执行失败,结果才发现,这些命令执行的目录不是在shell层的,但是手机中执行的命令必须要在shell层中的,所以会有问题的,但是我们可以使用pm命令,比如我们使用PC端的命令行进行安装文件:&adb shell&pm install &apk文件其实上面的两行命令和&adb install &apk文件的效果一样但是如果想在手机上执行安装文件只能执行命令:pm install &apk文件(可以把pm命令的作用想成是脱离shell层来执行命令的)不多说了,下面就来看一下代码吧:/*
* m命令可以通过adb在shell中执行,同样,我们可以通过代码来执行
public static String execCommand(String ...command)
Process process=
InputStream errIs=
InputStream inIs=
String result=&&;
process=new ProcessBuilder().command(command).start();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int read = -1;
errIs=process.getErrorStream();
while((read=errIs.read())!=-1){
baos.write(read);
inIs=process.getInputStream();
while((read=inIs.read())!=-1){
baos.write(read);
result=new String(baos.toByteArray());
if(inIs!=null)
inIs.close();
if(errIs!=null)
errIs.close();
process.destroy();
} catch (IOException e) {
result = e.getMessage();
调用这个方法:protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final String path = Environment.getExternalStorageDirectory() + File.separator + &baidu&+File.separator + &360MobileSafe.apk&;
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
//安装apk,filePath为apk文件路径,如/mnt/sdcard/ApiDemos.apk
String result = execCommand(&pm&,&install&,&-f&,path);
Toast.makeText(MainActivity.this, &安装结果:&+result, Toast.LENGTH_LONG).show();
Button btn2 = (Button) findViewById(R.id.btn2);
btn2.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
//卸载apk,packageName为包名,如com.example.android.apis
String result = execCommand(&pm&,&uninstall&, &com.qihoo360.mobilesafe&);
Toast.makeText(MainActivity.this, &卸载结果:&+result, Toast.LENGTH_LONG).show();
}在AndroidManifest.xml中的配置:&manifest xmlns:android=&/apk/res/android&
package=&com.xieyuan.mhfilemanager&
android:versionCode=&1&
android:versionName=&1.0&
android:installLocation=&internalOnly&
android:sharedUserId=&android.uid.system& &
也有:android:sharedUserId=&android.uid.system&这个在前面已经说过了,所以我们现在做的还是将其进行系统签名,具体方法就不多说了,同上下面是运行的结果图:Demo工程下载地址:下载之后的工程导入之后需要进行的几步操作和前面的是一模一样的,这里就不做解释了~~但是我们从上面的方法看到有一个弊端,还是需要系统签名,这个对于一般app来说是个限制,现在机型很多,系统的签名文件也都不一样,所以很难做到这种方式能够适配到所有的机型。那么还有另外的一种方法:2、不需要签名文件,但是需要root权限这种方式很简单和上面的没有太大的区别,就是将上面的命令放到su下面去执行就可以了。从这里我们可以看到,现在很多需要系统签名的或者是命令不能执行的,都会想到su环境中去执行以下。这里不多解释了,直接上代码:public static boolean RootCommand(String command){
Process process =
DataOutputStream os =
process = Runtime.getRuntime().exec(&su&);
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(command + &\n&);
os.writeBytes(&exit\n&);
os.flush();
process.waitFor();
} catch (Exception e){
Log.d(&*** DEBUG ***&, &ROOT REE& + e.getMessage());
} finally{
if (os != null){
os.close();
process.destroy();
} catch (Exception e){
Log.d(&*** DEBUG ***&, &Root SUC &);
}然后我们调用这个方法来执行命令即可:new Thread(){
public void run(){
RootCommand(&pm uninstall com.tencent.mm&);
}.start();这里就可以执行了,这种方式可以适配所有的机型,但是需要root权限,这个就比较麻烦了,但是现在很多安全应用大部分都是采用这种方式的三、拷贝/删除apk文件实现安装和卸载这个方式其实很简单,就是直接拷贝和删除文件即可。我们知道Android中安装的apk都是放在/data/app/目录下面的,所以我们可以将我们需要安装的apk放到这个目录下即可。注:这种方式是可以接收到安装和卸载的系统广播首先我们在设备的SD卡中存放一个待安装的apk:360MobileSafe.apk这里的目录可以随便选择的,我这里选择了SD卡的根目录这里为了看到明显的效果,我们在写一个Demo程序,来接收安装的广播后台监听广播的Service:package com.example.
import android.app.S
import android.content.I
import android.content.IntentF
import android.os.IB
public final class MyService extends Service {
public void onCreate() {
super.onCreate();
IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
filter.addDataScheme(&package&);
filter.setPriority(Integer.MAX_VALUE);
registerReceiver(new InstallReceiver(), filter);
public IBinder onBind(Intent paramIntent) {
}用动态方式进行注册广播广播接收器:package com.example.
import android.content.BroadcastR
import android.content.C
import android.content.I
import android.util.L
public final class InstallReceiver extends BroadcastReceiver {
public void onReceive(final Context context, Intent intent) {
Log.i(&TTT&,&action:&+intent.getAction());
}开启服务:package com.example.
import android.os.B
import android.app.A
import android.content.I
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent i = new Intent(this, MyService.class);
startService(i);
}还要记得在AndroidManifest.xml中进行注册服务:&?xml version=&1.0& encoding=&utf-8&?&
&manifest xmlns:android=&/apk/res/android&
package=&com.example.installpackage&
android:versionCode=&1&
android:versionName=&1.0& &
android:minSdkVersion=&8&
android:targetSdkVersion=&18& /&
&application
android:allowBackup=&true&
android:icon=&@drawable/ic_launcher&
android:label=&@string/app_name&
android:theme=&@style/AppTheme& &
android:name=&com.example.installpackage.MainActivity&
android:label=&@string/app_name& &
&intent-filter&
&action android:name=&android.intent.action.MAIN& /&
&category android:name=&android.intent.category.LAUNCHER& /&
&/intent-filter&
&/activity&
&service android:name=&.MyService&&&/service&
&/application&
&/manifest&我们在PC端可以使用adb push XXX.apk /data/app/&&实现拷贝,但是在设备上这个命令不能执行。因为Android是底层是Linux系统,所以自带的有拷贝命令:1、安装操作1)、拷贝命令cp=&adb shell=&su=&cd /sdcard/=&cp 360MobileSafe.apk /data/app如图效果:在这个过程中,我们通过打印log信息可以看到,是有点耗时的。当然除了这种方式还有另外的一种方式:2)、使用cat命令实现我们知道cat命令有输出重定向的功能=&adb shell=&su=&cd /sdcard/=&cat 360MobileSafe.apk & /data/app/com.qihoo.360.apk运行结果:2、卸载操作卸载也很简单,我需要删除/data/app目录下指定的apk文件,但是我们知道,一个app安装好之后,不仅在这个目录中有数据,还有其他目录中也是有数据的:/data/davlik-cache/ & :存放释放的dex文件/data/data/com.qihoo.360.mobilesafe/ &:存放app的数据/data/system/packages.list &:这个文件是记录安装app的信息的/data/system/packages.xml &:这个文件是记录安装app的详细信息(权限,uid等)命令:=&adb shell=&su=&cd /data/app/=&rm 360MobileSafe.apk运行结果:总结上面就介绍了实现静态安装和卸载的功能,前面两种方法不需要root权限的,但是需要签名文件,这个对于不同机型,有不同的签名文件,(在第二种方法中的两种实现不同的,不需要签名文件,但是需要root权限)这个是件很头疼的事,第三种是不需要签名文件的,对于所有机型都适合,但是需要root权限的,现在很多安全软件在实现静默安装和卸载的时候也都是需要root权限才能进行操作的,而且每个机型上都是可以的。所以他们应该采用的是第二种方式中的第二种实现或者是第三种方式。注:前两种方式是不可以接受系统的安装和卸载广播的,第三种是可以接受系统的安装和卸载广播的。待解决的问题1. 上面我们可以看到我们使用的是4.4版本进行签名的,只能安装到系统是4.4版本的机子上,这个有待考证,因为我们开发的应用不可能只能装到指定的版本中,必须是所有的系统都能进行安装(比如豌豆荚就可以),所以我就做了一个假设,是不是低版本的签名文件进行系统签名之后的apk可以安装到高版本系统中,那么这样就好办了,我们可以下载Android2.2(因为现在市面上最低的版本是2.2了)源码,得到他的签名文件,或者从网上搜索到这个版本的签名文件(至今未找到,如果有找到的请分享,谢谢!!)2. 还有一个问题就是上述的测试环境都是在手机或者模拟器都是root过了,有待考证的是没有root的手机会不会安装时出现问题~~上述的blog是纠结了我几个月的时间才解决的,所以我真心想说的一句话就是:做事千万不要放弃,办法总比问题多,一定要坚持~~,其实上面遇到的最大的问题就是在下载源码过程(没有技术可言,就是考验我们的耐心,同时网络也是一个重要的原因,这里由于某些原因,我下载的是4.4版本的源码,共13G,这里就不公开下载地址了,如果真心需要请留言,我可以共享一下~~),还有就是编译过程,我花费了一周的时间,因为在这个过程中可以说是千难万险,什么问题都有,我重新编译好几次~~好吧,这里有现成的干货,咱拿过来直接用呗(当然如果没有源码的那就算了,那能实现的只是demo)。具体步骤:从源码中拷贝要使用的aidl回调接口:IPackageInstallObserver.aidl、IPackageDeleteObserver.aidl当然完全可以拷贝整个pm目因为手头上没有4.4系统的机子,又不想刷机,所以就用模拟器了。在这个过程中安装和卸载可能要一段时间,所以要等待一会,不要着急~~那么我们就介绍了使用隐藏的api来进行默认的安装和卸载app,Demo工程下载地址:导入工程之后,需要做的几步:在SD卡中拷贝一个UC.apk到baidu文件夹(需要新建的)导出未进行签名的包下载签名的工具:按照上面的签名步骤进行操作然后找到一个系统是4.4版本的测试机或者模拟器进行安装包(因为我的签名文件的版本是4.4)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
微信扫一扫加入安全逆向圈
扫一扫加小编微信
添加时请注明:编码美丽!
我的第一个App: 天真无谐
已经上线了,在各大市场都可以搜索到。希望大家多多支持!!
访问:4662964次
积分:29964
积分:29964
排名:第168名
原创:285篇
评论:1563条
文章:41篇
阅读:645431
文章:23篇
阅读:329693
文章:27篇
阅读:444540
文章:30篇
阅读:398447
文章:64篇
阅读:1107603
(5)(2)(2)(3)(4)(4)(4)(5)(4)(7)(6)(8)(5)(5)(8)(1)(4)(4)(2)(1)(4)(3)(2)(4)(1)(1)(1)(30)(8)(4)(7)(12)(3)(12)(13)(6)(20)(6)(32)(32)

我要回帖

更多关于 自定义权限 的文章

 

随机推荐