一、使用原厂镜像对nexus s刷机 1. 下载原厂镜象文件
https://developers.google.com/android/nexus/images#soju 在打开的页面中选择Factory Images "soju" for Nexus S下面的三个镜象,这里选择4.0.4 (IMM76D), 下载好是soju-imm76d-factory-ca4ae9ee.tgz,解压,并把fastboot.zip包下面的那些工具拷到soju目录下, adbreboot bootloader // bootloader界面,fastboot界面 sh flash-all.sh或者双击flash-all.bat 2. 解锁并刷入recovery.img 1) 解锁。 要想获得root权限,必须解锁。如果已解锁就不要再运行unlock了。 adbreboot bootloader //进入bootloader界面。开机时按住 音量上+电源 fastboot oem unlock//注意这步会删除掉SD卡、ROM中的原有内容,请在之前做好备份 2) 刷入recovery并root 把ROOT&BusyBox_Patch.zip放入手机sdcard,运行: adbreboot bootloader //开机时按住音量上+电源 fastboot flash recovery recovery.img // v4.0.1.4
刷完后不要重启,否则recovery会被恢复到原版。直接由bootloader界面进入recovery,点击install zip from sdcarcd,选择ROOT&BusyBox_Patch.zip,搞完后重启。 获取root失败,需要通过百度一键root工具进行root.
i9300的root: adb reboot bootloader // 进入bootloader界面
打开运行Odin3v3.06.exe,勾选AutoReboot/F.Reset Time两项,点击PDA按钮,从刷机工具包中选择CF-Root-SGS3-recovery.tar。
adb reboot recovery //进入recovery界面
二、自己编译android源码并刷到nexus s设备中 1. 下载源码(这里我选择android4.0.4_r1.1): 参考: http://source.android.com/source/downloading.html mkdirandroid4.0.4_r1.1
cdandroid4.0.4_r1.1
curl https : //dl-ssl.google.com/dl/googlesource/git-repo/repo > ./repo
chmod a+x repo
打开https://android.googlesource.com/new-password打开,申请结果拷贝到~/.netrc
./repo init - u https : //android.googlesource.com/platform/manifest -bandroid4.0.4_r1.1 如果下载失败,则改为以下重试: ./repo init -u https://android.googlesource.com/a/platform/manifest -b android4.0.4_r1.1
最后./repo sync下载
注:关于版本的选择 从 https://developers.google.com/android/nexus/images上看,我手上的设备港版i9023只能刷soju, 2.3.6 (GRK39F) 4.0.4 (IMM76D) 4.1.2 (JZO54K) 所以我就选择以上的源码之一进行编译,从 http://source.android.com/source/build-numbers.html中查一下,以上三种源码对应的括号里的代码,这里我选择 IMM76D,找到 android-4.0.4_r1.1
2. 编译源码 1) 在编译之前要设置好vendor目录。打开 http://source.android.com/source/building-devices.html,找到“Obtaining proprietary binaries”,按说明操作: 打开 https://developers.google.com/android/nexus/drivers,搜索 IMM76D,在Binaries for Nexus S ("crespo")目录下找到Nexus S binaries for Android 4.0.4 (IMM76D to IMM76L),这里有五个link链接,下载下来,各自解压放到源码根目录下,依次执行sh extract-xxxx.sh并输入I ACCEPT。最后你会发现源码根目录下增加了vendor目录。 2) 编译 . build/envsetup.sh
lunch (显示所有选项,输入full_crespo-userdebug前面的数字) make clobber //删除所有配置所编译输出的结果文件。类似于:rm –rf ./out/ make -j16
注:其他make命令 make clean 删除本次配置所编译输出的结果文件。类似于:rm –rf ./out/ <configuration> make LOCAL_MODULE:编译一个单独得模块(需要有Android.mk文件存在)。 make targets:将输出所有拟可以编译的模块名称列表。
3. 将编好的img文件刷到nexus s手机中: 编译完成后进入out/target/product/crespo目录查看, 将boot.img和system.img拷到fastboot目录下, adb reboot bootloader 执行: fastboot -w -p flashall fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash system system.img
fastboot flash userdata userdata.img //fastboot flash cache cache.img //fastboot flash ramdisk ramdisk.img 完了以后重启手机查看手机版本号4.0.3
总结:这样就可以在真机上运行我们自己编译源码的镜象,就不用每次依赖模拟器来学习源码了。
其他falsh命令参考: fastboot flash recovery recovery.img fastboot flash userdata userdata.img fastboot flash ramdisk ramdisk.img 更多fastboot命令参考上文中flash-all.sh 参考: http://source.android.com/source/building-devices.html

=========================== 2015.10.31 编译android4.1.2_r1 需要java6,ubuntu12.04上安装java6的方法: 1.在/etc/apt/sources.list末尾加上如下行: ###forinstallJava6 debhttp://ppa.launchpad.net/ferramroberto/java/ubuntunattymain 2.sudoapt-getupdate 更新索引时候提示: W:GPG错误:http://ppa.launchpad.netnattyRelease:由于没有公钥,无法验证下列签名:NO_PUBKEYB725097B3ACC3965 3.下载安装这个key sudoapt-keyadv--recv-key--keyserverkeyserver.ubuntu.comB725097B3ACC3965 4.sudoapt-getupdate 5.sudoapt-getinstallsun-java6-jdksun-java6-jresun-java6-plugin(你也许还要:sudoapt-getinstallsun-java6-demosun-java6-source) 6.安装完后,系统默任被切换到java6上来 7.安装完毕后把/etc/sources.list增加的两行注释掉然后sudoapt-getupdate以避免升级安装之混乱 8.如果你的系统之前安装过默认java7,如果你觉得想回来练练。可以这样来回切换java的版本: sudoupdate-java-alternatives-sjava-7-oracle sudoupdate-java-alternatives-sjava-6-sun 当然验证java的版本的方法是: java-version;javac-version
============================ 2015年11月2日 星期一 刷机 adb reboot bootloader//重启进入fastboot模式 adb reboot recovery //recovery界面
编译 make snod//产生一个新的系统映像system.img make ramdisk//编译ramdisk make userdataimage//编译userdata make systemimage//编译system make bootimage//编译kernel

更多相关文章

  1. hello,Android
  2. 【android studio】 gradle配置成本地离线zip包
  3. Android(安卓)获取APK编译时间
  4. Android(安卓)NDK: WARNING: APP_PLATFORM android-14 is larger
  5. Android开发之蓝牙(Bluetooth)---源码目录
  6. Android源码编译后
  7. 编译cubieboard android 源码过程详解之(五):make
  8. 使用IntelliJ IDEA搭建phoneGap for Android开发环境HelloW...
  9. Android(安卓)Jetpack之LiveData源码分析

随机推荐

  1. 实例演绎php遍历数组与js遍历数组的区别
  2. 8月2日作业
  3. IBM X6服务器linux数据恢复过程
  4. 抖音用户评论和ID的采集方法
  5. 0802 PHP编程作业
  6. php foreach循环语句
  7. 08-03作业
  8. 1. php变量的8种数据类型? 2. php变量类型
  9. PHP基础课第二次作业
  10. 作业标题:0803 php变量与常量作业