如題,我先make mini6410的image
事後我修改BoardConfig.mk 支援wifi及bluetooth,也有 正确編譯tool,但是請問如果我想包在rootfs的image,是不是先必須要make clean, 再make
還是直接make,我修改的部份就會加到roofs的image。
例如:
在 build/target/board/generic/BoardConfig.mk 中添加:
BOARD_HAVE_WIFI := true
BOARD_WPA_SUPPLICANT_DRIVER := WEXT
這將在external/wpa_supplicant/Android.mk設置WPA_BUILD_SUPPLICANT為true,
默認使用驅動driver_wext.c。
如果使用定制的wpa_supplicant驅動(例如 madwifi),可以設置:
BOARD_WPA_SUPPLICANT_DRIVER := MADWIFI
將在external/wpa_supplicant/common.c 中的MSG_INFO,改為MSG_DEBUG以增加輸出更多信息
wpa_debug_level = MSG_DEBUG;
#define wpa_printf宏中的
if ((level) >= MSG_INFO)
改為
if ((level) >= MSG_DEBUG)
external\wpa_supplicant\.config
# CONFIG_NO_WPA=y
CONFIG_OS=unix
CONFIG_IEEE8021X_EAPOL=y
CONFIG_EAP_MD5=y
CONFIG_EAP_MSCHAPV2=y
CONFIG_EAP_TLS=y
CONFIG_EAP_PEAP=y
CONFIG_EAP_TTLS=y
CONFIG_EAP_GTC=y
CONFIG_EAP_OTP=y
CONFIG_EAP_SIM=y
CONFIG_EAP_AKA=y
CONFIG_EAP_PSK=y
CONFIG_EAP_SAKE=y
CONFIG_EAP_GPSK=y
CONFIG_EAP_PAX=y
CONFIG_EAP_LEAP=y
CONFIG_PKCS12=y
CONFIG_SMARTCARD=y
CONFIG_WIRELESS_EXTENSION=y
CONFIG_CTRL_IFACE=y
CONFIG_DRIVER_WEXT=y
hardware/libhardware_legacy/wifi/wifi.c
將驅動直接編譯進內核
int wifi_load_driver()
{
char driver_status[PROPERTY_VALUE_MAX];
int count = 100; /* wait at most 20 seconds for completion */
LOGE("wifi driver loaded !");
return 0;
}
int wifi_unload_driver()
{
int count = 20; /* wait at most 10 seconds for completion */
LOGE("wifi driver unloaded by rockie!");
return 0;
注意這個定義static const char IFACE_DIR[] = "/data/system/wpa_supplicant";
編譯整個android系統,確認編譯完bin目錄中含有wpa_supplicant、wpa_cli
這個是我查到apk事後加入image的部份:产品出厂时需一些软件,如测试程序、自主开发的APK或第三方的APK,这样我们就有必要把这些APK程序打包到文件系统里编译生成镜像了,具体操作如下:
1 (1)源码编译后,把apk拷贝到out/target/product/generic/system/app中。
(2) 执行命令make snod , 把添加的spk编到system.img 中
缺点:执行make clean 后,再次make 完毕需要重新执行上面操作。
2 "方法一"的改进。
(1) 新建一个文件夹目录,用来存放apk文件
mkdir packages/apps/Prebuilt_apps
cd packages/apps/Prebuilt_apps
在Prebuilt_apps中新建make文件
vi Android.mk
并写入
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_POST_PROCESS_COMMAND := $(shell cp -r $(LOCAL_PATH)/*.apk $(TARGET_OUT)/app/)
保存退出。
(2) 把需要编译的apk拷贝到目录Prebuilt_apps下,执行make ,Prebuilt_apps中的apk就会考被到out/target/product/generic/system/app中。
(3) 执行make snod 。完成。
此方法执行make clean 后,再次make 完毕,只需要make snod即可(有时make后,out/target/product/generic/system/app没有需要添加的apk,此时再make一次即可,速度很快)。
[ 此帖被kazaya在2011-10-19 13:42重新编辑 ]