2011年9月21日 星期三

將APK加到system.img

添加 HelloAndroid.apk
首先在 Android 源始碼建立一個目錄:
mkdir -p prebuilt/android-arm/HelloAndroid


建立一個 Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

# Module name should match apk name to be installed.
LOCAL_MODULE := HelloAndroid
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_TAGS := debug

include $(BUILD_PREBUILT)

$(call add-prebuilt-files, APPS, $(prebuilt_files))
 
詳細參考android open source website
http://www.kandroid.org/online-pdk/guide/build_cookbook.html 

修改android settings default value

settings default value
android settings的default value大多可以在/frameworks/base/packages/SettingsProvider/res/values/default.xml 中找到.

overwirte settings value
在device下,所屬的產品目錄下利用overlay,新增相同的路徑及需要overwrite的檔案(default.xml). 將所需要修改的設定值寫入default.xml中.

ex: /device/nvidia/ventana_cts/overlay/frameworks/base/packages/SettingsProvider/res/values/default.xml

default.xml 撰寫規則

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <add-resource type="bool" name="def_adb_enabled"/>
         <bool name="def_adb_enabled">true</bool>
     <integer name="def_screen_off_timeout">1800000</integer>
</resources>

若是原先在default.xml中沒有的項目,利用tag "add-resource ", 若是已經存在,就直接寫入新的預設值.

其它失敗情形 
少數項目還是無法修改,則直接修改/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
及 /frameworks/base/packages/SettingsProvider/res/values/default.xml
 加入下列子串

DatabaseHelper.java :
loadBooleanSetting(stmt, Settings.Secure.ACCESSIBILITY_ENABLED,
                    R.bool.def_accessibility_enabled);
default.xml :
<bool name="def_accessibility_enabled">true</bool>