Settings中相关信息的更改
修改alps\build\tools\buildinfo.sh-修改echo "ro.build.display.id=$BUILD_DISPLAY_ID", 把 $BUILD_DISPLAY_ID 修改成其他的名称可改变 Build Nubmer. 注意此时要去除$.-修改echo "ro.product.model=$PRODUCT_MODEL", 把 $PRODUCT_MODEL 修改成其他的名称可改变 Model Nubmer. 注意此时要去除$-修改echo "ro.build.version.release=2.1" , 中的2.1, 可改变显示的Firmwareversion-但是做上述修改时需要注意,某些属性是跟fingerprint相关的,如果修改了跟fingerprint相关的属性,那么ro.build.fingerprint也要做出相应修改原始状态下ro.product.fingerprint属性设置如下:echo“ro.build.fingerprint=$BUILD_FINGERPRINT”其中$BUILD_FINGERPRINT=$( PRODUCT_BRAND)/$(PRODUCT_NAME)/$(TARGET_DEVICE):$( PLATFORM_VERSION)/$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_TYPE)/$( BUILD_VERSION_TAGS)=>[ro.build.brand]/[ro.product.name]/[ro.product.device]:[ro.build.version.release]/[ro.build.id]/[ro.build.version.incremental]:[ro.build.type]/[ro.build.tags]所以,如果修改了ro.build.brand、ro.product.name、ro.product.device、ro.build.version.release、ro.build.id、ro.build.version.incremental、ro.build.type、 ro.build.tags这些属性那么,ro.product.fingerprint的属性设置需要做出修改假如贵司修改了”echo ro.product.name=test_name”,那么ro.product.fingerprint的属性设置需要修改为:echo"ro.build.fingerprint=${PRODUCT_BRAND}/test_name/${TARGET_DEVICE}:${PLATFORM_VERSION}/${BUILD_ID}/${BUILD_NUMBER}:${TARGET_BUILD_TYPE}/${BUILD_VERSION_TAGS}"Baseband Version 直接写在 modem.img 中,开机后modem 自动推送到AP 端。Kernel Version 为linux 编译过程中产生, 按照标准的linux格式生成(compile.h), 最后版本信息写在文件/proc/version 下,所有的版本信息即在该文件的第 一行,然后使用了一个正则表达式过滤了版本信息中一些字符,参考DeviceInfoSettings 下的getFormattedKernelVersion 方法。
Kernel 定制化
配置kernel部分是使用kernel的原生命令make menuconfig即可,但不同的软件版本稍有差别。
ICS/GB版本请在alps代码目录下shell:
./mk ${project name} new /* 在配置kernel前先保证new过,如果已经new过可以省却这步。new后会在kenerl目录下生成.config,该文件在make menuconfig会用到,如果不存在.config文件则所有的kernel配置都会恢复成默认的 */cd kernel /* 切换到kernel目录 */TARGET_PRODUCT=${project name} make menuconfig /* 使用menuconfig配置,修改选项后保存退出,此时会在kernel目录下重新生成.config文件 */
将.config复制到mediatek/config/${project name}/autoconfig/kconfig/目录下并重命名为project
重新new kernel和用./mk bootimage即可下载
ICS2以后的版本请在alps代码目录下shell:
./mk ${project name} new /* 在配置kernel前先保证new过,如果已经new过可以省却这步。
new后会在kenerl目录下生成.config,该文件在make menuconfig会用到,如果不存在.config文件
则所有的kernel配置都会恢复成默认的 */
cd kernel /* 切换到kernel目录 */
TARGET_PRODUCT=${project name} make O=../out menuconfig /* 如果出现
../mediatek/build/kernel/Makefile找不到的错误,请用 TARGET_PRODUCT=${project name}
KBUILD_OUTPUT_SUPPORT=yes make O=out menuconfig.配置完后,new kernel, 如果还有错误可以用./mk mrproper kernel清除kernel并删除
kernel/include/config目录,然后再new kernel */
将out/.config复制到mediatek/config/${project name}/autoconfig/kconfig/目录下并重命名
为project
重新new kernel和用./mk bootimage即可下载
上面的定制化方法参考自MTK_on_line_FAQ_SW_ALPS_20131021.pdf.但是根据上面定制化时出现的问题如下:
第一:在给内核添加xinput驱动时,按照上面的配置出错,当时也没有找到更好的方法,直接采用了最为暴力的方式,直接把相对应的模块加入到了obj-y 变量,编译成功!
后面经过摸索,发现一种较为合理的方式可以解决上述问题,暴力方式虽然直接但建议最好不要轻易使用。
因为mtkSDK是内核已经被mtk根据自己的平台定制过,所以在配置时需加载定制过的.config。但在kernel目录里面找不到此文件。可以从如下路径拷贝out/target/product/goldstone85_bx_ip_kk/obj/KERNEL_OBJ/.config 其中goldstone85_bx_ip_kk为工程名。拷贝之后可以按照上述的方法定制化内核,选择需要添加的模块,保存退出menuconfig。kernel目录中的.config和原始.config比较,轻而易举的可以知道修改配置的选项,在mediatek/config/${project name}/autoconfig/kconfig/project上做相应的修改即可!
第二:在配置rt2800驱动时,没有发现配置选项
在menuconfig菜单下,可以通过敲入"/"搜索选项内容。搜索RT2X00
位置应该在 Location:
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Wireless LAN (WLAN [=y])-> Ralink driver support 选项
但在Wireless选项没有发现Ralink driver support选项,如下图所示:
花了较长时间才发现,RT2X00依赖模块没有完全包含,如下图所示:
选择MAC80211模块后,再次进入Wireless LAN选项如下:
选择展开后,可以到达RT2x00的选项!
定制化后根据修改的config选项修改工程的project配置选项,但是会出现错误,如下图所示:
最终直接将新定制化生成的.config覆盖工程的project文件,居然编译通过!!!!不知道mtk折腾个啥??!!