Tiny210 从源代码开始创建Android
来源:互联网 发布:手机陀螺仪校准软件 编辑:程序博客网 时间:2024/06/05 20:26
友善之臂的开发板手册上提供了从源代码开始创建Android的两个脚本:build-android,genrootfs.sh 以及使用制作yaffs2格式的文件系统映像
1.build-android
1#!/bin/bash 2 3if [ ! -e "./jdk1.6.0_23" ]; then 4 tar xzf jdk1.6.0_23.tar.gz 5fi 6 7tar xzf symlinks.tgz 8 9# if [ -e "../Android-2.2-apps/" ]; then 10# cd ../Android-2.2-apps/ 11# ./apply_patch.sh 12# cd - 13# fi 14 15export PATH=$PWD/jdk1.6.0_23/bin:$PATH 16. setenv 17make -j$CPU_JOB_NUM || exit 1 18 19# if [ -e "../Android-2.2-apps/" ]; then 20# cd ../Android-2.2-apps/ 21# ./build-apps 22# cd - 23# fi 24 25exit 0
这个用到了setenv脚本
1#!/bin/bash 2 3CPU_JOB_NUM=$(grep processor /proc/cpuinfo | awk '{field=$NF};END{print field+1}') 4 5PRODUCT='full_mini210' 6 7source build/envsetup.sh 8 9TARGET_PRODUCT=$PRODUCT 10TARGET_SIMULATOR=false 11TARGET_BUILD_TYPE=release 12TARGET_BUILD_VARIANT=eng 13 14export PATH TARGET_PRODUCT TARGET_SIMULATOR TARGET_BUILD_TYPE TARGET_BUILD_VARIANT 15
2.genrootfs.sh
主要是文件系统的打包。
1.将编译好的文件复制到rootfs_dir,并修改文件属性
2.建立linux文件设备节点
3.安装 prebuilt packages
4.安装内核模块与固件
1#!/bin/sh 2 3PRODUCT=smdkv210 4 5echo -n "Generating rootfs for Android..." 6rm -fr rootfs_dir 7cp -a out/target/product/${PRODUCT}/root/ rootfs_dir 8cp -a out/target/product/${PRODUCT}/system/* rootfs_dir/system 9cp -a out/target/product/${PRODUCT}/data/* rootfs_dir/data 10chown root:root rootfs_dir -R 11chmod 755 rootfs_dir/system/etc/dhcpcd/dhcpcd-run-hooks 12chown 1014:2000 rootfs_dir/system/etc/dhcpcd/dhcpcd-hooks -R 13chown 1000:1000 rootfs_dir/data -R 14echo "...done" 15 16function mvapk() 17{ 18mv $1 rootfs_dir/mnt/apps 19echo " $1" 20} 21 22if [ "${PRODUCT}" = "smdkv210" ]; then 23echo -n "Create device file..." 24mkdir rootfs_dir/dev/input 25mknod rootfs_dir/dev/tty c 5 0 26mknod rootfs_dir/dev/console c 5 1 27mknod rootfs_dir/dev/fb0 c 29 0 28mknod rootfs_dir/dev/pointercal c 10 119 29mknod rootfs_dir/dev/input/event1 c 13 65 30mknod rootfs_dir/dev/ts-if c 10 185 31mknod rootfs_dir/dev/touchscreen c 10 180 32mknod rootfs_dir/dev/touchscreen-1wire c 10 181 33mknod rootfs_dir/dev/s3c2410_serial0 c 204 64 34mknod rootfs_dir/dev/s3c2410_serial3 c 204 67 35echo "...done" 36 37echo -n "Install prebuilt packages..." 38if [ -f vendor/samsung/common/busybox-bin.tgz ]; then 39tar xf vendor/samsung/common/busybox-bin.tgz -C rootfs_dir/system 40ln -sf /system/busybox/bin/busybox rootfs_dir/system/bin/sh 41mkdir -p rootfs_dir/bin && ln -sf /system/busybox/bin/sh rootfs_dir/bin/sh 42fi 43if [ -f vendor/samsung/common/iwtools-bin.tgz ]; then 44tar xf vendor/samsung/common/iwtools-bin.tgz -C rootfs_dir/system/bin 45fi 46echo "...done" 47 48echo -n "Install kernel modules and firmware..." 49if [ -f vendor/samsung/smdkv210/firmware.tgz ]; then 50tar xf vendor/samsung/smdkv210/firmware.tgz -C rootfs_dir/system/etc 51fi 52if [ -f vendor/samsung/smdkv210/kernel-modules.tgz ]; then 53tar xf vendor/samsung/smdkv210/kernel-modules.tgz -C rootfs_dir/system/lib 54find rootfs_dir/system/lib/modules/ -name modules.* \ 55-o -name source -o -name build | xargs rm -rf 56fi 57echo "...done" 58 59echo -n "Install proprietary-open files..."#友善的东西我没有找到这个包。 60[ -f FriendlyARMData.tgz ] && tar xf FriendlyARMData.tgz -C rootfs_dir 61echo "...done" 62 63 64 cp vendor/friendly-arm/mini210/rootdir/* rootfs_dir/ -af 65 66chown 1000:1000 rootfs_dir/data/app -R 67chmod 775 rootfs_dir/data/app 68chmod 664 rootfs_dir/data/app/*.apk 69 70 find rootfs_dir/ -name CVS -type d | xargs rm -rf 71fi 72
3.制作yaffs2格式的文件系统映像
使用mkyaffs2image-128M工具,可以把目标文件系统目录制作成yaffs2格式的映像文件,当它被烧写入Nand Flash中启动时,整个根目录将会以yaffs2文件系统格式存在,缺省的Android内核已经支持该文件系统,在命令行输入:
#cd /opt/FriendlyARM/mini6410/android/Android-2.3#mkyaffs2image-128M rootfs_dir rootfs_android.img
将会在当前目录下生成rootfs_android.img文件,
- Tiny210 从源代码开始创建Android
- 从何处开始阅读源代码
- Android 从Activity创建开始,绘制View的过程
- 【Android入门日记】二、从最开始开始---创建android工程
- 从何处开始阅读Linux源代码(转)
- 从何处开始阅读linux内核源代码
- 从何处开始阅读linux kernel源代码
- Linux测试软件:从源代码开始
- tiny210 android 编译分析
- tiny210 + uboot + nfs + android
- 2011从Android开始
- 从源代码理解创建LayoutInflater的路径
- 从create-android-project.bat开始创建eclipse下可调试的cocos2dx c++工程
- Android Transition 和 Activity & Fragment Transition详解(三)--从创建一个Scene开始
- 如果互联网从今天开始创建
- 从0开始创建FX3工程之一
- 从0开始,创建 AWS EC2 实例
- tiny210+android,nand分区代码
- 软件架构师的错误
- 技术杂谈:嫁给程序员的好处
- URLClassLoader应用
- EXTjs 怎样遍历树的所有节点获取节点下的值
- httpClient 多线程
- Tiny210 从源代码开始创建Android
- 使用SeaJS实现模块化JavaScript开发
- 不定输入参数函数的编程中需要用到的宏,即注意事项
- C++引用与指针的区别
- NPN和PNP作为开关管的设计技巧以及全系列三极管参数
- Linux/Ubuntu下 静态编译Qt程序
- IOS中使用json
- 黑客帝国并非虚构,世界就是程序代码,人类末日近在咫尺(连载)
- 安装CRM2011需要注意事项