我的筆記

1、DEBUG版本刪除某一APP模塊:

adb shell
cd system/app
ls -l
rm XXXX.apk
exit

2、添加新模塊時注意:

     加入新模塊 需要在app文件夾目錄加入一個.mk文件,以便用./mk來編譯 即Android.mk
    然後在工程目錄bulid/target/product/common.mk文件中追加加入新模塊名稱,例如添加Compass模塊

    ...\

    ...\
   Compass

    Compass模塊中mk文件內容:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_PACKAGE_NAME := Compass(APP文件夾名)

LOCAL_STATIC_JAVA_LIBRARIES := \   (需要的包)
    android-common \
    android-support-v4 

include $(BUILD_PACKAGE)

3、開關機動畫

      設置默認爲第幾套開關機動畫:

      涉及文件:

     frameworks/base/cmds/bootanimation/BootAnimation.cpp   修改logoNum 和 defaultLogoNum 初值
     mediatek/external/ipod/bootlogo.cpp                    修改logoNum 和 defaultLogoNum 初值
     mediatek/external/boot_logo_updater/boot_logo_updater.cpp 修改logoNum 和 defaultLogoNum 初值
     編輯 base ipod boot_logo_updater三個模塊


     添加新的開關機動畫:

     舉例添加新開關機UI,切換指令2663,單卡模式,客戶4下

     涉及文件:

     packages/apps/SwitchAnimation/src/com/wyeda/switchanimation/SwitchBootAnimation.java

    1、 添加UI控制變量:

  private static final int SINGLE9500_2663 = 12;//這裏的數值取決於是第幾套UI,我的工程裏目前已存在11套UI,故這裏設值爲第12套UI	
    2、在onReceive方法中合適位置追加else if語句

    

@Override
    public void onReceive(Context context, Intent intent) {
     mContext = context;
    String host = intent.getData() != null ? intent.getData().getHost() : null;
    //....省略部分代碼
    if(host != null)
    {
       ......//省略部分代碼
      else if(host.equals("6264"))
          {
             writeLogoFlag(SINGLE9500_6264);
          }
       else if(host.equals("2663"))         //

          {                                 // 這幾行是追加的代碼,用於響應切換指令
            writeLogoFlag(SINGLE9500_2663); //
          }                                 //

       ......//以下省略

    }
 }


  3、在checkLogoSwitch方法中設置該套UI屬於哪一個客戶

           本套UI屬於客戶4,就才case 4中添加logo_num==12的或語句

private boolean checkLogoSwitch(int logo_num)
    {
             ......//省略部分代碼
             switch((int)host_flag){
 

              ......//省略部分代碼


                        case 4:if(logo_num == 0 || logo_num == 1 || logo_num == 2 || logo_num == 3 || logo_num == 4 || logo_num == 10 || logo_num == 11 || logo_num == 12){result = true;}break;
              

              ......//省略部分代碼


              } ......//省略部分代碼}


 

 

  packages/apps/SwitchAnimation/AndroidManifext.xml

     這個文件中主要註冊一個新的指令2663,它屬於UI切換指令。

    

<!--切換動畫-->
   
 <receiver android:name=".SwitchBootAnimation">
            <intent-filter>
                <action android:name="android.provider.Telephony.SECRET_CODE" />
                 <!-- client id -->
                 <data android:scheme="android_secret_code" android:host="6629" />
                 <data android:scheme="android_secret_code" android:host="18020" />
                 <data android:scheme="android_secret_code" android:host="20766" />
         <data android:scheme="android_secret_code" android:host="36095" />
         <data android:scheme="android_secret_code" android:host="46349" />
         <data android:scheme="android_secret_code" android:host="52974" />
         <data android:scheme="android_secret_code" android:host="69842" />
         <data android:scheme="android_secret_code" android:host="73857" />
         <data android:scheme="android_secret_code" android:host="89075" />
         <data android:scheme="android_secret_code" android:host="91352" />
         <data android:scheme="android_secret_code" android:host="07543" />
         <data android:scheme="android_secret_code" android:host="11975" />
         <data android:scheme="android_secret_code" android:host="12934" />
                 <!-- logo ui -->
                 <data android:scheme="android_secret_code" android:host="0000" />
                 <data android:scheme="android_secret_code" android:host="9500" />
                 <data android:scheme="android_secret_code" android:host="9502" />
         <data android:scheme="android_secret_code" android:host="9501" />
                 <data android:scheme="android_secret_code" android:host="9503" />
         <data android:scheme="android_secret_code" android:host="2728" />
         <data android:scheme="android_secret_code" android:host="6577" />
         <data android:scheme="android_secret_code" android:host="6160" />
         <data android:scheme="android_secret_code" android:host="6767" />
         <data android:scheme="android_secret_code" android:host="9449" />
         <data android:scheme="android_secret_code" android:host="5688" />
         <data android:scheme="android_secret_code" android:host="5622" />
         <data android:scheme="android_secret_code" android:host="6264" />
         <data android:scheme="android_secret_code" android:host="2663" />  (追加了這一行)
         
                  <data android:scheme="android_secret_code" android:host="0220" />
                  <data android:scheme="android_secret_code" android:host="0230" />
                  <data android:scheme="android_secret_code" android:host="0240" />
                  <data android:scheme="android_secret_code" android:host="0250" />
        
            </intent-filter>
     </receiver>



     mediatek/external/boot_logo_updater/Android.mk

     追加boot_logo_12這個項,即15行至末行,與前面已存在的相比,只有LOCAL_MODULE有改變

########################################################
ifneq ($(strip $(MTK_PLATFORM)),)
include $(CLEAR_VARS)

LOCAL_MODULE := boot_logo_11

LOCAL_MODULE_CLASS := DATA
LOCAL_MODULE_PATH := $(TARGET_OUT)/media/images

LOCAL_GENERATE_CUSTOM_FOLDER := custom:lk/logo
LOCAL_SRC_FILES := custom/$(LOCAL_MODULE)

include $(BUILD_PREBUILT)
endif
########################################################
ifneq ($(strip $(MTK_PLATFORM)),)
include $(CLEAR_VARS)

LOCAL_MODULE := boot_logo_12

LOCAL_MODULE_CLASS := DATA
LOCAL_MODULE_PATH := $(TARGET_OUT)/media/images

LOCAL_GENERATE_CUSTOM_FOLDER := custom:lk/logo
LOCAL_SRC_FILES := custom/$(LOCAL_MODULE)

include $(BUILD_PREBUILT)
endif



     

     mediatek/custom/common/lk/logo/rules.mk

     追加下面這一行在合適位置,用於關聯開機第二幀的圖片
$(BMP_TO_RAW) $(BOOT_LOGO_IMAGE_12) $(BOOT_LOGO_DIR)/$(BOOT_LOGO)/$(BOOT_LOGO)_kernel_12.bmp


     mediatek/BootAnimation/logoCopy.mk

     這個文件中記錄着每套開關機動畫的開機動畫包、關機動畫包、聲音文件路徑

     mediatek/BootAnimation

     這個文件夾下保存這開關機動畫包、聲音文件

     mediatek/config/lcsh72_we_jb3/ProjectConfig.mk

     這個文件用於找到保存開機第二幀圖片的文件夾名稱,搜索logo = 這個字符串,找到的文件夾名稱就是當前保存圖片的文件夾

  /frameworks/base/cmds/bootanimation/BootAnimation.cpp

    在合適位置追加

   開機動畫

else if(logoNum == 12){
                err = mZip.open("/system/media/bootanimation12.zip");        
            }


和 關機動畫

else if(logoNum == 12){
                err = mZip.open("/system/media/shutanimation12.zip");    
            }


 /mediatek/external/boot_logo_updater/boot_logo_updater.cpp

    在合適位置追加

    變量:

const char LOGO_PATH_12[] = "/system/media/images/boot_logo_12";


    控制語句:

else if(logoNum == 12){
        logo_path = LOGO_PATH_12;
    }


 /mediatek/external/ipod/bootlogo.cpp

     合適位置追加

變量:

const char LOGO_PATH_12[] = "/system/media/images/boot_logo_12";


控制語句:

else if(logoNum == 12){
        logo_path = LOGO_PATH_12;
    }


     frameworks/base/core/java/android/os/ProjectManager.java

     添加變量

    

private static final int UI9500_2663 = 12;


 添加方法

 /**
         * 2663
         * @hide
         */
    public static boolean isP2663()
    {
        return (readLogoNum() == UI9500_2663);
    }


     以便修改藍牙名稱,版本號,基帶版本號等

4、修改藍牙、型號名稱

       涉及文件:

     1、  frameworks/base/core/java/android/os/ProjectManager.java

      getBlueToothName()獲取藍牙名稱

      getDeviceMode()型號

      getProductName()產品名稱

      getBuildNumber()內部版本號

      getVersionNum()版本號

      getPlatformMode()基帶版本號

      getBrand()品牌

     

    2、   mediatek/frameworks-ext/base/core/java/android/bluetooth/BluetoothAdapter.java   在getName()方法中添加型號名稱,以下語句

          || "S9500".equals(mService.getName())

 public String getName() {
        try {
            Log.d("getName()", "persist.sys.story_bluetooth" + android.os.SystemProperties.getInt("persist.sys.story_bluetooth", 0));
            if(android.os.SystemProperties.getInt("persist.sys.story_bluetooth", 0) == 0){

                if("GT-N7102".equals(mService.getName())
                    || "GT-N7100".equals(mService.getName())
                    || "ANDROID BT".equals(mService.getName())
                    || "I950 BT".equals(mService.getName())
                    || "GT-I9500".equals(mService.getName())
                    || "GT-I9502".equals(mService.getName())
                    || "KONSU".equals(mService.getName())
                    || "KingMan".equals(mService.getName())
                    || "ZH616".equals(mService.getName())
                    || "mango".equals(mService.getName())
                    || "S9500".equals(mService.getName())) {

                    if(!android.os.ProjectManager.getBlueToothName().equals(mService.getName())){
                        setCurLogoBTName(android.os.ProjectManager.getBlueToothName());

                    }
                    return android.os.ProjectManager.getBlueToothName();
                } else {

                    return mService.getName();
                }
            }else {

                return mService.getName();
            }
        } catch (RemoteException e) {Log.e(TAG, "", e);}
        return null;
    }




5、編譯模塊找不到符號:
刪除三個緩存文件:
/out/target/product/lcsh72_we_jb3/system/app/模塊名.apk
/out/target/product/lcsh72_we_jb3/obj/APPS/模塊名_intermediates
/out/target/common/obj/APPS/模塊名_intermediates

6、adb devices  找到設備:

       sudo adb kill-server

       sudo adb start-server

       adb devices

7、本地版本恢復到指定10版本:

      svn up -r 10


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章