[笔记] 移动的Linux——Android随心root配置与找回遗忘的wifi密码
来源:互联网 发布:多益网络行政薪资 编辑:程序博客网 时间:2024/06/04 17:58
这几天数着回家的日子,也便思考着如何摆弄HTC。
网上成片的刷机的帖子,ROOT的帖子,倦了,找找这些东西的原理吧。
于是便有了这篇小文,为以后需时用。
一开始以为ROOT需要多少的技术,要找到小缝将su文件写到ROM里。后来发现,将手机关机,同时按Vol-和power键启动类似BIOS的小系统,进入Recovery后就已经是root权限了。安装了Android SDK之后,命令行里adb shell进入,就能随意浏览文件夹,修改文件的属性等。那些ROOT软件的原理可以解释为:
1)从Linux的代码里将su抓出来,修改少许,然后使用Google Android Native SDK包里的arm-linux-andriodeabi-gcc编译成可执行文件
2)用adb push命令将su的可执行文件放入/sbin或/system/bin中(adb push c:\linux_src\compiled\su /sbin)。
3)使用Linux的chmod命令使su在用户模式下可执行(chmod 755 /sbin/su)。
这样只要再写一个apk应用和su互交就可以了,平时的时候用terminal执行su也能得到root权限。
我们同样可以作一个自己的命令:
1)写一个C程序hello.c:
#include <stdio.h>int main(int argc, char** argv) { printf("Hello Android Platform!\n"); return 0;}
2)使用Android Native SDK编译:
ndkdir\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-gcc -I"ndkdir\platforms\android-8\arch-arm\usr\include" -L"ndkdir\platforms\android-8\arch-arm\usr\lib" -o hello hello.c
这里的ndkdir就是你的Android Native SDK的安装路径,而android-8则是Android 2.2的包,目前最新的应该是android-14吧。
如果编译提示找不到crtbegin_dynamic.o或crtend_android.o,就干脆直接将ndkdir\platforms\android-8\arch-arm\usr\lib里的这两个文件复制到hello.c的文件夹下。
3)使用adb push:
adb push compileddir/hello /sbin/hello
4)使用adb shell:
adb shell
mount /system
cd /sbin
ls -l hello
chmod 755 hello
ls -l hello
exit
然后 adb reboot 重启手机
5)等手机重新启动到正常界面,我们可以打开terminal软件,然后尝试输入hello,Hello Android Platform就会输出在屏幕上了。同样的,在apk程序中也可以直接使用shell条用hello。目前busybox很强大,安装以后,连insmod都有了,可以自己写Android的Linux驱动进行内核编程了。自己配置自己的Android吧~
另外还发现了一个小应用:
当你不记得你家wifi的密码时,这个也能帮上忙——
启动Recovery,然后在windows命令行里:
adb shell
mount /data
(等待一段时间)
cd /data/misc/wifi
ls -l wpa*
cat wpa_supplicant.conf > /sdcard/wifi_password.txt
这样就把你手机以前连过的所有wifi的密码找回来啦,放进了sd卡里的wifi_password.txt中。
同样的原理,你可以在这种模式下轻松的删除不想要的自带应用:
adb shell
cd /system/app
ls *Facebook*
rm *Facebook*
忘了说一声,整个过程都是将手机和电脑USB连接上的,如果你有能力,可以写个wifi的驱动在recovery里直接加载,这样连USB都可以省了吧,世界是给懒人准备的~
- [笔记] 移动的Linux——Android随心root配置与找回遗忘的wifi密码
- 找回遗忘的Linux密码
- linux的root密码找回
- 找回root的密码
- 轻松找回遗忘的Win管理员密码
- 找回wifi密码的记忆
- linux下修改root密码以及找回密码的方法
- Linux下修改root密码以及找回密码的方法
- Linux修改root密码以及找回密码的方法
- Linux下修改root密码以及找回密码的方法
- linux下修改root密码以及找回密码的方法
- Linux下修改root密码以及找回密码的方法
- Linux下修改root密码以及找回密码的方法
- Linux下修改root密码以及找回密码的方法
- Linux下修改root密码以及找回密码的方法
- Linux下修改root密码以及找回密码的方法
- Linux下修改root密码以及找回密码的方法
- Linux下修改root密码以及找回密码的方法
- JDCB基础
- zend的soap是如何通过反射文档自动构建wsdl的
- HDU 1565 方格取数(1) (最小权值独立集)
- 东秦1086
- 23中设计模式
- [笔记] 移动的Linux——Android随心root配置与找回遗忘的wifi密码
- 有时候用long long 会超时 用int 不会
- MySQL 主主同步配置
- Git基础
- Hadoop集群(第1期)_CentOS安装配置
- Json.net如何支持DataSet DataTable.
- perfHUD使用说明
- Hadoop集群(第2期)_机器信息分布表
- 黑马程序员_接口和包的复习