MTK編譯及修改記錄
2016年我從app開發轉到做系統開發,這是我剛做系統開發時做的筆記。
1.機器型號,機器碟符的修改位置
alps/build/tools/buildinfo.sh 編譯後會在alps/out/target/product/s88m/system/build.prop下生成。
2.藍芽名稱修改位置
alps/device/mediatek/common/custom.conf。
3.Build Number的修改位置
alps/build/tools/buildinfo.sh的echo “ro.build.display.id=$BUILD_DISPLAY_ID”
4.開機logo的修改位置
alps/vendor/mediatek/proprietary/booktable/bootloader/lk/dev/logo/wsvga/的wsvga_uboot.bmp(第一屏),wsvga_kernel.bmp(第二屏)。怎麼尋到這個位置的,根據alps/vendor/mediatek/proprietary/bootable/bootloader/lk/project/s88m.mk下的BOOT_LOGO := wsvga。
5.APN配置修改
alps/device/mediatek/common/appns-conf.xml。
6.Single-SIM(單卡)
alps/device/discovery/s102m/ProjectConfig.xml
[Triple SIM]:
CUSTOM_MODEM = mt8735_sp_lwg_tsts
GEMINI=yes
MTK_GEMINI_ENHANCEMENT=yes
MTK_DT_SUPPORT=no
MTK_SHARE_MODEM_SUPPORT=3
MTK_SHARE_MODEM_CURRENT=3
MTK_GEMINI_3SIM_SUPPORT=yes
[Dual SIM]:
CUSTOM_MODEM = mtk6735_65t_m_lwg_dsds
GEMINI=yes
MTK_GEMINI_ENHANCEMENT=yes
MTK_DT_SUPPORT=no
MTK_SHARE_MODEM_SUPPORT=2
MTK_SHARE_MODEM_CURRENT=2
MTK_GEMINI_3SIM_SUPPORT=no
[Single SIM]:
CUSTOM_MODEM = mtk6735_65t_m_lwg_dsds
GEMINI=no
MTK_GEMINI_ENHANCEMENT=no
MTK_DT_SUPPORT=no
MTK_SHARE_MODEM_SUPPORT=2
MTK_SHARE_MODEM_CURRENT=1
MTK_GEMINI_3SIM_SUPPORT=no
7.alps/device/discovery/s102m/ProjectConfig.xml/下CUSTOM_MODEM = s102_FAJUE8735_TB_M_3G18_4G13720。
8.屏修改
alps/kernel-3.18/arch/arm64/configs/s102m_debug_defconfig
alps/kernel-3.18/arch/arm64/configs/s102m_defconfig
CONFIG_CUSTOM_KERNEL_LCM修改
9.8321平臺
1.預置動畫/鈴聲
alps/vendor/mediatek/proprietary/custom/t10q/system/media
alps/vendor/mediatek/proprietary/custom/t10q/system/app/app.mk
2.gms包app增減
alps/devices/discovory/t10q/gms.mk
3.配modern
alps/device/discovery/t10q/ProjectConfig.mk
4.增刪apk
alps/device/mediatek/mt6580/device.mk
5.圖示大小
android_src\frameworks\base\core\res\res\values\Dimens.xml中有個 app_icon_size
6.預設桌布修改
8783_6.0/device/discovery/m104/overlay/frameworks/base/core/res/res/drawable-
7.簡訊預設鈴聲
在alps/device/discovery/m104/device.mk新增如下內容
PRODUCT_PROPERTY_OVERRIDES := \
ro.com.android.dateformat=MM-dd-yyyy \
ro.config.ringtone=Ring_Synth_04.ogg \
ro.config.notification_sound=SMS_1.mp3 \
ro.config.alarm_alert=Alarm_Classic.ogg
ro.config.ringtone 預設鈴聲
ro.config.notification_sound 預設提示音
ro.config.alarm_alert 預設鬧鈴
8.sound¬ification下的general下的vibrate等預設開啟關閉修改
frameworks/base/media/java/com/mediatek/audioprofile/AudioProfileManager
9.settings->Display->sleep的預設休眠時間修改
framaworks/base/packages/SettingsProvider/res/values
30000
10 wifi direct預設名稱修改
frameworks/opt/net/wifi/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java的WifiP2pServiceImpl()方法。
11 email簽名
packages/apps/Email/provider_src/com/android/email/activity/setup/AccountSettingsUtils.java的
12device/discovery/t10q/android.hardware.telephony.gsm.xml
13音量修改
frameworks/base/media/java/android/media/AudioSystem.java
鬧鐘,來電音量修改
frameworks/base/media/java/com/mediatek/audioprofile/AudioProfileManager.java
音量的最大值設定
frameworks/base/services/core/java/com/android/server/audio/AudioService.java
14語言新增
device/discovery/m104/full_m104.mk
15 照相機的製造商,機型修改
package/apps/Gallery2/src/com/android/gallery3d/data/MediaDetails.java下的setExifData()
16去掉關機動畫
device/discovery/m104/system.prop下的去掉ro.operator.optr=CUST
17如何將帶原始碼的APK預置進系統?
1)在packages/app下面以需要預置的APK的 名字建立一個新資料夾,以預置一個名為Test的APK為例
2)將Test APK的Source code拷貝到Test資料夾下,刪除/bin和/gen目錄
3)在Test目錄下建立一個名為Android.mk的檔案,內容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := Test
include $(BUILD_PACKAGE)
4)開啟檔案device\mediatek\common\device.mk
將Test新增到PRODUCT_PACKAGES裡面。
PRODUCT_PACKAGES += Test
5)重新build整個工程
18修改預設輸入法
DatabaseHelper.java
private static final String defaultEnableInputMethods = “com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME:com.google.android.apps.inputmethod.hindi/.HindiInputMethodService”;
loadSecureSettings(SQLiteDatabase db)方法新增如下內容
loadSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,defaultEnableInputMethods); //enabled
loadSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,defaultEnableInputMethods);//預設輸入法
19 LOCAL_PRIVILEGED_MODULE := true
20.時區修改time_zones_by_country
21.單雙卡配置
[Dual SIM]:
CUSTOM_MODEM = mtk6735_65t_m_lwg_dsds
GEMINI=yes
MTK_GEMINI_ENHANCEMENT=yes
MTK_DT_SUPPORT=no
MTK_SHARE_MODEM_SUPPORT=2
MTK_SHARE_MODEM_CURRENT=2
MTK_GEMINI_3SIM_SUPPORT=no
[Single SIM]:
CUSTOM_MODEM = mtk6735_65t_m_lwg_dsds
GEMINI=no
MTK_GEMINI_ENHANCEMENT=no
MTK_DT_SUPPORT=no
MTK_SHARE_MODEM_SUPPORT=2
MTK_SHARE_MODEM_CURRENT=1
MTK_GEMINI_3SIM_SUPPORT=no
22 頻率
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/JD9364_HUAZHENG/JD9364_HUAZHENG.c的params->dsi.PLL_CLOCK
kernel-3.18/drivers/misc/mediatek/lcm/JD9364_HUAZHENG/JD9364_HUAZHENG.c的params->dsi.PLL_CLOCK
23 cts測試注意事項
把failed的數改成notExcuted的數,notExcuted的數改成failed的數。
result="fail"替換為result=“notExecuted”
24屏修改位置
/vendor/mediatek/proprietary/bootable/bootloader/lk/project/m104.mk
/kernel-3.18/arch/arm64/configs/m104_defconfig
/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/JD9365BC_IPS_BODA
26 音量的最大值修改
vendor/mediatek/proprietary/custom/m104/cgen/cfgdefault/audio_ver1_volume_custom_default
27 螢幕亮度的最大值修改
/frameworks/base/core/res/res/values/config.xml的config_screenBrightnessSettingMaximum
28 mtklog:##3646633##
29新建專案:./mk_project_64.sh add m107
30.system.prop檔案目錄/device/discovery/m104/system.prop
31.SD卡槽軟體遮蔽其正常功能
修改的位置
把/kernel-3.18/arch/arm64/boot/dts/mt6735.dtsi的compatible = "mediatek,mt6735-mmc註釋掉
32.USB介面軟體遮蔽其正常功能
(1)USB充電功能去掉
/kernel-3.18/drivers/misc/mediatek/usb20/mt6735/usb20.c的bool mt_usb_is_device(void)函式返回為false
(2)OTG去掉
/kernel-3.18/arch/arm64/configs/m104_defconfig的CONFIG_USB_MTK_OTG=yes的yes去掉
33.預設牆紙修改
/device/discovery/m104/overlay/frameworks/base/core/res/res/drawable-sw720dp-nodpi
/device/discovery/m104/overlay/frameworks/base/core/res/res/drawable-sw600dp-nodpi
/device/mediatek/common/overlay/tablet/frameworks/base/core/res/res/drawable-sw600dp-nodpi
34.去掉安全模式
/frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java中的detectSafeMode()方法把 mSafeMode = menuState > 0 || sState > 0 || dpadState > 0 || trackballState > 0 || volumeDownState > 0;這一行設定為 mSafeMode=false
35.system的記憶體修改
/device/mediatek/build/build/tools/ptgen/MT6735M
/device/discovery/m107/BoardConfig.mk的BOARD_MTK_SYSTEM_SIZE_KB :=
36 DDR修改
vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/m104/inc/custom_MemoryDevice.h
vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6735
37.git checkout -b 新分支名 老分支名(這種寫法的意思為基於老分支建立新的分支)
38.配置檔案
/kernel-3.18/arch/arm64/configs/m107_defconfig
39.電池曲線修改
/8735_6.0/kernel-3.18/arch/arm64/boot/dts/m107_bat_setting.dtsi
40.git命令使用
1)git config --global user.name “Your Name”
2)git config --global user.email “Your Email”
3)git init 用於初始化當前所在目錄的專案
4)建立.gitignore檔案,提交時會忽略該檔案裡面的專案檔案
5)git status 檢視專案狀態
6)git add .或者git add -A新增修改過的檔案
7)git commit -m "Message"提交
8)git branch檢視當前所在分支
9)git checkout切換分支
10)git branch 分支名 :在branch下新建分支
11)git checkout -b 新分支名 分支名:在分支下建立子分支,並切換到子分支。
12)git log得到commit歷史
13)git checkout 歷史序列號 檔名 :還原檔案到歷史版本
14) git reset –hard 回退到歷史版本
15)git show commit --name-only檢視某次commit修改了那些檔案
41.M版make -j8命令編譯經常卡死或者編譯報ERROR: Cannot launch Jack server錯誤的解決辦法
在命令終端輸入cat .jack
Server settings
SERVER=true
SERVER_PORT_SERVICE=8072
SERVER_PORT_ADMIN=8073
SERVER_COUNT=1
SERVER_NB_COMPILE=4
SERVER_TIMEOUT=60
SERVER_LOG=KaTeX parse error: Expected '}', got 'EOF' at end of input: {SERVER_LOG:=SERVER_DIR/jack-KaTeX parse error: Expected 'EOF', got '}' at position 24: …ORT_SERVICE.log}̲
JACK_VM_COMMA…{JACK_VM_COMMAND:=java}
Internal, do not touch
SETTING_VERSION=2
把SERVER=true 改成SERVER=false
42.編譯突然莫名奇妙出現錯誤make: *** [out/target/common/obj/APPS/Phone_intermediates/classes-full-debug.jar] error 41
只需輸入以下的命令即可:
$ make clobber (刪除所有配置所編譯輸出的結果檔案)
$ make
43.重力感應方向修改
kernel-3.18/arch/arm64/boot/dts/m104.dts
44.攝像頭的顏色調整
kernel3.18/drivers/misc/mediatek/imgsensor/src/mt6735/camera_project/m107/gc2355_mipi_raw_1lane/gc2355mipi_Sensor.c中修改字元SENSOR_OUTPUT_FORMAT_RAW_Gb中”Gb“可改為”G“,”R“,“Gr”
45.攝像頭方向調整sensor 安裝角度
vendor/mediatek/proprietary/custom/mt6735/hal/D1/imgsensor_metadata/gc2355_mipi_raw/config_static_metadata.sensor.gc2355mipiraw.h
vendor/mediatek/proprietary/custom/mt6735/hal/D1/imgsensor_metadata/gc2355_mipi_raw/config_static_metadata.project.camera.gc2355mipiraw.h
vendor/mediatek/proprietary/custom/m107/hal/imgsensor_metadata/common/config_static_metadata_common.h
vendor/mediatek/proprietary/custom/mt6735/hal/D1/imgsensor_metadata/common/config_static_metadata_common.h
46.TP校正
kernel3.18/drivers/misc/mediatek/mach/mt6735/m107/touchpanel/GT9XXTB_hotknot/tpd_custom_gt9xx.h
47.攝像頭方向180度調整
後攝修改:
kernel3.18/drivers/misc/mediatek/imgsensor/src/mt6735/camera_project/m107/hm5040_mipi_raw/hm5040mipiraw_Sensor.h
write_cmos_sensor(0x0101,0x03);//flip+mirror
.sensor_output_dataformat = SENSOR_OUTPUT_FORMAT_RAW_Gb
前攝修改:
kernel3.18/drivers/misc/mediatek/imgsensor/src/mt6735/camera_project/m107/gc2355_mipi_raw_1lane/gc2355mipi_Sensor.c
write_cmos_sensor(0x17,0x17);//14
48.LCM的rotation修改
MTK_LCM_PHYSICAL_ROTATION
vendor/mediatek/proprietary/bootable/bootloader/lk/project/m107.mk
kernel-3.18/arch/arm64/configs/m107_defconfig
device/discovery/m107/ProjectConfig.mk
49.設定jdk環境變數
sudo gedit ~/.profile
sudo gedit ~/.bashrc
手動切換jdk
sudo update-alternatives --config java
50.修改喇叭左右聲道串音的問題
vendor/mediatek/proprietary/custom/m107/hal/audioflinger/audio/Audio_Customization_Common.h的#define ENABLE_STEREO_SPEAKER
51.查詢亮度值
cd /sys/class/leds/lcd-backlight/brightness
52.刪out下的logo
out/target/product/m104/obj/BOOTLOADER_OBJ/build-m104/dev/logo
out/target/product/m104/logo.bin
53.工廠模式 ##34685##
54.mtklog:##3646633##
55.報錯Unfortunately,the process android.process.acore has stopped
把out下的UserDictionaryProvider.apk刪掉重編譯
56.下載的所有應用預設儲存到sd卡
修改/frameworks/base/data/etc/platform.xml 新增WRITE_EXTERNAL_STORAGE media_rw
57.android 4.2 camera驅動新增
新增 mediatek\custom\common\kernel\imgsensor
新增mediatek\custom\common\kernel\imgsensor/src/kd_sensorlist.h
新增mediatek\custom\common\kernel\imgsensor/inc/kd_imgsensor.h
新增 mediatek\custom\common\hal\imgsensor
新增mediatek\custom\common\hal\imgsensor/src/sensorlist.cpp
新增mediatek/config/s301_nand_hvga/ProjectConfig.mk
新增mediatek/custom/s301_nand_hvga/kernel/camera/camera/kd_camera_hw.c
如果前後攝camera相同,設定cameraid需要在mediatek/custom/common/kernel/imgsensor/gc032b_yuv/gc032byuv_Sensor.c的UINT32 GC032BGetSensorID(UINT32 *sensorID)的sensorID=((GC032B_read_cmos_sensor(0xf0)<< 8)|GC032B_read_cmos_sensor(0xf1))後+1;
58.禁止所有apk安裝
frameworks/base/services/core/java/com/android/server/pm/PackageManagerServie.java的copyApk註釋掉
或者註釋掉installPackageAsUser();
59.SystemUI的通知列表修改
ActivatableNotificationView.java
ExpandableNotificationRow.java
60.禁止下拉狀態列滑動
修改StatusbarWindowView.java的onInterceptTouchEvent() return intercept修改為return true
一、Ubuntu下Android編譯環境搭建
ubuntu 經典桌面
sudo apt-get install gnome-session-fallback
右鍵終端
sudo apt-get install nautilus-open-terminal
root登陸
轉載於:http://blog.csdn.net/yimiyangguang1314/article/details/7534911
ubuntu12.04預設是不允許root登入的,在登入視窗只能看到普通使用者和訪客登入。以普通身份登陸Ubuntu後我們需要做一些修改,
普通使用者登入後,修改系統配置檔案需要切換到超級使用者模式,在終端窗口裡面輸入: sudo -s.然後輸入普通使用者登陸的密碼,回車即可進入 root使用者許可權模式.
然後執行: gedit /etc/lightdm/lightdm.conf. 修改配置檔案
[SeatDefaults]
allow-guest=false
autologin-user=root
autologin-user-timeout=0
autologin-session=lightdm-autologin
user-session=ubuntu
greeter-session=unity-greeter
然後我們啟動root帳號:
sudo passwd root
根據提示輸入roott帳號密碼。
重啟ubuntu,不需要手動輸入root使用者名稱密碼,系統會自動進入root使用者。
補充:gedit /etc/lightdm/lightdm.conf
user-session=ubuntu —> user-session=gnome-classic
修改後,系統將預設登入到gnome classic介面,如果不需要特效則是gnome-fallback,對應登入視窗的選項gnome classic(no effects)
1.更新源
sudo apt-get update
- 安裝必要的軟體環境
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.8-dev build-essential zip curl libncurses5-dev zlib1g-dev ibsdl1.2-dev libc6-dev-i386 g+±multilib lib32z1-dev lib32ncurses5-dev libx11-dev libxml2-utils git-core gnupg libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev lib32z-dev libgl1-mesa-dev g+±multilib mingw32 tofrodos liblzo2-dev uuid-dev lib32readline-gplv2-dev gcc-4.4 g+±4.4 make xsltproc wine
gawk
rm /usr/bin/gcc
ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
rm /usr/bin/g++
ln -s /usr/bin/g+±4.4 /usr/bin/g++
- 安裝 sun-java6-jdk
在 tools 下找到 jdk-6u18-linux-i586.bin 檔案; 開啟終端,到想要安裝的目錄下運
行
$ ./jdk-6u18-linux-i586.bin(執行時注意 jdk-6u18-linux-i586.bin 的實際路徑)
進行安裝 ;
- 設定環境變數
$ vim ~/.profile
在.profile 檔案的最後新增或新增變數,如下:
JAVA_HOME=/home/infotm/infodroid_release/jdk1.6.0_18
JRE_HOME=$JAVA_HOME/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
export CLASSPATH=.:JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=JRE_HOME/bin
export PATH=JAVA_PATH
藍色字元的部分是 JDK6 安裝所在目錄;儲存後,同步更新即可;
$source ~/.profile
另外一些必要的使用工具要安裝,如Beyond Compare、minicom等
二、MTK平臺常用編譯命令
1、列出所有有效的專案
./makeMtk listp 或./mk listp
2、清除和編譯整個專案
./makeMtk <porject_name> new 或 ./mk <project_name> n #編譯完一次後可不帶專案名,專案名紀錄在makeMtk.ini檔案中
3、清除相關編譯檔案
./makeMtk <porject_name> clean 或 ./mk <project_name> c
4、重新編譯整個專案
./makeMtk <project_name> remake 或 ./mk <project_name> r
5、編譯單獨的模組
./makeMtk <porject_name> remake(new) preloader 或 ./mk r(n) pl
./makeMtk <porject_name> remake(new) uboot 或 ./mk r(n) ub
./makeMtk <porject_name> remake(new) kernel 或 ./mk r(n) k
./makeMtk <porject_name> remake(new) android 或 ./mk r(n) dr
6、當修改kernel相關程式碼時,要使用此命令
./mk n® kernel ./mk bootimage
7.編譯ota包
./mk otapackage
以上命令加引數-opt=TARGET_BUILD_VARIANT=user為編譯release版本,不加為debug版本,釋放給客戶的軟體必須加此引數。加 -t引數可以將編譯時的資訊全部列印在終端中。同時釋放客戶的軟體要編譯ota包。
具體引數可使用命令 ./mk -h 檢視。
三、常用硬體配置更改
第一步:改mediatek/config/pro/address.xml
1.觸控式螢幕配置
mediatek/config/$(pro)/ProjectConfig.mk
CUSTOM_KERNEL_TOUCHPANEL=GSL2682 SSD253X #zt622x #GT928
後面為相容的TP型號,此項一般不用改,除非增加TP型號
2.攝像頭配置
mediatek/config/$(pro)/ProjectConfig.mk
以下所配置的名稱必須和程式碼目錄名相同,
kernel程式碼目錄為mediatek/custom/common/kernel/imgsensor
hal程式碼目錄為mediatek/custom/common/hal/imgsensor
其相關引數配置一般在相關專案下的對應目錄,如mediatek/custom/d88/hal/imgsensor
此巨集為hal層camera程式碼配置,要配置的攝像頭程式碼都要寫上
CUSTOM_HAL_IMGSENSOR=gc2235_mipi_raw gc0339_mipi_raw
此巨集為hal層後置備用攝像頭配置,如果不做相容可以為空
CUSTOM_HAL_MAIN_BACKUP_IMGSENSOR=
此巨集為hal層後置攝像頭配置,雙攝時必須配置
CUSTOM_HAL_MAIN_IMGSENSOR=gc2235_mipi_raw
此巨集為hal層前置備用攝像頭配置,如果不做相容可以為空
CUSTOM_HAL_SUB_BACKUP_IMGSENSOR=
此巨集為hal層前置攝像頭配置,雙攝時必須配置
CUSTOM_HAL_SUB_IMGSENSOR=gc0339_mipi_raw
此巨集為kernel層camera程式碼配置,要配置的攝像頭程式碼都要寫上
CUSTOM_KERNEL_IMGSENSOR=gc2235_mipi_raw gc0339_mipi_raw
此巨集為kernel層後置備用攝像頭配置,如果不做相容可以為空
CUSTOM_KERNEL_MAIN_BACKUP_IMGSENSOR=
此巨集為kernel層後置攝像頭配置,雙攝時必須配置
CUSTOM_KERNEL_MAIN_IMGSENSOR=gc2235_mipi_raw
此巨集為kernel層前置備用攝像頭配置,如果不做相容可以為空
CUSTOM_KERNEL_SUB_BACKUP_IMGSENSOR=
此巨集為kernel層前置攝像頭配置,雙攝時必須配置
CUSTOM_KERNEL_SUB_IMGSENSOR=gc0339_mipi_raw
3.Modem配置
mediatek/config/$(pro)/ProjectConfig.mk
Modem目錄在custom/common/modem
此巨集配置的modem名稱必須和custom/common/modem下的某一modem目錄名稱相同
CUSTOM_MODEM=discovery82_tb_jb5_hspa
現在我們的機器一般做的都是2G全頻段,即850、900、1900、2100,但3G頻段需要根據客戶需求來選擇。
D85D為:
band1:2100 band2:1900 band5:850 band8:900
D85為(D85只支援兩個頻段):
discovery89_tb_jb2_md1_hspa 900_2100
mt6589_md1_hspa_band156 850_2100
注意:Modem配置必須正確
4.DDR配置
mediatek/$(pro)/preloader/inc/custom_MemoryDevice.h
現有機型一般作1G或512M的DDR,軟體配置如下,將需要的開啟,不需要的註釋掉
//1GB DDR3
#define BOARD_ID MT8382_EVB_P2
#define CS_PART_NUMBER[0] COMMON_DDR3_1024MB
//512MB DDR3
//#define BOARD_ID MT8382_EVB_P3
//#define CS_PART_NUMBER[0] COMMON_DDR3_512MB
L1
alps/bootable/bootloader/preloader/custom/$(pro)/inc/custom_MemoryDevice.h根據需要修改
注意:DDR配置必須正確
四、客製化部分更改
1.更改機器型號為XXX
mediatek/config/$(pro)/ProjectConfig.mk中更改一行PRODUCT_MODEL = XXX
更改版本號
mediatek/config/$(pro)/ProjectConfig.mk中更改一行
MTK_BUILD_VERNO = XXX
更改自定義版本號
mediatek/config/KaTeX parse error: Expected group after '_' at position 52: …UILD_VERNO=D85D_̲(shell date +%Y%m%d)
2更改碟符為XXX
打過碟符補丁後,在mediatek/config/$(pro)/system.prop中增加一行
ro.partition.label=XXX
3.更改藍芽名為XXX
拷貝mediatek/config/common/custom.conf到相應專案mediatek/config/$(pro)/下更改專案下的custom.conf中bluetooth.HostName = XXX
4.更改預設語言
如改為繁體中文,查詢語言列表,找到zh_TW 中文 (臺灣)
在mediatek/config/$(pro)/system.prop中增加
persist.sys.language=zh
persist.sys.country=TW
5.更改預設時區
如改為上海,在mediatek/config/$(pro)/system.prop中增加persist.sys.timezone=Asia/Shanghai
6.更改預設開機logo
因為在projectConfig.mk中,BOOT_LOGO=xga,所以可以將mediatek/custom/common/lk/logo/xga拷貝到相應專案下
mediatek/custom/$(pro)/lk/logo/xga,替換第1張logo:xga_uboot.bmp,第2張logo:xga_kernel.bmp,
7.更改預設輸入法
在mediatek/config/$(pro)/ProjectConfig.mk中更改DEFAULT_INPUT_METHOD=類名.服務名,如DEFAULT_INPUT_METHOD=com.sohu.inputmethod.sogou.SogouIME
L版本
請在InputMethodManagerService.java 的resetDefaultImeLocked()方法中新增下面code:
if (mCurMethodId != null
&& !InputMethodUtils.isSystemIme(mMethodMap.get(mCurMethodId))) {
return;
}
InputMethodInfo defIm = null;
//+++++++++++++++++++++++++++
if (mMethodList.size() > 0) {
for (InputMethodInfo imi : mMethodList) {
final String imiId = imi.getId();
if(“com.jb.emoji.gokeyboard/com.jb.gokeyboard.GoKeyboard”.equals(imiId)){//其中的輸入法名稱需要抓log搜尋關鍵字enabled_input_methods
defIm = imi;
}
}
}
//+++++++++++++++++++++++++++
for (InputMethodInfo imi : mMethodList) {
if (defIm == null) {
8.新增APK
不可解除安裝APK,直接放到vendor/mediatek/(pro)/system/app下,但是此預置方式APK將不可升級,因為此種方式APK將重新被簽名,導致升級時簽名錯誤,所以現改為Android.mk方式預置。若要提庫,則放到上一級目錄的lib目錄下。
可解除安裝APK放到vendor/mediatek/(pro)/system/vendor/operate/app下
注意:檔名中不能有空格
Search apk的名字是quicksearch
9.overlay路徑
mediatek/custom/$(pro)/resource_overlay/generic/可overlay frameworks和packages中res的xml檔案
10.更改瀏覽器預設主頁(可overlay)
packages/apps/Browser/res/values/mtk_strings.xml中更改name=“homepage_base_site_navigation” 對應項的值
L版本:
/packages/apps/Browser/res/values/strings.xml 修改http://www.mtn.co.za
11.加入瀏覽器書籤(可overlay)
a.將預覽圖片thumb_XXX.png和圖示favicon_XXX.ico拷貝到packages/apps/Browser/res/raw/目錄下。
b.修改packages/apps/Browser/res/values/bookmarks_icons.xml中的值bookmark_preloads,在後面加上前一步加入的預覽圖片和圖示的名字。
c.修改packages/apps/Browser/res/values/strings.xml中的值bookmarks,在最後加如對應的名稱和網址
12.設定預設桌布(可overlay)
將設為預設桌布的jpg格式的圖片替換以下圖片(根據螢幕解析度) frameworks/base/core/res/res/drawable-sw***dp-nodpi/default_wallpaper.jpg
d85的***為720.d85d的***為768.
13.加入預設桌布庫(可overlay)
a.將桌布圖片拷貝到packages/apps/Laucher2/res/drawable-sw***dp-nodpi/
還另需一張小的預覽圖片也放到同一目錄下
b.在packages/apps/Laucher2/res/values-sw***dp/wallpapers.xml中最後的桌布後加入新增的桌布名
(d95)在packages/apps/Laucher2/res/values-sw***dp-nodpi/wallpapers.xml中最後的桌布後加入新增的桌布名
14.設定預設動態桌布(可overlay)
a.在packages/wallpapers/XXX/res/drawable-***/中找到相應的預覽圖來確定XXX
b.在上一步確定的XXX資料夾下,AndroidManifest.xml中確定動態桌布的 包名.服務名
c.更改framworks/base/core/res/res/values/config.xml中
包名/.服務名
以上所需要的 包名/.服務名 可以找臺debug版機器,將桌布設定為相應動態桌布後,通過ADB在機器檔案系統路徑 /data/system/users/0/wallpaper_info.xml檢視
15.去掉GPS功能
a. 在 mediatek/config/$(pro)/ProjectConfig.mk 更改如下兩項為no
MTK_AGPS_APP=no
MTK_GPS_SUPPORT=no
MTK_YGPS_APP=no
b. 在 mediatek/config/$(pro)/autoconfig/kconfig/project 中新增
CONFIG_MTK_GPS=n CONFIG_GPS=n
16.更改分割槽大小
修改 mediatek/build/tools/ptgen/MTXXXX/partition_table.xls中emmc user選項卡對應分割槽大小
17.為攝像頭增加插值,如ov5647 500W插值到800W
a.mediatek/custom/mt6589/hal/imgsensor/ov5647_raw/config.ftbl.ov5647_raw.h中
FTABLE_CONFIG_AS_TYPE_OF_DEFAULT_VALUES(
KEY_AS_(MtkCameraParameters::KEY_PICTURE_SIZE),
SCENE_AS_DEFAULT_SCENE(
ITEM_AS_DEFAULT_(“2560x1920”),
ITEM_AS_VALUES_(
“320x240”, “640x480”, “1024x768”, “1280x960”,
“1600x1200”, “2048x1536”, “2560x1920”,
)
),
)
在陣列後面增加一個800W的解析度 “3264x2448”
b.packages/apps/Camera/res/values/strings.xml中增加一行8M pixels和packages/apps/Camera/res/values/mtk_strings.xml中刪除8M pixels,否則插值中會有重複
注意:上步中strings.xml和mtk_strings.xml可overlay,不同攝像標頭檔案存放路徑可能不同,如gc0308在mediatek/custom/common/hal/imgsensor/gc0308_yuv,可將檔案靠到專案相關路徑下,如mediatek/custom/($pro)/hal/imgsensor/gc0308_yuv
18.預置視訊,音樂,圖片等媒體檔案
打入預置媒體補丁,在vendor/mediatek/(pro)/system下建立mediauser目錄,將要預置的媒體資源放在此目錄中
19.開機動畫,關機動畫(連續的png圖片)
a.製作bootanimation.zip:新建資料夾part0 part 1 檔案desc.txt,part0放第一階段動畫,part1放第二階段的動畫。desc.txt 內容如下
768 1024 30
p 1 0 part0
p 0 0 part1
P 標誌符
1 迴圈次數
0 階段切換間隔時間
part0 對應目錄名
用命令zip -r -0 bootanimation.zip part0 part1 desc.txt,壓縮成 bootanimation.zip
b.將bootanimation.zip放入
vendor/mediatek/(pro)/system/media/
關機動畫製作和開機動畫一樣,只是壓縮包的名字改為shutanimation.zip,並且在system.prop中加入ro.operator.optr=CUST
20.開機音樂,關機音樂
開機音樂改名為bootaudio.mp3,關機音樂改名為shutaudio.mp3放入vendor/mediatek/(pro)/system/media/
注意:其他格式的音訊檔案要轉為mp3格式
21.Email增加預設郵箱,不用設定收發伺服器
如增加outlook郵箱,在packages/apps/Email/res/xml/providers.xml增加
<incoming uri="pop3+ssl+://pop3.live.com" username="$email" />
<outgoing uri="smtp+tls+://smtp.live.com" username="$email" />
22.更改桌面圖示排列位置
packages/apps/Launcher2/res/xml-sw600dp/default_workspace.xml
目錄要跟據解析度選擇
如1024x600 選擇 xml-sw600dp,1024x768 選擇 xml-sw720dp
23.預設勾選USB除錯
在build/core/main.mk中更改ro.debuggable=1
24.快速開機
frameworks/base/packages/SettingProvider/res/values/mtk_defaults.xml中
<bool name="def_ipo_setting" translatable="false">false</bool>
25.預設關閉資料連線
mediatek/config/$(pro)/ProjectConfig.mk下的MTK_DEFAULT_DATA_OFF = no這個值來控制的
有MTK_DEFAULT_DATA_OFF=yes即預設關閉
26.時間12小時制和24小時制
a. 修改檔案frameworks/base/packages/SettingsProvider/res/values/defaults.xml
增加程式碼
24
紅色標記表示24小時制,也可以改為12(12小時制)
b. 修改檔案frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
找到函式loadSystemSettings (),在函式中增加以下語句:
loadStringSetting(stmt, Settings.System.TIME_12_24, R.string.time_12_24);
27.未知來源
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
false
要預設勾選將false改為true
28.屏保時間
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
60000
29.自動旋轉螢幕
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
true
30.預設背光亮度
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
102
31.預設wifi
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
false
32.預設藍芽
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
false
33.APN
frameworks/opt/telephony/src/java/com/android/internal/telephony/RIL.java
mediatek/frameworks/base/telephony/etc/apns-conf.xml
mediatek/frameworks/base/res/res/values-th/string.xml
mediatek/frameworks/base/res/res/values/string.xml
mediatek/frameworks/base/res/res/values/public.x
ml
33.平板改為手機
build/target/product/$(pro).mk中PRODUCT_CHARACTERISTICS := tablet改為PRODUCT_CHARACTERISTICS := default
34.攝像頭旋轉方向
mediatek/custom/common/hal/imgsensor/src/cfg_setting_imgsensor.cpp中更改getSensorOrientation()中的值
35.旋轉gsensor方向
mediatek/custom/(相應gsensor)/cust_acc.c中
static struct acc_hw cust_acc_hw = {
.i2c_num = 3,
.direction = 3,
.power_id = MT65XX_POWER_NONE, /*!< LDO is not used */
.power_vol= VOL_DEFAULT, /*!< LDO is not used */
.firlen = 0, //old value 16 /*!< don't enable low pass fileter */
};
更改 direction的值,範圍0 – 7
36.預設USB連線為MPT
/mediatek/config/discovery89_tb_jb2/ProjectConfig.mk
MTK_MASS_STORAGE=yes
改為
MTK_MASS_STORAGE=no
37.刪除 視訊播放器APK
/mediatek/config/discovery89_tb_jb2/ProjectConfig.mk
MTK_VIDEOPLAYER_APP=no
MTK_VIDEOWIDGET_APP=no
MTK_VIDEO_FAVORITES_WIDGET_APP=no
38.預置桌面資料夾
請參考如下程式碼修改default_workspace.xml檔案;
<folder
launcher:icon="@drawable/portal_ring_inner_holo"
launcher:screen=“0”
launcher:title="@string/folder_name_format" //資料夾名字可自定義
launcher:x=“0”
launcher:y=“0” >
<favorite //應用快捷方式,只需包名類名即可
launcher:packageName=“com.android.settings”
launcher:className=“com.android.settings.Settings” />
39.如何編譯單雙卡版本
參照補丁
40.D85D如何編譯Gsensor 或 Gsensor+Msensor軟體
如果是G+M:
CUSTOM_KERNEL_ACCELEROMETER=mc3xxx #mc32x0
CUSTOM_KERNEL_MAGNETOMETER=mc64xx
如果是G:D85D預設的
CUSTOM_KERNEL_ACCELEROMETER=mc32x0 #mc3xxx
CUSTOM_KERNEL_MAGNETOMETER= #mc64xx
41.如何刪除系統自帶的鈴聲中的某些特定鈴聲;如何將一個鈴聲設定為預設鈴聲
[SOLUTION]
1.新增、刪除系統自帶的鈴聲
==》找到frameworks/base/data/sounds/audioPackage2.mk
把你需要的檔案路徑寫在:system/media/audio/ringtones/路徑
例如,新增一首鈴聲Buyecheng.mp3
在AudioPackage2.mk檔案的
PRODUCT_COPY_FILES+=/
$(LOCAL_PATH)/ringtones/Buyecheng.mp3:system/media/audio/ringtones/Buyecheng.mp3
然後把Buyecheng.mp3檔案放置在frameworks/base/data/sounds/ringtones/Buyecheng.mp3
刪除反之。
2.系統預設的來電鈴聲
==》build/target/product/core.mk
ro.config.ringtone=Buyecheng.mp3
預設鈴聲是統一在build/target/product/core.mk檔案中設定,其中ro.config.notification_sound表示通知的預設鈴聲,ro.config.ringtone表示語音來電和視訊來電的鈴聲,若希望語音來電和視訊來電分開設定,請參考FAQ08273 [Audio Profile]如何設定視訊來電鈴的預設鈴聲:
PRODUCT_PROPERTY_OVERRIDES:=/
ro.config.notification_sound=Proxima.ogg/
ro.config.alarm_alert=Alarm_Classic.ogg/
ro.config.ringtone=Backroad.ogg
42.隱藏無線輸入裝置。
wireless 在mediatek/packages/apps/bluetooth/profiles/hid/AndriodManfest.xml註釋掉 <categoryandroid:name=“android.intent.category.LAUNCHER” />
wireless 在mediatek/packages/apps/build/AndriodManfest.xml註釋掉
43.刪除apk視窗小部件(如何關閉yahoo 天氣的視窗小部件)
[SOLUTION]
1.請確認下面目錄下是否有weather的apk:
vendor/mediatek/xxx/artifacts/out/target/product/xxx/system/app/
MtkWeatherWidget.apk
MtkWeatherProvider.apk
MtkWeatherSetting.apk
如果有,請刪除3個apk,後面的步驟可以省略,原因是vendor 下面out目錄中的apk會預設編譯到。
如果步驟1中不存在apk,請修改下面的內容
mediatek/config/xxx/ProjectConfig.mk 檔案
MTK_WEATHER_WIDGET_APP=yes修改為no
MTK_WEATHER_PROVIDER_APP=yes修改為no
再確認下build/target/product/common.mk檔案
PRODUCT_PACKAGES+=MtkWeatherWidget //刪除此定義,確保不會新增這個packages
例如刪除search.在build/target/product/common.mk中刪除QuickSearchBox/
但是要做一個備份
44.刪除設定嚮導
mediatek/config/xxx/ProjectConfig.mk中把MTK_OOBE_APP= yes改為no
45.刪除第三方apk
刪除vendor/mediatek/pro/artifacts/out/target/product/pro/system/vendor/operator/app/$(name).apk
46.刪除發掘自帶的apk
註釋掉build/target/projuct/$(pro).mk中對應的apk
47.修改UA引數
How to modify Browser UA profile URL for JB.MP, JB2.MP, JB3.MP
[SOLUTION]
UA position:
mediatek/config/xxx/custom.conf
Modification:
Add your UA profile URL into the filed “browser.UAProfileURL” or modify the existed one.
Example:
browser.UAProfileURL = xxxxxx
48.更改預設聲音大小
frameworks/base/media/java/android/media/AudioManager.java
public static final int[] DEFAULT_STREAM_VOLUME = new int[] {
4, // STREAM_VOICE_CALL
0~6
15, // STREAM_SYSTEM
0~15
8, // STREAM_RING
0~15
8, // STREAM_MUSIC
0~15
8, // STREAM_ALARM
0~15
8, // STREAM_NOTIFICATION
0~15
7, // STREAM_BLUETOOTH_SCO
0~15
15, // STREAM_SYSTEM_ENFORCED
0~15
11, // STREAM_DTMF
0~15
11, // STREAM_TTS
0~15
8, // STREAM_FM
0~15
8 // STREAM_MATV
0~15
};
49.更改翻譯
一般更改package和framework下的各語言目錄下的string.xml和mtk_string.xml檔案,視具體情況而定
50.更改預設字型大小
frameworks/base/core/java/android/content/res/Configuration.java
public void setToDefaults() {
fontScale = 1; //0.9小 1.0普通 1.1大 1.15超大
…
}
字型大小定義在
package/apps/Settings/res/values/arrays.xml
<item>0.9</item>
<item>1.0</item>
<item>1.1</item>
<item>1.15</item>
</string-array>
51.更改無線顯示在對方機器的名稱
frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java
private String getPersistedDeviceName() {
…
if (deviceName == null) {
…
return “Android_” + id.substring(0,4); //此句改為return “xxxx”
}
return deviceName;
}
52.更改setting->audio預設屬性
mediatek/frameworks/base/media/audio/java/com/mediatek/audioprofile/AudioProfileManager.java
/** Default values of vibration for different audio profiles. */
final boolean DEFAULT_VIBRATION_GENERAL = false;
final boolean DEFAULT_VIBRATION_SILENT = false;
final boolean DEFAULT_VIBRATION_MEETING = true;
final boolean DEFAULT_VIBRATION_OUTDOOR = true;
/**
* Default values that indicate whether the audible DTMF tone should be
* played by the dialer when dialing.
*/
final boolean DEFAULT_DTMFTONE_GENERAL = true;
final boolean DEFAULT_DTMFTONE_SILENT = false;
final boolean DEFAULT_DTMFTONE_MEETING = false;
final boolean DEFAULT_DTMFTONE_OUTDOOR = true;
/**
* Default values of sound effect(Key clicks, lid open/close...) for
* different audio profiles.
*/
final boolean DEFAULT_SOUNDEFFECT_GENERAL = false;
final boolean DEFAULT_SOUNDEFFECT_SILENT = false;
final boolean DEFAULT_SOUNDEFFECT_MEETING = false;
final boolean DEFAULT_SOUNDEFFECT_OUTDOOR = false;
/** Default values that indicate whether the lock screen sound are enabled. */
final boolean DEFAULT_LOCK_SCREEN_GENERAL = true;
final boolean DEFAULT_LOCK_SCREEN_SILENT = false;
final boolean DEFAULT_LOCK_SCREEN_MEETING = false;
final boolean DEFAULT_LOCK_SCREEN_OUTDOOR = true;
/** Default values that indicate whether the haptic feedback are enabled. */
final boolean DEFAULT_HAPTIC_FEEDBACK_GENERAL = true;
final boolean DEFAULT_HAPTIC_FEEDBACK_SILENT = false;
final boolean DEFAULT_HAPTIC_FEEDBACK_MEETING = false;
final boolean DEFAULT_HAPTIC_FEEDBACK_OUTDOOR = true;
視情況修改
53.更改語音控制預設語言
mediatek/frameworks/base/voicecommand/cfg/voicelanguage.xml
<DefaultLanguage ID=“簡體中文” //更改為所需語言
現MTK只支援簡體中文、繁體中文、English,做國外客戶軟體全部預設為English
54.增加郵件簽名
packages/apps/Email/emailcommon/src/com/android/emailcommon/provider/Account.java
public Account() {
mBaseUri = CONTENT_URI;
// other defaults (policy)
mRingtoneUri = "content://settings/system/notification_sound";
mSyncInterval = -1;
mSyncLookback = -1;
mFlags = FLAGS_NOTIFY_NEW_MAIL;
mCompatibilityUuid = UUID.randomUUID().toString();
//在此處增加mSignature = "xxxx"; //send signature
}
55.USB相關名稱修改
參考MTK online FAQ USB名稱修改系列
56.修改device
首先需要做備份。在rootdir/custom/$pro/cgen/inc中修改audio_ver1_volume_custom_default.h中的#define VER1_AUD_VOLUME_MEDIA /
32,48,64,80,96,112,128,144,160,176,192,208,224,240,255,/
10,20,32,48,64,80,96,112,128,144,160,176,192,208,224,/
100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,/
32,48,64,80,96,112,128,144,160,176,192,208,224,240,255
安卓支援的語言
languages_full.mk
projectconfig.mk是mtk的apk
common.mk是安卓的apk
58/修改亮度圖示的半亮度值:在$rootdir/frameworks/base/core/res/res/values/config.xml中修改config_screenBrightnessSettingDefault
60/關機的reboot改為restart
$rootdir/frameworks/base/core/res/res/values/strings.xml修改
Reboot
PTP就是product model