`
coolerbaosi
  • 浏览: 725319 次
文章分类
社区版块
存档分类
最新评论

android 4.0 编译模式 eng - > user 时遇到的有关问题

 
阅读更多
android 4.0 编译模式 eng -- > user 时遇到的问题

关键词:android 4.0 user eng camera nand 串口

平台信息:

内核:linux3.0

系统:android4.0.3

平台:S5PV310(samsung exynos 4210)

问题描述:android4.0编译模式由eng变成user后出现如下问题:

1、设置中wifi开关选项没有了(打开、关闭选项);

2、不能安装应用程序apk;

3camera提示插入sd卡(实际sd卡、nand正常挂载);

4、串口终端有信息输出,但是不能操作(只能看到内核输出信息,敲键盘没反应)。

一、更改编译脚本build_android.sh

找到下面脚本,改为user模式:

二、问题分析、解决

1、对2、3两个问题分析

不能安装应用程序apk; camera提示插入sd卡(实际sd卡、nand正常挂载);

感觉是nand、sd卡的权限不,查看权限:

2、对比编译生成的system,发现问题

发现有system/etc/permissions在两种模式下有所不同,编译成user时4.0.3_r1/out/target/product/smdkv310/system/etc/permissions/少了一些xml文件,

如:android.hardware.camera.xml、android.hardware.wifi.xml、platform.xml等

我们知道out目录下生成的文件,是在其它地方copy过来的,找到这些xml文件在源头在:4.0.3_r1/frameworks/base/data/etc中,查看4.0.3_r1/frameworks/base/data/etc/ndrAoid.mk编译选项,发现一些问题:

LOCAL_MODULE_TAGS := eng这个值为eng,所以在user模式下编译时,对应的文件不做copy,LOCAL_MODULE_TAGS:= user时编译时出错。编译脚本太深入的话,我也看不懂里面的东西,所以想了一种比较简单的方法,编译时不判断模式,直接copy文件:

3、在device.mk中加入copy操作,解决问题

我们在4.0.3_r1/device/samsung/smdkv310/deivce.mk中加入copy命令,如下:

编译完成后要检查一下4.0.3_r1/out/target/product/smdkv310/system/etc/permissions/这个目录下,是否把frameworks/base/data/etc/目录下的xml文件复制过来。

注意:烧录时,清除userdata\cache两个分区,这里面会记忆一些系统信息,不清除的话,还是会出现错误现象。

前三个问题解决,我们再看下第四个问题:

4、串口的操作选择(debugable使能)

问题:串口终端有信息输出,但是不能操作(只能看到内核输出信息,敲键盘没反应)。

这个问题也是无意间发现的,其实在user模式下,串口本来就不能操作的,也就是说这是正常的现象,但是我们考虑到在试产过程中总会出现一些问题,要用到串口跟踪信息,所以还是想找到原因:

(1)default.prop

我们对比下default.prop在两种模式编译下的差异:

(2)、全局搜索,找到对这个值设定的位置4.0.3_r1/build/core/main.mk
更改:4.0.3_r1/build/core/main.mk

关于user、eng这两种模式,BSP中应该都支持,也许我们拿到的BSP不全,这里面的问题只是针对user、eng编译里的个别问题。我不能详细的分析,一方面我做驱动方面的工作,对系统方面了解有限,另一方面BSP编译规则一般是由芯片厂去做这部分工作。希望对遇到相同问题的“同学”有所帮助,自己也做一点备忘记录。


转载自:http://www.myexception.cn/android/520223.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics