首页
社区
课程
招聘
[原创]从零编写简单的手机管家
发表于: 2015-1-4 23:59 23887

[原创]从零编写简单的手机管家

2015-1-4 23:59
23887
前段时间无意发现LBE主动防御能检测通过PM or ADB安装程序,觉得挺有意思。平时很少写APK,开发确实有些苦手,逼着自己练练。琢磨了下原理,实现了很一小部分类似功能,稍微记录下,作为学习笔记。水平实在有限,难免有错误和疏漏之处,请各位大大斧正。

一、  功能规划及实现
1.  手机加速:枚举后台进程,调用ActivityManager.killBackgroundProcesses实现
2.  流量管理
2.1 流量统计:枚举应用程序,通过TrafficStats统计流量,并累积
2.2 流量防火墙:移植开源防火墙DroidWall实现对WIFI和运营商网络的访问,需要ROOT权限
3.  应用管理
3.1 普通应用程序:枚举应用程序,根据用户卸载需求,通过构造Intent.ACTION_DELETE 实现卸载
3.2 预装软件:扫描/system/app下的应用程序,根据用户卸载需求,remount /system目录RW,实现对卸载
4.  主动防御
4.1静默安装程序拦截
原理:普通安装和静默安装最大的区别在于调用Binder服务的UID,根据此即可实现拦截。
实现步骤:
        1. 注入system_server,HOOK PackageManager服务端的Binder代理
        2. 重写此Binder代理中的onTransact函数,在这个函数中,过滤出TRANSACTION_installPackage,即安装APK请求。再通过UID过滤是否为静默安装。若是静默安装,则与service通信,弹窗倒计时。根据用户选择实现允许或者阻止
4.2通知管理
原理和静默安装拦截类似,替换Binder服务端的代理实现。
实现步骤:
        1. 注入system_server,HOOK NotificationManager服务端的Binder代理。
  2. 重写onTransact函数。过滤出TRANSACTION_enqueueNotificationWithTag和TRANSACTION_enqueueNotificationWithTagPriority请求。解包Parcel data,获得发送通知的包名。将报名发送到service查询黑名单,命中则返回相应code。将data丢弃,构造Reply返回。否则,重新打包Parcel data,将数据下发。

APK写得比较搓,就不丢上来了。
(有图有真相,录了个视频,丢出来献丑了:http://pan.baidu.com/s/1c0ngu2W)

二、参考文献
谷歌Binder服务原理
http://blog.csdn.net/l173864930/article/details/38468433

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (37)
雪    币: 114
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
太强大了莫拜楼主
2015-1-5 00:23
0
雪    币: 188
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
膜拜一个
2015-1-5 00:47
0
雪    币: 8835
活跃值: (2394)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
4
收藏,顶了~
2015-1-5 00:51
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
5
老V这么早就顶贴
2015-1-5 08:17
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mark
2015-1-5 10:25
0
雪    币: 1981
活跃值: (771)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
7
牛逼
2015-1-5 11:24
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼主加油!不错
2015-1-6 09:36
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
mark
2015-1-6 10:08
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
10
我是来看思路的~~赞
2015-1-6 10:31
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
先赞个。

不过Android 这种管家,几乎就是废材,所以不想用Android了。
2015-1-6 10:43
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
太强大了莫拜楼主
2015-1-7 00:11
0
雪    币: 10
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
膜拜楼上火雀哥
2015-1-7 08:33
0
雪    币: 203
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
思路清晰,明了。。。楼主强人
2015-1-11 11:26
0
雪    币: 83
活跃值: (269)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢分享思路,收藏了。不知楼主能否分享下代码
2015-1-13 10:15
0
雪    币: 88
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
精华帖必须收藏一个!
2015-1-13 15:49
0
雪    币: 137
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
mark
2015-1-15 14:51
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
太强大了莫拜楼主
2015-1-18 11:53
0
雪    币: 6953
活跃值: (2833)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
有转安卓的想法了最近
2015-1-19 16:43
0
雪    币: 177
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
这个确实NB,顶
2015-1-22 09:06
0
雪    币: 102
活跃值: (50)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
希望能得到这个apk
2015-1-22 14:53
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
楼主厉害@@!!!!膜拜!!
2015-2-6 10:24
0
雪    币: 573
活跃值: (984)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
23
Mark.
2015-6-13 11:52
0
雪    币: 14
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
感谢思路分享
2015-6-13 17:12
0
雪    币: 193
活跃值: (847)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
很牛的一说
2015-6-13 17:51
0
游客
登录 | 注册 方可回帖
返回
//