网上的方式都失败了... 网上的方式据说是 用于 2.0 左右版本的. 而我们现在主流都用的是  4.0 以上的.

这个http://quantoubao.blog.163.com/blog/static/2083211702013870501987/ 说的是4.0以上的 可是我还是没成功.


于是我决定看看 root 原理自己搞一下:

先看这段描述:

一、 概述

本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识。

二、 Root 的介绍

1.       Root 的目的

可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等。

2.       Root的原理介绍

谷歌的android系统管理员用户就叫做root,该帐户拥有整个系统至高无上的权利,它可以访问和修改你手机几乎所有的文件,只有root才具备最高级别的管理权限。我们root手机的过程也就是获得手机最高使用权限的过程。同时为了防止不良软件也取得root用户的权限,当我们在root的过程中,还会给系统装一个程序,用来作为运行提示,由用户来决定,是否给予最高权限。这个程序的名字叫做Superuser.apk。当某些程序执行su指令想取得系统最高权限的时候,Superuser就会自动启动,拦截该动作并作出询问,当用户认为该程序可以安全使用的时候,那么我们就选择允许,否则,可以禁止该程序继续取得最高权限。Root的过程其实就是把su文件放到/system/bin/ Superuser.apk 放到system/app下面,还需要设置/system/bin/su可以让任意用户可运行,有set uid和set gid的权限。即要在android机器上运行命令:adb shell chmod 4755 /system/bin/su。而通常,厂商是不会允许我们随便这么去做的,我们就需要利用操作系统的各种漏洞,来完成这个过程。

特别说明:我们烧机中的Eng版本并没有Root权限

3.       Root的方法

从Root的原理我们了解到,root 过程分三步:

a.        adb push su /system/bin

b.        adb push SuperUser.apk /system/app

c.       adb shell chmod 4755 /system/bin/su


到这里 因为我们是sdk root 就实现了.

下面正式开始root  sdk 我这里是 Android 4.0.3 arm 版本. x86 和 其它的我没试验

1 下载地址 : http://superuserdownload.com/  面后解压 里面有 SuperUser.apk 和 su 文件



2 由于sdk是只读挂载的所以 我们先将它 挂载为 rw
adb shell mount -o rw,remount yaffs2 /system

3 把 su 上传到  /system/bin 和 /system/xbin ,然后把 SuperUser.apk 上传到  /system/app ,最后把 /system/bin/su 设置为 4755权限
adb push su /system/bin
adb push su /system/xbin
adb push SuperUser.apk /system/app
adb shell chmod 4755 /system/bin/su

到这里就root 完成了. 现在你运行请求root的app 就可以出现 请求root 的窗口了.

还有第二个方式 更简单 下载 百度一键root 
    1  adb shell mount -o rw,remount yaffs2 /system
    2  运行  百度一键root  点击 一键root 就ok了.


现在有个问题就是每次启动你都得重复上面两种步骤之一. 如果想永久root 哪就得改 system.img 了

路径在 : android-sdk\system-images\android-16\default\armeabi-v7a

第一步:
    这个目录下有个文件 build.prop
    打开它找到 ro.config.nocheckin=yes 这一行 删除掉

第二步:
然后用 YAFFS2IMG 这个软件打开  system.img



根目录下也有个 build.prop 同样也是  导出  打开它找到 ro.config.nocheckin=yes 这一行 删除掉 然后导入 右键权限修改 为 0644
导入 我们刚才下载的 SuperUser 解压后有个 su 文件 到  /bin 和 /xbin 修改权限  /bin/su 为 4755 /xbin/su 0755
同样导入 SuperUser.apk 到 /app 目录下 修改权限为 0666
然后保存. 替换以前的system.img. 这样就可以永久root了
 

android avd sdk root的更多相关文章

  1. 【已解决】mac上appium报错:“Could not find aapt Please set the ANDROID_HOME environment variable with the Android SDK root directory path”

    按照网上教程配置完appium环境后,真机跑自动化过程,遇到如下报错: appium报错如下: [ADB] Checking whether aapt is present [ADB] The AND ...

  2. 修改android studio中的avd sdk路径、avd sdk找不到的解决方案

    要进行Android应用程序的开发,首先就要搭建好Android的开发环境,所需要的工具有如下4个:1.java JDK:2.Android SDK:3.Eclipse:4.ADT 1.java JD ...

  3. Could not find aapt Please set the ANDROID_HOME environment variable with the Android SDK root directory path

    写case写好好哒,突然debug的时候就冒出这个错误: selenium.common.exceptions.WebDriverException: Message: An unknown serv ...

  4. Appium问题解决方案(7)- Could not find 'adb.exe' in PATH. Please set the ANDROID_HOME environment variable with the Android SDK root directory path

    背景:运行代码提示找不到ADB An unknown server-side error occurred while processing the command. Original error: ...

  5. Android平台免Root无侵入AOP框架Dexposed使用详解

    Dexposed是基于久负盛名的开源Xposed框架实现的一个Android平台上功能强大的无侵入式运行时AOP框架. Dexposed的AOP实现是完全非侵入式的,没有使用任何注解处理器,编织器或者 ...

  6. Android AVD创建及设置中各参数详解

    设置AVD时有些参数比较模糊,特地找了篇文章,大家参考下! 本文根据如下的模拟器安装做一些解释: Name:自定义虚拟的名称,不能有空格或者其他非法字符,否则不能创建,即Creat AVD不能高亮点击 ...

  7. 解决Android AVD启动报错问题

    好不容易从ADT Bundle转为Android Studio的开发环境,一路荆棘,现在又遇到了模拟器的问题,本来直接用真机调试程序会更快些,但是为了模拟多种系统不得不开启AVD. 废话不说,问题和解 ...

  8. Centos Android开发环境配置-Android Tools -android list sdk --extended --all

    Centos Android开发环境配置-Android Tools -android  list sdk --extended --all 安装完Android Tools后执行 android   ...

  9. PANIC: HOME is defined but could not find Nexus_4_API_22.ini file in $HOME/.android/avd (Note: avd is searched in the order of $ANDROID_AVD_HOME,$ANDROID_SDK_HOME/.android/avd and $HOME/.android/avd)

    sudo cp /root/.android/avd/*.ini  $Home/.android/avd/ sudo cp -r  /root/.android/avd/*.avd  $Home/.a ...

随机推荐

  1. mvc模型验证

    自定义的ValidationAttribute类, Compare   [Compare("MyOtherProperty")] 两个属性必须相同值,比如我们要求用户重复输入两次邮 ...

  2. 10天学会phpWeChat——第一天:核心框架的目录结构

    phpWeCaht是一款优秀的PC网站+微信公共号开发框架. 本博客系列将图文结合,详细介绍phpWeChat 的使用方法,今天进入phpWeChat系列教程之<10天学会phpWeChat&g ...

  3. powerdesinger

    www.sap.com solutions>data management>powerdesinger http://www.sap.com/product/data-mgmt/power ...

  4. Jquery:hide一个元素,需要注意的问题(offset)

    $(".load_more").css('display','none'); 或 $(that.more).find("strong").hide(); 需要注 ...

  5. WeX5 - AJAX跨域调用相关知识-CORS和JSONP

    http://docs.wex5.com/ajax-cross-domain/ 1.什么是跨域 跨域问题产生的原因,是由于浏览器的安全机制,JS只能访问与所在页面同一个域(相同协议.域名.端口)的内容 ...

  6. DHTMLX-Form

    DHTMLX-Form dhtmlxForm提供了一个标准形式与一些有用的补充,如不同风格,使用的数据从客户端和服务器端,与其他dhtmlx组件的集成.验证等. 例子 <!DOCTYPE htm ...

  7. JAVA源码走读(二)二分查找与Arrays类

    给数组赋值:通过fill方法. 对数组排序:通过sort方法,按升序.比较数组:通过equals方法比较数组中元素值是否相等.查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找 ...

  8. Js中JSON数据交换使用总结

    Json格式简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是JavaScript原 ...

  9. C++ vector erase函数的使用注意事项

    最近使用了顺序容器的删除元素操作,特此记录下该函数的注意事项. 在C++primer中对c.erase(p) 这样解释的:  c.erase(p)    删除迭代器p所指向的元素,返回一个指向被删元素 ...

  10. 相机标定:Matlab标定工具箱使用要点

    1.单目标定 1.核心步骤 (1)获得标定数据:<Images_names>, <Read images>, <Extract grid corners> 1)输入 ...