Android MTK平臺原始碼環境下預置APK方法
[DESCRIPTION]
1, 如何將帶原始碼的 APK 預置進系統?
2, 如何將無原始碼的APK預置進系統?
3, 如何預置APK使得使用者可以解除安裝,恢復出廠設定時不能恢復?
4, 如何預置APK使得使用者可以解除安裝,並且恢復出廠設定時能夠恢復?
[SOLUTION]
一、如何將帶原始碼的APK預置進系統?
1)在 packages/apps下面以需要預置的 APK的名字建立一個新資料夾,以預置一個名為Test的APK 為例
2)將 Test APK的Source code 拷貝到 Test 資料夾下,刪除 /bin 和 /gen 目錄
3)在 Test 目錄下建立一個名為
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)開啟檔案 build/target/product/${Project}.mk(其中 ${Project} 表示工程名)
將 Test 新增到 PRODUCT_PACKAGES
5)重新 build 整個工程
二、如何將無原始碼的 APK 預置進系統?
1)在 packages/apps下面以需要預置的 APK 名字建立資料夾,以預置一個名為Test的APK為例
2)將 Test.apk 放到 packages/apps/Test下面
3)在packages/apps/Test 下面建立檔案 Android.mk,檔案內容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := Test
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
4)開啟檔案 build/target/product/${Project}.mk(其中 ${Project} 表示工程名)
將 Test 新增到 PRODUCT_PACKAGES 裡面。
5)將從Test.apk解壓出來的 so庫拷貝到alps/vendor/mediatek/${Project}/artifacts/out/target/product/${Project}/system/lib/目錄下,若無 so 庫,則去掉此步;
6)重新 build 整個工程
注:Google在KK上修改protection Level為System的permission控管機制
如果App使用System Level的permission,需要預置到/system/priv-app底下 (原在/system/app)。
舉例來講:
關於獲取副SD卡的寫入許可權的案例,App需要在AndroidManifest.xml宣告WRITE_MEDIA_STORAGE permission獲取副卡的寫入許可權
(Ref: KK/alps/frameworks/base/core/res/AndroidManifest.xml)
已知android.permission.WRITE_MEDIA_STORAGE屬於SystemOrSignature level的permission,定義如下:
KK上,您需要採用以下方法,獲取該permission:
修改Android.mk,增加LOCAL_PRIVILEGED_MODULE := true,以宣告app需要放在/system/priv-app下。
三、如何預置APK使得使用者可以解除安裝,恢復出廠設定時不能恢復?
1)在 packages/apps 下面以需要預置的 APK 名字建立資料夾,以預置一個名為Test的APK為例
2)將 Test.apk 放到 packages/apps/Test 下面;
3)在packages/apps/Test 下面建立檔案 Android.mk,檔案內容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := Test
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
include $(BUILD_PREBUILT)
4)開啟檔案 build/target/product/${Project}.mk (其中 ${Project} 表示工程名)
將 Test 新增到 PRODUCT_PACKAGES 裡面。
5)重新 build 整個工程
注意:這個比不能解除安裝的多了一句
LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
四、如何預置APK使得使用者可以解除安裝,並且恢復出廠設定時能夠恢復?
有兩種方法:
方法一:預置apk到system/vendor/operator下面
具體做法如下:
在packages/apps下面以需要預置的 APK 名字建立資料夾,以預置一個名為Test的APK為例:
1)將Test.apk 放到 packages/apps/Test 下面;
2)在packages/apps/Test下面建立檔案 Android.mk,檔案內容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed
LOCAL_MODULE := Test
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_PATH := $(TARGET_OUT)/vendor/operator/app
include $(BUILD_PREBUILT)
3)開啟檔案 build/target/product/${Project}.mk(其中 ${Project} 表示工程名), 將 Test 新增到 PRODUCT_PACKAGES 裡面
4)重新 build 整個工程
方法二:使用MTK_SPECIAL_FACTORY_RESET,再配合.keep_list / .restore_list
為了讓使用者在將預置的 APK 解除安裝後,恢復出廠設定時能恢復,敝司做了一個 Feature,但在ALPS.GB.TDFD.MP.V1.7和 ALPS.GB.FDD2.MP.V4.7版本後支援,若貴司版本低於此版本,請申請Patch ALPS00092543;
大致的做法是:
- 在vendor/mediatek/project_name/artifacts/out/target/product/project_name/system目錄下新建一個名為appbackup的資料夾,將該應用的apk檔案copy到appbackup資料夾下
- 在mediatek/config/project_name/ProjectConfig.mk檔案中新增定義:MTK_SPECIAL_FACTORY_RESET=yes
- 在vendor/mediatek/project_name/artifacts/out/target/product/project_name/data/app下建立一個.restore_list,並且在其中新增語句:/system/appbackup/xxx.apk(注意,.restore_list中的每一行都要以"/system” 開頭)
當解除安裝了data/app下的apk後,再恢復出廠設定,系統會從 .restore_list 中讀取apk的名字,然後從 appbackup 檔案中把apk重新拷貝到data/app下,從而恢復data/app下已經解除安裝了的apk。
同時,還需要在vendor/mediatek/project_name/artifacts/out/target/product/project_name/data/app目錄下建立一個空檔案,命名為.keep_list(.keep_list的用途是,如果安裝了A,B,C三個APK到DATA,在恢復出廠設定時,想要將A保留,那麼就將A寫入到.KEEP_LIST,這樣,A會被保留,B,C會被刪除。如果沒有這個檔案,那麼所有的APK都會被保留。具體可以參考FAQ03437和FAQ05341)。
以上操作過程,DCC 上面也有相應的文件可供參考,文件的名字叫:Android SD upgrade application note.docx,裡面有一項:MTK special factory reset,就詳細地介紹了以上操作步驟。
注:該方法從kk開始不建議使用,原因:從KK版本開始,DVM取dex檔案的路徑變成了絕對路徑,而PMS和installd用的都是檔案路徑,如果用MTK_SPECICAL_FACTORY_RESET配合.restore_list的方式恢復apk的話,這種上下不sync會導致一些問題,比如:恢復出廠設定後三方應用報錯、恢復出廠設定後user
[DESCRIPTION]
1, 如何將帶原始碼的 APK 預置進系統?
2, 如何將無原始碼的APK預置進系統?
3, 如何預置APK使得使用者可以解除安裝,恢復出廠設定時不能恢復?
4, 在http://blog.csdn.net/ericahdu 的幫助下,實現了模擬按鍵,在此,首先表示感謝:)
在原始碼下寫程式可以擺脫SDK的限制,畢竟SDK開放的API有限,比如我們實現模擬按鍵時,需要用到IWindowManager這個類, 但是SDK中是不提供這個類的
首先下載編譯原始碼,然後在 9.png 虛擬機 jdk版本 編寫 clip 開發平臺 集成開發 arc 電腦安裝
鑒於谷歌最新推出的Android Studio備受開發者的推崇,所以也跟著體驗一下。
一、介紹Android Studio
Android Studio 是一個Android 環境變量 最新版 下載 and 系統 系統環境變量 新版本 開發環境 studio 詳細步驟請查看官網對應文檔,BUT,有些註意事項請註意!
1,優先安裝Node.js,因為後面可以使用npm安裝軟件,
2,註意不要使用CNPM!!!!!!!!!
3,Android https 問題 3.2 解決 問題解決 lin 新版 all ann 一. 樂彩平臺搭建安裝論壇:haozbbs.com Q1446595067 步驟
1.1 安裝libevent,當前最新版本為2.1.8,官網:http://libevent.org/
wget htt
相關依賴:
android-ndk-r10b:ubuntu14.04搭建Android-NDK開發環境
android-arm:ubuntu14.04搭建Android-arm交叉編譯環境
1.開啟一個新的Terminal,進入Android平臺工作空間:cd AndroidWork
現有專案需要用到RecyclerView、Leanback、Cardview等一些比較新的Support庫,且用來編譯的buildToolsVersion已經需要用到最新的23.0.1,targetSdkVersion是23。
之前嘗試在Ec
在Android開發中,正式和測試環境的切換,一般情況下我們都會去設定一個tag,通過此tag來改變開發環境。
以前的寫法一般都是:
public class BaseApplication extends Application {
public boolean
MTK 的第三方App檔案或者so庫,都存在在Vendor目錄下面
vendor\retch\thirdapp
我們要實現App 的拷貝,可以在pacakage\apps 下面去新建一個資料夾RetchApp然後加入一個RetchApp.mk檔案去執行
//拷貝到
ope
當你使用新版的android studio 直接run專案時,如果應用是需要安裝assets目錄下的apk包可能會出現以下問題:
這是因為新版的android studio中預設使用instant run,當直接run 部署到真機或者模擬器上時編譯專案可能會出現問題,導致
MRAA庫IIC例程:以下程式是操作MS8607感測器mraa_init();/* initialize I2C on bus 0 */m_i2c = mraa_i2c_init(1);mraa_i2c_frequency(m_i2c,MRAA_I2C_FAST);//400
廢話不多說!
<1> : 新建一個DurianAsJni的android工程.
<2> : 新建一個jni的java介面類:
package org.durian.durianasjni;
/**
* Project name : DurianA
一、Maven開發環境搭建
1、下載安裝Maven:
http://maven.apache.org/download.html
2、配置Maven環境變數:
配置好環境變數以後,在cmd中執行mvn -v來檢查maven環境變數是否配置完成,見下圖:
3、配置Ma
修改手機的開機動畫不是什麼難事兒。
但修改一款很冷門的“山寨機”,就不太好修改第一屏了。
手機是MTK的一款手機,雖然比較貴(價格超過三星Note3),但在我看來跟山寨機木有啥區別。
很冷門的手機,百度谷歌都翻了個天,都木有刷機包,更別提recovery了。
好了,root
本來來源於為了得分回答別人的問題,不詳細思考,不驗證,就把百度的答案貼上去,所以在此,先道歉http://bbs.csdn.net/topics/390432635。
留有問題,當沒有SD卡又不知道內部儲存路徑時,這時候我本打算將APK 存到
/data/data/< OS: Android 8.1
# 需求分析
1、禁止系統來電鈴聲,提供介面給客戶自己播放鈴聲
2、禁止系統拉起來去電頁面(InCallActivity),訊息通知客戶拉起自己的來去電頁面
3、禁止來電訊息 Notification 顯示(包括未接來電),點選跳轉至 InCallActivity(未接 cache post /etc/ setting 情況 buffers 是否 mks sta Linux環境下Swap配置方法
場景: 今天下午安裝一個CentOS6.5操作系統,忘記配置swap分區。看看如何安裝系統之後,增加和刪除swap分區。方法如下:1.內存占
1、下載apktool
網上百度下載apktool
2 、去找String.xml裡面的關鍵資訊的資原始檔
資原始檔在res\values\string.xml檔案裡面
找到關鍵字串,比如“無效使用者名稱或者註冊碼”
複製name
3、通過資原始檔找到id
再到res\va
環境:java 1.7 ,tomcat8.0問題:tomcat8.0環境下,使用get方法提交由英文字母數字組合的內容顯示正常,但提交中文引數編碼亂碼,然而使用post方法程式一切正常,不出現亂碼問題。
原因:高版本tomcat 中,get 與 post 方法對引數內容
作業系統:Win10
在已經安裝python3的情況下,再安裝anaconda,如果忘了選擇”Add path to your environment”,該如何處理。
未配置環境變數的情況
配置過程
1.找到你安裝anaconda的系統地址 相關推薦
Android MTK平臺原始碼環境下預置APK方法
Android模擬按鍵——原始碼環境下開發應用程式
Android 開發之Windows環境下Android Studio安裝和使用教程(圖文詳細步驟)
React-Native 學習筆記-Android開發平臺-開發環境搭建
Linux樂彩平臺搭建環境下Memcached安裝及問題解決
ubuntu14.04+android-ndk-r10b+arm環境下交叉編譯openssl-1.1.1記錄
Android Studio工程如何放到Android 4.X原始碼環境中編譯
Android正式和開發環境下切換操作,BuildConfig幫你一步到位
Android MTK 拷貝第三方App 內建apk檔案到系統目錄
android studio 安裝assets目錄下的apk包出現解析錯誤的問題
Edison平臺eclipse環境下通過MRAA庫使用IIC、SPI、UART例程(BMI160、MS8607)
Android AS平臺jni環境配置
Android工程在Maven環境下打包
Android MTK平臺最完備的開機動畫修改教程
關於android 如何安裝 assets檔案下的apk
Android MTK平臺 客製化系統來電介面(遮蔽 InCallUI 提供介面給客戶自行展示來電去電頁面)
Linux環境下Swap配置方法
Android安全與逆向之簡單破解APK方法
tomcat8.0環境下解決get方法中文引數亂碼問題
anaconda環境配置與windows環境下pip使用方法