Chinaunix首页 | 论坛 | 博客
  • 博客访问: 810983
  • 博文数量: 210
  • 博客积分: 10002
  • 博客等级: 上将
  • 技术积分: 1840
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 09:56
文章分类

全部博文(210)

文章存档

2011年(1)

2010年(6)

2009年(65)

2008年(138)

我的朋友

分类: LINUX

2009-02-17 15:58:31

本文适用于rc30及rc29
作为android开发人员,程序本地测试成功后在传到手机上测试是必不可少的一步,但要把程序从PC上安装到g1上并不简单(至少不是想象的那么简单),g1手机
被限制只能从market下载并安装软件(google也够黑的),对开发人员来说这确实很难解决,不过经过我们近4小时的摸索,找到一个在g1上安装android的方
法,现奉献出来,以免更多的程序员(或者测试员)走弯路。也可以到 查看原文
整个过程主要分为以下几大步
1.驱动下载,adb安装及apk安装
驱动地址:
adb地址:
2.rc30降级为rc29获得root权限并上传.so文件
3.修改g1系统属性,移动.so到lib目录并修改属性
1.驱动下载,adb安装及apk安装 
  前两天我哥接了一个任务,编写一个android程序,经过几天加昼夜的牺牲,终于搞好了,最后公司拿来一个g1,要他把程序传到g1测试。
等到他拿回来,上网一查资料,找不到相关资料,看来在g1上测试的人还不多,再一查资料,了解到g1只能从market上下载软件,当即浇灭了我们的热情。
抱着唯一的希望又研究了一会,然后决定先安装adb再说。

必备:
1.ADB(android debug bridge)
2.g1 usb驱动android_usb_windows
  将驱动解压后插入g1 usb接口,电脑自动提示安装,安装完毕后再下载adb,下载后解压, 把里面 adb.exe 和 AdbWinApi.dll 两个文件放到系统盘的
windows/system32 文件夹里就可以了.
  接下来打开CMD,先"cd 桌面"回车,再输入"adb devices",如果列出g1的话就表示连接成功了,没有的话看看前面是否漏了什么。
  然后把写好的程序 aaa.apk 和 bbb.so准备好,这里先安装apk 输入"adb install " 安装完后第一步就算完成了。
2.rc30降级为rc29获得root权限并上传.so文件
  要使程序能执行,还要把bbb.so拷贝到g1的 system/lib/ 下,push 是adb的拷贝命令,先试一下直接push过去,输入"adb push <.so路径> /system/"
显示read-only system 所以接下来我们就要拿到g1权限,复制.so到g1上
降级过程(网上也有不少相关资料)
  先下载一个.nbh文件,地址:
然后确保g1内有sd卡,用fat32格式化sd,然后把解压后的img文件拷贝到sd卡上。如果sd卡不能访问的话先断开g1,再插上,点屏幕上的notification
选择usb connect.
  关机,按住g1的相机快捷键(在g1侧面)再开机,进入Boot loader模式,再按一下电源键开始降级过程,可能需要5-6分钟时间。
  完成后按下一软键再同时按住"Call" + "Menu" + "End"(电源)重启。
  重启后查看一下版本,setting->about phone 如果显示rc29,表明降级成功,可以进行root权限设置了^_^.(注意,重启后需要重新注册一个账户,如果
有就直接输入,没有就注册一个,必须是gmail账户,如果联网时提示无法连接google server,请看)
下载androidmod,把解压后的recovery_testkeys.img放到桌面上 然后执行"adb push recovery_testkeys.img /data/local/recovery.img"
然后把g1重启(一定要重启),重启完毕后什么键都不要按,直接输入"telnetd",然后回车(没反应,不用管),然后按返回键到应用程序界面(按两次)
打开telnet程序(如果你没有的话就要到market下载一个),这时就可以连接了.
telnet连接后出现最经典的界面,这时就可以松一口气了,成功就在眼前。
输入 "mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system" 让system目录变为可写,这样用adb push的时候就不会出现read-only system了(注:
如果重启了的话又要输入这个命令才行)
3.修改g1系统属性,移动.so到lib目录并修改属性
然后在电脑上用adb命令把bbb.so push到g1上去,这时可能暂时不能push到lib下,先放到其他地方,"adb push /data/local",然后在g1上输入
"dd if=/data/local/bbb.so of=/system/lib/bbb.so",就可以把bbb.so拷到lib下(另一种方法是把bbb.so先通过电脑传到g1的sd卡上,比如sd卡根目录下,
然后在g1上输入"dd if=/sdcard/bbb.so of=/system/lib/bbb.so",也可以把.so文件拷到lib下)
现在.so文件已经拷贝过来了,是不是可以执行了呢,试了一把,居然还不行,又检查了一遍,发现是属性问题,拷贝过去的bbb.so不允许其它程序读取,
还要改一下。先在/system/lib 下找到bbb.so, 然后输入"chmod 644 bbb.so" 没有错误的话就成功了,返回应用软件界面,启动程序,成功了…

阅读(1538) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~