Android MSD6A801源代碼的功能修改方法
andorid 系統(tǒng) MSD6A801源代碼的相關(guān)功能修改方法
首先 替換 Supernova\projects\customerinfo\inc\Customer_Info.h
替換 內(nèi)核中l(wèi)inux/drivers/mmc/core/mmc.c文件
1. keypad
(1).如How to customize Keypad.docx說明改android\ics\device\mstar\mstaramber3\Keypad.h文件
(2). 公板沒有back鍵,要加一個back 鍵.要改android\ics\device\mstar\mstaramber3\Vendor_3697_Product_0002.kl文件加一個back鍵.
這個可以參考Vendor_3697_Product_0001.k文件
(3).文件中為修改好的兩個文件,替換就可以
2.panpel
(1). 修改panpel的POL極性:
在\MBoot\sboot\inc\amber3\board\BD_MST029B_10AFX_A3.h中
#define PANEL_SWAP_LVDS_POL 1 //cesar change
(2). 替換Supernova\projects\board\INI\panel\FullHD_CMO216_H1L01.ini文件
(3). 修改ui的分辨密度,
文件android\ics\device\mstar\mstaramber3\device.mk
PRODUCT_PROPERTY_OVERRIDES += \
ro.sf.lcd_density=240 -->改為160
(4). 修改android界面中的TV畫中畫大小和位置
改android\ics\device\mstar\common\app\MLauncher\res\values-1280x720\dimens.xml中的videoWindowType變量
這里替換改好的文件就可以
3.touch driver
觸摸實現(xiàn)代碼:
(1).將代碼eGTouch_supplicant 放在ics/external中
(2).復(fù)制eGalaxTouch_VirtualDevice.idc文件和eGTouchA.ini文件到\android\ics\device\mstar\mstaramber3 中.
(3).修改android\ics\device\mstar\mstaramber3\full_mstaramber3.mk : (也可以在device.mk文件中改)
# Keypad
PRODUCT_PACKAGES := \
virtualkeypad
eGTouchD
# Device idc/keylayout
PRODUCT_COPY_FILES += \
device/mstar/mstaramber3/Vendor_3697_Product_0001.kl:system/usr/keylayout/Vendor_3697_Product_0001.kl \
device/mstar/mstaramber3/Vendor_3697_Product_0002.kl:system/usr/keylayout/Vendor_3697_Product_0002.kl \
device/mstar/mstaramber3/Vendor_3697_Product_0003.idc:system/usr/idc/Vendor_3697_Product_0003.idc \
device/mstar/mstaramber3/Vendor_3697_Product_0003.kl:system/usr/keylayout/Vendor_3697_Product_0003.kl \
device/mstar/mstaramber3/eGalaxTouch_VirtualDevice.idc:system/usr/keylayout/eGalaxTouch_VirtualDevice.idc \
device/mstar/mstaramber3/eGTouchA.ini:data/eGTouchA.ini
4. 在android\ics\device\mstar\mstaramber3\init.amber3.rc 中加
service eGTouchD /system/bin/eGTouchD
class main
user root
group root
oneshot
5. 修改kernel 如eGTouch_android_guide文檔說明
6.URAT
1. 6A801的UART 在MSrv_UartDebug.cpp (projects\msrv\common\src)中有一個測試程序.MSrv_UartDebug.cpp是調(diào)的supernova\mstarsdk\src\uart中的接口.
7.UART2的測試:
(1). 在Mboot中打開UART2功能:在MBoot\sboot\inc\amber3\board\BD_MST029B_10AFVA_A3.h中打開PADS_UART3_MODE
#define PADS_UART3_MODE PAD_I2S_IN_WS
(2). 在MSrv_UartDebug.cppvoid MSrv_UartDebug::CusUartDebug_Start(void)函數(shù)中修改如下:
/* change by cesar */
//uartDebug->SwitchUart(EN_UART_PORT0,EN_UART_PIU_UART1);
uartDebug->SwitchUart(EN_UART_PORT2,EN_UART_PIU_UART1);
(3). 在Main.cpp (projects\tvos\main)函數(shù)中創(chuàng)建UART 測試代碼.這里替換文件就可以.
(4). 修改之后就可以測試UART2.用USB轉(zhuǎn)串口工具接在UART2口上(NFC接的那個口).打開串口終端就可以測試到.輸入的小寫字母轉(zhuǎn)成大寫字母.說明UART2收發(fā)OK.
8. andorid 系統(tǒng)啟動順序問題
另: android啟動后不進(jìn)入TV界面,改為進(jìn)launcher請修改ics\device\mstar\common\app\MLauncher\src\com\android\mslaunche\LauncherActivity.java里的onResume函數(shù).把啟動mstar.tvsetting.ui.RootActivity的地方注釋掉就好了。