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文件,
 

原创粉丝点击