原创作品,转载请注明原作者及地址!
by 飞鸿惊雪
http://blog.csdn.net/niyufeng
总之,在openwrt下的qpe已经完成的情况下,我想把android拉到openwrt下。
ok 0 安装beyond compare,或使用diff脚本,测试、对比,得到files-patches;
ok 1 编译tiny210自带的android-2.3.1源代码;
ok 2 编译原始android-2.3.1的goldfish;
ok 3 编译原始android-2.3.1 + tiny210的files-patches补丁;
4 精简2.3.1补丁,去除不需要的补丁,再往2.3.7上移植;
5 分析android和nbd的源代码,把2.3.7移植到openwrt框架上;
|--------------------------------------------------------
| (低原始) --\
| =>得到 (低差异) --\
| (低已好) --/ =>结合 得到 (高版本)
| (高原始) --/
|--------------------------------------------------------
原则只添不减(除非不可共存,相冲突)!
1 android linux内核的普通驱动移植,让内核可以在目标平台上运行起来。
2 正确挂载文件系统:确保内核启动参数,和android源代码system/core/rootdir目录下的init.rc中的文件系统挂载正确。
3 调试控制台,让内核启动参数中的console参数,和android源代码system/core/init/init.c中的console_name设置和硬件保持一致。
4 打开android相关的驱动(logger,binder等),串口输入logcat看logger驱动起来,没有的话调试logger驱动。
----------------
├── Makefile 全局的Makefile
├── build 系统编译规则和配置所需要的脚本和工具
----------------
├── prebuilt 各种平台编译工具链
├── bionic 基础C库源代码
----------------
├── frameworks * Android应用程序的核心框架层(java及C++语言)
├── system * 底层文件系统/库/应用及组件(C语言)
├── dalvik JAVA虚拟机
├── external android使用的一些额外开源库
├── libcore 与媒体播放框架代码相关
----------------
├── packages 各种应用程序实例
├── development 程序开发所需要的实例/模板/工具
----------------
├── ndk
├── sdk
├── cts Android CTS兼容性规范测试用例
----------------
├── vendor * 厂商定制代码
├── device * 厂商定制代码
├── hardware * 一些与硬件相关的库,部分厂家开源的硬解适配层HAL代码
├── kernel * Linux源代码
├── bootable 引导加载器
├── recovery 与目标的恢复功能相关
----------------
----------------
├── kernel * (自带,完成) Linux源代码
----------------
├── build (1稍变化)(针对64 JDK) (变化要改) 系统编译规则和配置所需要的脚本和工具
----------------
├── vendor * (2最主要)(完成,相同) (变化要改) 厂商定制代码
├── device * (2最主要)(完成,相同) (变化要改) 厂商定制代码
├──+frameworks *x (2最主要)(完成,不同,未改动docs,core/tests) (变化要改) 和硬件有关的核心框架中C/C++语言要根据情况修改
----------------
├── system * (3主要)(完成,相同) (变化要改) 底层文件系统/库/应用及组件(C语言)
├── hardware * (3主要)(完成,相同) (变化要改) 一些与硬件相关的库,部分厂家开源的硬解适配层HAL代码
├── external x (3主要)(完成,只添加libusb未删除tcpdump) (变化要改) 依赖的额外开源库
├── libcore x (3次要)(变化,但未改,不同) (变化可不改) 与媒体播放框架代码相关
----------------
├── packages (4次要)(完成,相同) (变化要改) 各种应用程序实例
├──+frameworks x (4次要)和图像界面有关的java程序根据需要修改
----------------
├── development (4次要,变化)(完成,相同) (变化可不改) 程序开发所需要的实例/模板/工具
├── cts (0变化,不改) Android CTS兼容性规范测试用例
├── ndk (0变化,不改)
├── prebuilt (0变化,不改) 各种平台编译工具链
├── bionic (0无变化) 基础C库源代码
├── dalvik (0无变化) JAVA虚拟机(dalvik是依赖于bionic编译的)
├── bootable (0无变化) 引导加载器
├── Makefile (0无变化) 全局的Makefile
├── sdk (0无变化)
----------------
build/core/base_rules.mk:158: *** device/samsung/crespo/sec_mm/sec_omx/sec_osal: MODULE.TARGET.STATIC_LIBRARIES.libsecosal already defined by device/samsung/sec_mm/sec_omx/sec_osal
[ 4.646506] IP-Config: Complete:
[ 4.646537] device=eth0, addr=192.168.0.101, mask=255.255.255.0, gw=192.168.0.1,
[ 4.646617] host=www, domain=, nis-domain=richardnee.com,
[ 4.646668] bootserver=192.168.0.100, rootserver=192.168.0.100, rootpath=
[ 4.648401] DBUG_PORT must not use AFC!
[ 4.652312] Freeing init memory: 1436K
1Wire touchscreen OK
TouchDevice: /dev/touchscreen-1wire
xres = 800, yres = 480
[ 3.149864] mmc0: new high speed MMC card at address 0001
[ 3.150163] mmcblk0: mmc0:0001 000000 122 MiB
[ 3.150478] mmcblk0: p1
[ 3.642449] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
[ 4.646498] IP-Config: Complete:
[ 4.646529] device=eth0, addr=192.168.0.101, mask=255.255.255.0, gw=192.168.0.1,
[ 4.646609] host=www, domain=, nis-domain=richardnee.com,
[ 4.646659] bootserver=192.168.0.100, rootserver=192.168.0.100, rootpath=
[ 4.648398] DBUG_PORT must not use AFC!
[ 4.652309] Freeing init memory: 1436K
[ 4.926688] init: cannot open '/initlogo.rle'
[ 4.943464] Kernel panic - not syncing: Attempted to kill init!
[ 4.943526] Backtrace:
[ 4.943577] [] (dump_backtrace+0x0/0x110) from [] (dump_stack+0x18/0x1c)
[ 4.943653] r6:dfc34000 r5:c07dc2a0 r4:c07daafc r3:00000000
[ 4.943720] [] (dump_stack+0x0/0x1c) from [] (panic+0x74/0xf0)
[ 4.951291] [] (panic+0x0/0xf0) from [] (do_exit+0x74/0x5f4)
[ 4.958492] r3:c07dc2a0 r2:00000000 r1:00000025 r0:c0734e90
[ 4.964118] [] (do_exit+0x0/0x5f4) from [] (do_group_exit+0x98/0xc8)
[ 4.972189] r7:dfc02200
[ 4.974690] [] (do_group_exit+0x0/0xc8) from [] (get_signal_to_deliver+0x358/0x394)
[ 4.984120] r7:dfc02200 r6:dfc37ec8 r5:00106001 r4:dfc36000
[ 4.989682] [] (get_signal_to_deliver+0x0/0x394) from [] (do_signal+0x70/0x688)
[ 4.998709] [] (do_signal+0x0/0x688) from [] (do_notify_resume+0x20/0x50)
[ 5.007203] [] (do_notify_resume+0x0/0x50) from [] (work_pending+0x1c/0x20)
[ 5.015857] r4:ffffffff r3:00000000
[ 5.019401] Rebooting in 5 seconds..
[ 5.884652] eth0: no IPv6 routers present
[ 5.264526]
[ 5.264545] Restart
Install: out/target/product/smdkv210/system/app/QuickSearchBox.apk
target Java: Settings (out/target/common/obj/APPS/Settings_intermediates/classes)
packages/apps/Settings/src/com/android/settings/DisplaySettings.java:40: 软件包 com.slsi.sec.android 不存在
import com.slsi.sec.android.HdmiService;
^
packages/apps/Settings/src/com/android/settings/DisplaySettings.java:64: 找不到符号
符号: 类 HdmiService
位置: 类 com.android.settings.DisplaySettings
private HdmiService mHdmiService;
^
packages/apps/Settings/src/com/android/settings/DisplaySettings.java:110: 找不到符号
符号: 类 HdmiService
位置: 类 com.android.settings.DisplaySettings
mHdmiService = new HdmiService();
^
358 Copying: out/target/common/obj/JAVA_LIBRARIES/android.policy_intermediates/emma_out/lib/classes-jarjar.jar
359 target Java: services (out/target/common/obj/JAVA_LIBRARIES/services_intermediates/classes)
360 frameworks/base/services/java/com/android/server/MountService.java:1105: 找不到符号
361 符号: 变量 usbdisk
362 位置: 类 com.android.internal.R.drawable
363 myNoti.icon = com.android.internal.R.drawable.usbdisk;
364 ^
target Java: SystemUI (out/target/common/obj/APPS/SystemUI_intermediates/classes)
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarService.java:348: 找不到符号
符号: 变量 net3g
位置: 类 com.android.internal.R.drawable
setStatusIcon(com.android.internal.R.drawable.net3g, "Connected. (FriendlyARM-3G)");
^
注意:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/Ticker.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
com.slsi.sec.android.HdmiService
com.android.internal.R.drawable.usbdisk
com.android.internal.R.drawable.net3g
原创作品,转载请注明原作者及地址!
by 飞鸿惊雪
http://blog.csdn.net/niyufeng