android 源码编译ko,Android ROM研究---如何在ubuntu下下载姜饼(Gingerbread)源代码并编译Android ROM...

10、在模拟器上运行编译好的镜像文件

最后,同步这些变化:(注意,我的~是/root,我是以root用户登录的)

# source ~/.bashrc

# cd ~/Android/out/target/product/crespo

# emulator -system system.img -data userdata.img -ramdisk ramdisk.img

最后进入android桌面,就说明成功了。 但是上面的只是系统应用源码编译完成后,用google自带的模拟器来运行测试的,而我需要用google nexus s

的三星的内核编译,所以还需要其他的动作要进行

11、下载Nexus s 的kernel source

#cd /root/bin

(你的项目创建的源代码,就是大多人用的~/mydroid这个目录)

#git clone git://android.git.kernel.org/kernel/samsung.git

下载完成后,会在bin目录下面出现一个samsung的文件夹,这个就是你刚才下载的内核源码所在的位置,现在开始编译

#export PATH=$PATH:/root/bin/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/

#make ARCH=arm clean

#make ARCH=arm herring _defconfig

#make -j4 ARCH=arm CROSS_COMPILE=arm-eabi-

说明:上面四条语句要正确,尤其是路径要正确,否则后面执行make的时候会出现各种各样的错误

第一条:设置交叉编译链,这样内核编译环境就设置好了

第二条:为内核结构准备源目录树

第三条:内核参数设置

第四条:j4表示4核CPU

差不多一个小时左右,你会发现,在samsung目录下有

/root/bin/samsung/arch/arm/boot/zImage镜像文件

/root/bin/samsung/drivers/net/wireless/bcm4329/bcm4329.ko

12、将你的手机取得root权限

接下来,要将编译好的镜像文件放入到真机里进行测试,首先需要做的工作是先将你的手机root,

只有有了root权限以后才能够进行下一步操作。详细的Nexus S的root步骤参考wiki上的root教程,

因为只有手机root以后,才能够将自己编译好的内核在Nexus S上测试

13、在手机上运行编译好的samsung内核

现在的工作是将编译好的内核在Nexus S上测试,下载下面的附件,解压后将fastboot文件存放到你的SDK/tools目录下,

将unpack-booting.pl脚本文件和mkbootimg 二进制文件放入到你的roo目录下的NS-bootwork文件夹下,另外,

将你编译好的zImage镜像文件也好拷贝到此文件夹下(如果没有该文件夹,自己创建)

进入你的SDK/tools目录下,执行adb shell

$adb shell

此时,你的手机上显示“授权请求”,默认是10秒以后就过时了,所以需要在10秒之内,点击允许。点击允许以后,

$符号将会变成#,表示已经取得了root权限。(注意:手机必须root以后才能够使用)

将boot.img下载到本地,你可以用adb命令,也可以用终端程序

#adb shell

$su

#cat /dev/mtd/mtd2 > /sdcard/boot.img

退出adb到终端的tools目录下

#adb pull /sdcard/boot.img /root/NS-bootwork

#cd NS-bootwork

#./unpack-booting.pl boot.img

#cd boot.img-ramdisk/

#find . | cpio -o -H newc | gzip > /root/NS-bootwork/boot.img-ramdisk/ramdisk-repack.cpio.gz

#cd ..

#./mkbootimg --kernel zImage --ramdisk /root/NS-bootwork/boot.img-ramdisk/ramdisk-repack.cpio.gz

--base 0x30000000 --pagesize 4096 -o newtestboot.img

这样,就在该目录下生成了一个newtestboot.img镜像文件

进入到SDK/tools文件夹下,关闭你的手机。然后长按电源键和音量上键进入bootloader界面

在Ubuntu的终端上执行

#cd /home/loulijun/android/android-sdk-linux_86/tools

#./fastboot boot newtestboot.img(必须是root权限)

如果boot成功,说明你的内核是对的,点击“设置”--“关于手机”--“内核版本“

显示

2.6.35.7-ge382d80

root@ubuntu#1

说明成功了,但这只是测试,从新启动后,就会回复到之前的样子,可以再次执行上面的操作,可以看到

2.6.35.7-ge382d80

android-build@apa28

内核版本好都是一样的,说明下载的内核源代码跟手机用的是一样的0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值