安卓怎么让软件获得最高权限

安卓怎么让软件获得最高权限... 安卓怎么让软件获得最高权限 展开
 我来答
小炫马扎
高粉答主

推荐于2016-07-16 · 关注我不会让你失望
知道顶级答主
回答量:3.4万
采纳率:86%
帮助的人:4537万
展开全部
  1. 将要执行的命令写成脚本,或者可执行程序。
  下面是脚本 ifconfig_test.sh :
  # ! /system/bin/sh
  ifconfig
  注意: 脚本的第一行必须为 # ! /system/bin/sh ,否则无法执行,通过 dmesg 可以查看到信息内容为 cannot execve ./ifconfig_test.sh: Exec format error
  也可以采用 C/C++ 编写需要执行的命令或者程序,并在编译 image 的时候编译成可执行程序。

  2. 在 init.rc 中注册 service
  Android 中的 service 需要在 init.rc 中注册, Init.rc 中定义的 Service 将会被 init 进程创建,这样将可以获得 root 权限。当得到相应的通知(通过属性设置)后, init 进程会启动该 service 。
  本文中注册的内容如下:
  service ifconfig_test /system/etc/ifconfig_test.sh
  oneshot
  disabled
  其中, oneshot 表示程序退出后不再重新启动, disabled 表示不在系统启动时启动。
  注意: 这里 service name 不能超过 16 个字符。我之前的 service name 由于定义的比较长, 18 个字符,设置属性通知 service 启动后查看 dmesg 可以看到提示: init: no such service 。查看 /system/core/init/parser.c 的源代码,在 parse_service->valid_name 函数中可以看到如下内容: if (strlen(name) > 16) { return 0; } ,证明 service 的名字的确不能超过 16 个字符。

  

  3. 将 Android 应用程序提升为 system 权限
  既然应用程序可以通过启动 service 获得 root 权限,那么岂不是很不安全。 Android 考虑到了这点,规定只有 system 权限的应用程序才能设置属性,通知 service 启动。关于提升 system 权限的文章网上已有很多,这里就不再细说

  4. 在应用程序中添加属性设置代码
  前面已经提到,对于 Android 来说,应用程序通知 init 启动 service 是通过设置系统属性来完成的,具体为设置 System 系统属性 “ctl.start” 为 “ifconfig_test” ,这样 Android 系统将会帮我们运行 ifconfig_test 这个 service 了。
  对该系统属性的设置有三种方法,分别对应三种不同的应用程序:
  1) Java 代码

  Android 在 Java 库中提供 System.getProperty 和 System.setProperty 方法, Java 程序可以通过他们来设置和获得属性。代码如下:
  SystemProperties.set("ctl.start", "ifconfig_test");
  上面的代码是通知 Android 执行 ifconfig_test service ,如果需要查询当前 service 执行的状态,如是否执行完毕,可以通过如下代码查询:
  ret = SystemProperties.get("init.svc. ifconfig_test ", "");
  if(ret != null && ret.equals("stopped"))
  {
  return true;
  }

  2) JNI 代码
  当编写 NDK 的程序时,可以使用 property_get 和 property_set 这两个 API 来获得和设置属性。使用这两个 API 必须要包含头文件 cutils/properties.h 和链接 libcutil 库。
  3) Shell 脚本
  Android 提供了命令行 setprop 和 getprop 来设置和获取属性,他们可以在脚本中被使用。
  由于我的程序是在 JNI 中调用脚本,脚本中又执行 ifconfig ,因此我将设置属性的部分放在了脚本中完成,代码如下:
  setprop ctl.start ifconfig_test
  #wait for the service until it stops
  ret=1
  while [ $ret -ne 0 ]
  do
  getprop | grep "$ENABLE_MAPPER_SRV" | grep stopped
  ret=$?
  done
  通过上面 4 个步骤, Android 应用程序就获得了 root 权限,更具体的说,是在执行需要执行的命令时临时获得了 root 权限。
法本信息技术
2024-10-28 广告
作为深圳市法本信息技术股份有限公司的工作人员,开发软件需经历需求分析、设计、编码、测试和部署等阶段。首先明确软件功能需求,然后进行系统设计,包括模块划分、功能分配等。接着,依据设计进行编码实现,确保代码质量。完成编码后,进行详尽的测试以验证... 点击进入详情页
本回答由法本信息技术提供
403371577
2011-03-27 · TA获得超过134个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:106万
展开全部
root...那可以让软件获得根权限...也就是root权限``现在在安卓网上有一键root机的教程`````
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8495568
2011-03-29 · TA获得超过2593个赞
知道小有建树答主
回答量:1063
采纳率:0%
帮助的人:384万
展开全部
一键ROOT吧,安装之后再安装R.E手机管理器,用R.E管理器删除手机内置软件
1、一键ROOT: RyanZA_z4root
http://www.youii.com/a/shoujishuajibao_ROMxiazai/huawei/2011/0322/7103.html
2、一键Root!Universal Androot 1.6.1
http://www.youii.com/a/yingyongruanjian/xitonggongju/2010/1006/3591.html
3、R.E手机管理器
http://www.youii.com/a/yingyongruanjian/xitonggongju/2011/0302/6783.html

具体选择哪一款ROOT工具,请细看链接内的说明。建议用Z4,简单安全。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
80285439
2013-04-21 · TA获得超过133个赞
知道答主
回答量:114
采纳率:0%
帮助的人:27.1万
展开全部
但root后不稳定不保修
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式