设为首页 加入收藏

TOP

Android程序的安全系统
2014-11-24 03:24:57 来源: 作者: 【 】 浏览:1
Tags:Android 程序 安全 系统

在Android系统中,系统为每一个应用程序(apk)创建了一个用户和组。这个用户和组都是受限用户,不能访问系统的数据,只能访问自己的文件和目 录,当然它也不能访问其他应用程序的数据。这样设计可以尽可能地保护应用程序的私有数据,增强系统的安全性和健壮性。


但是有一些应用程序是需要访问一些系统资源的。比如Setting程序,他就需要访问wiffi,在系统中创建删除文件等等操作。怎样做到这一点儿呢?Android通过一定途径可以获得system权限。获得system用户权限,需要以下步骤:


1. 在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性。


2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行


3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。


ifconfig eth0 192.168.1.188


在普通用户或者system用户权限下面这条命令是不起作用的,但是不会返回失败和异常,这个我个人认为是Android的bug。那么怎样实现这个功能呢?我想出了两个办法。


1、系统启动的时候init进程创建一个后台进程,该进程处于root用户权限下面。用来监听系统中应用程序的请求(可以用socket实现),并代其完成。这样应用程序就可以执行root用户权限的任务了。


2、实现一个虚拟的设备,该设备的功能就是在内核态帮应用程序执行相应的命令。Linux内核态没有权限的问题了。肯定可以执行成功。


我解决设置网卡IP地址问题时,选择是后者。相对来说设计比较简单。


如果你到网上去搜一下,你会发现很多文章说怎样让Android应用程序获得root权限。如果你不想浪费时间就不要相信他们,因为那些途径是根本不可能获得root权限的。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android对数据库表的一个约定 下一篇Android UI Operation in Thread ..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·你必须要弄懂的多线 (2025-12-25 04:22:35)
·如何在 Java 中实现 (2025-12-25 04:22:32)
·Java【多线程】单例 (2025-12-25 04:22:29)
·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)