用Android模拟器运行FTK
2010-07-06 04:25:00 来源:WEB开发网文章出处:http://www.limodev.cn/blog
用Android模拟器运行FTK
以前写过一篇文章介绍如何在Androidr模拟器上运行FTK(http://www.limodev.cn/blog/archives /1400),那种方法有点别扭,而且要下载Android 的源代码才能编译。最近几个开发板都坏了,所以上周末研究了一下Android模拟器,自己生成文件系统,只是利用Android的模拟器来运行FTK。
Android的模拟器是基于qemu的,个人感觉qemu不好用,除了用Openmoko做的模拟器外,我还没成功用qemu来模拟运行过arm linux。Android在qemu做了不少人性化的工作,用起来比较方便。
0.请参考网上的方法安装Android SDK。
1.生成自己的init程序。
创建几个基本目录。
int init_dirs(void)
{
umask(0);
mkdir("/dev", 0755);
mkdir("/system", 0777);
mkdir("/dev/block", 0755);
return 0;
}
创建MTD设备的结点。
int init_dev_nodes(void)
{
int ret = 0;
ret = mknod("/dev/block/mtdblock0", 0755|S_IFBLK, makedev(31, 0));
printf("mknod /dev/block/mtdblock0 ret = %d errno=%d ", ret, errno);
return 0;
}
加载system.img 分区。
int mount_filesystem(void)
{
int ret = 0;
ret = mount("/dev/block/mtdblock0", "/system", "yaffs2", 0, NULL);
printf("mount /dev/block/mtdblock0 ret = %d errno=%d ", ret, errno);
return 0;
}
运行FTK的桌面。
int startup_desktop(const char* name)
{
struct stat st = {0};
int ret = stat(name, &st);
if(ret != 0)
{
return -1;
}
printf("starting the second init: %s. ", name);
if(fork() == 0)
{
ret = execl(name, name);
}
return ret;
}
int switch_root(void)
{
int ret = chroot("/system");
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
- ››android bitmap与base64字符串的互相转换
赞助商链接