友善之臂的开发板手册上提供了从源代码开始创建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文件,

更多相关文章

  1. android 数据存储值 sharedPreferences
  2. Android调用接口,获取并解析数据(json格式)
  3. Android(安卓)用HttpClient 以Post方式提交数据并添加http头信息
  4. android MediaPlayer+Stagefright架构(音频)图解
  5. Installation error: INSTALL_CANCELED_BY_USER
  6. [置顶] Android下的stl读取3D显示
  7. 怎样在Android中解析doc、docx、xls、xlsx格式文件?
  8. android 将Bitmap转YUV420sp(实例)
  9. android json数据传递时编码格式的转换

随机推荐

  1. Android(安卓)Broadcast(广播)简单样例
  2. Android连续点击两次返回键退出App
  3. 【Android】Wifi管理与应用
  4. Android手势下拉抽屉效果
  5. Android初学笔记1
  6. android之sql例子
  7. Android(安卓)SDK 2.1 install
  8. android常用开源库分享
  9. android json相关
  10. IntentService简介