以下内容基于Android5.1.1源码http://androidxref.com/5.1.1_r6/xref/,在新建一个项目后会有一些比较重要的项目相关的属性需要修改。
# 属性变量定义的地方 ./build/core/Makefile
........
$(hide) TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \
TARGET_BUILD_FLAVOR="$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)" \
TARGET_DEVICE="$(TARGET_DEVICE)" \
PRODUCT_NAME="$(TARGET_PRODUCT)" \
PRODUCT_BRAND="$(PRODUCT_BRAND)" \
# 根据PRODUCT_LOCALES来获取地区语言 ./build/target/product/full_base.mk PRODUCT_LOCALES := en_US
PRODUCT_DEFAULT_REGION="$(call default-locale-region,$(PRODUCT_LOCALES))" \
# 根据PRODUCT_LOCALES来获取地区语言 ./build/target/product/full_base.mk PRODUCT_LOCALES := en_US
PRODUCT_DEFAULT_WIFI_CHANNELS="$(PRODUCT_DEFAULT_WIFI_CHANNELS)" \PRODUCT_MODEL="$(PRODUCT_MODEL)" \
PRODUCT_MANUFACTURER="$(PRODUCT_MANUFACTURER)" \
PRIVATE_BUILD_DESC="$(PRIVATE_BUILD_DESC)" \
BUILD_ID="$(BUILD_ID)" \
BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \
BUILD_NUMBER="$(BUILD_NUMBER)" \
PLATFORM_VERSION="$(PLATFORM_VERSION)" \
PLATFORM_SDK_VERSION="$(PLATFORM_SDK_VERSION)" \
PLATFORM_VERSION_CODENAME="$(PLATFORM_VERSION_CODENAME)" \
PLATFORM_VERSION_ALL_CODENAMES="$(PLATFORM_VERSION_ALL_CODENAMES)" \
BUILD_VERSION_TAGS="$(BUILD_VERSION_TAGS)" \
TARGET_BOOTLOADER_BOARD_NAME="$(TARGET_BOOTLOADER_BOARD_NAME)" \
BUILD_FINGERPRINT="$(BUILD_FINGERPRINT)" \
$(if $(OEM_THUMBPRINT_PROPERTIES),BUILD_THUMBPRINT="$(BUILD_THUMBPRINT)") \
TARGET_BOARD_PLATFORM="$(TARGET_BOARD_PLATFORM)" \
TARGET_CPU_ABI_LIST="$(TARGET_CPU_ABI_LIST)" \
TARGET_CPU_ABI_LIST_32_BIT="$(TARGET_CPU_ABI_LIST_32_BIT)" \
TARGET_CPU_ABI_LIST_64_BIT="$(TARGET_CPU_ABI_LIST_64_BIT)" \
TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \
TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \
TARGET_AAPT_CHARACTERISTICS="$(TARGET_AAPT_CHARACTERISTICS)" \
........
# ./build/target/product/full_base.mk
........
PRODUCT_PROPERTY_OVERRIDES := \
ro.com.android.dateformat=MM-dd-yyyy \ # 默认日期格式
ro.config.ringtone=Ring_Synth_04.ogg \ # 默认铃声
ro.config.notification_sound=pixiedust.ogg # 默认通知提示音
........
# 属性值的设置地方 ./build/tools/buildinfo.sh
........
echo "ro.build.id=$BUILD_ID" # 系统(固件)版本号 ./build/core/build_id.mk export BUILD_ID=LMY48G
echo "ro.build.display.id=$BUILD_DISPLAY_ID" # 设置>关于手机>版本号
echo "ro.build.version.incremental=$BUILD_NUMBER" # 版本增量
echo "ro.build.version.sdk=$PLATFORM_SDK_VERSION" # sdk版本
echo "ro.build.version.codename=$PLATFORM_VERSION_CODENAME" # 版本代号
echo "ro.build.version.all_codenames=$PLATFORM_VERSION_ALL_CODENAMES"
# 设置>关于手机>Android版本 ./build/core/version_defaults.mk PLATFORM_VERSION := 5.1.1
echo "ro.build.version.release=$PLATFORM_VERSION"
echo "ro.build.date=`date`" # 制作者制作的时间,可修改"2011年X月X日 某某某制作"........
echo "ro.product.model=$PRODUCT_MODEL" # 内部手机代号也就是手机名
echo "ro.product.brand=$PRODUCT_BRAND" # 手机品牌
echo "ro.product.name=$PRODUCT_NAME" # 手机正式名称
echo "ro.product.device=$TARGET_DEVICE" # 设备名称
echo "ro.product.board=$TARGET_BOOTLOADER_BOARD_NAME" # 采用的处理器
........
echo "ro.product.cpu.abi=$TARGET_CPU_ABI" # cpu的版本
if [ -n "$TARGET_CPU_ABI2" ] ; then
echo "ro.product.cpu.abi2=$TARGET_CPU_ABI2" # cpu的品牌
fi
........
echo "ro.product.manufacturer=$PRODUCT_MANUFACTURER" # 手机制造商
if [ -n "$PRODUCT_DEFAULT_LANGUAGE" ] ; then
echo "ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE" # 手机默认语言
fi
if [ -n "$PRODUCT_DEFAULT_REGION" ] ; then
echo "ro.product.locale.region=$PRODUCT_DEFAULT_REGION" # 地区语言
fi
echo "ro.wifi.channels=$PRODUCT_DEFAULT_WIFI_CHANNELS" # WIFI连接的渠道
echo "ro.board.platform=$TARGET_BOARD_PLATFORM" # 主板平台
echo "# ro.build.product is obsolete; use ro.product.device"
echo "ro.build.product=$TARGET_DEVICE" # 产品名称
echo "# Do not try to parse description, fingerprint, or thumbprint"
echo "ro.build.description=$PRIVATE_BUILD_DESC" # 用户的KEY
echo "ro.build.fingerprint=$BUILD_FINGERPRINT" # 手机指纹
........
# ADD for GSM 谷歌客户身份
echo "ro.com.google.clientidbase.am=android-google"
echo "ro.com.google.clientidbase.gmm=android-google"
echo "ro.com.google.clientidbase.ms=android-google"
echo "ro.com.google.clientidbase.yt=android-google"
echo "ro.com.google.clientidbase=android-google"
# 设置时区
echo "persist.sys.timezone=Europe/Moscow"
蓝牙名称
/system/bt/btif/src/btif_dm.c btif_get_Default_local_name
WIFI直连名称
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java getPersistedDeviceName()
WIFI SSID名称
/frameworks/base/core/res/res/values/string.xml wifi_tether_configure_ssid_default
将开机动画放置到指定目录,然后在编译脚本中指定拷贝到system/media/下面,具体方法可以仿照google源码已有的项目
PRODUCT_COPY_FILES += \
device/xxx/xxx/bootanimation.zip:system/media/bootanimation.zip
三:壁纸相关设置
默认壁纸default_wallpaper.jpg
根据分不同辨率分别替换以下文件
/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg
/frameworks/base/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.jpg
/frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.jpg
也可以用项目中采用overlay方式来覆盖
/device/xxx/xxxx/overlay/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg
默认动态壁纸,动态壁纸源码位于/packages/wallpapers/下面
/frameworks/base/core/res/res/values/config.xml
<string name="default_wallpaper_component" translatable="false">com.android.wallpaper/com.android.wallpaper.grass.GrassWallpaper</string>
或者设置系统变量echo "ro.config.wallpaper_component=com.android.wallpaper/com.android.wallpaper.grass.GrassWallpaper"
添加壁纸
在./packages/apps/Launcher3/WallpaperPicker/res/values-nodpi/wallpapers.xml的wallpapers数组中添加
<resources>
<string-array name="wallpapers" translatable="false">
<item>wallpaper1</item>
<item>wallpaper2</item>
<item>wallpaper3</item>
</string-array>
</resources>
根据手机支持的不同分辨率,将图片放置到WallpaperPicker对应的drawable中,
注意的是需要一大一小两张图片,如wallpaper1.png与wallpaper1_small.png, 此处wallpaper1_small.png为wallpaper1.png的缩略图