Android - 模組添加與編譯

來源:互聯網
上載者:User

標籤:

Android5.1 Ubuntu14.04

Android系統編譯依靠.mk檔案

 

添加google服務

我們自己的ROM裡沒有google服務

完整的google包裡包含google架構和各種服務,我們可以選擇性安裝模組

在google包裡products目錄下,有一個 gms.mk 檔案(或者自己起名字)

gms.mk管理著要安裝的各個模組,找到關鍵字PRODUCT_PACKAGES

PRODUCT_PACKAGES後面跟著的就是要安裝的模組

截取部分來看看:

PRODUCT_PACKAGES +=     AndroidForWork     ConfigUpdater     GoogleBackupTransport     GoogleFeedback

一般會在device/corecompany/yourproductname/ 目錄中存放.mk檔案

corecompany指代晶片廠家,比如高通,MTK

可能是 device.mk ,也可能是  yourproductname.mk ;這個檔案會被Makefile找到

這個mk檔案中會引用 gms.mk (或者自己起名字)

需要把 gms.mk的路徑寫對,編譯時間會自動找到

$(call inherit-product-if-exists, vendor/google/products/intel_gms.mk)

本例中google包放在vendor目錄下

 

觀察 vendor/google/apps/GmsCore 裡的 Android.mk 檔案

LOCAL_PRIVILEGED_MODULE := true

這個設定表示,GmsCore模組裝入system/priv-app

如果沒有這個設定,模組會裝入system/app

可以在模組目錄mm編譯,看看會裝在哪個目錄

priv-app裡能獲得系統許可權,安卓4.4後有了這個劃分

 

小結:

1. 找個地方把google包放進去,比如vendor/google

2. 選擇要安裝的google服務,修改gms.mk檔案

3. 修改device/corecompany/yourproductname/中相應的mk檔案,引用gms.mk

4. 把out目錄刪掉,或者只刪去相應模組

5. 編譯

 

添加第三方Launcher

想在ROM中添加第三方Launcher,和添加google服務模組類似

假設這是一個沒有源碼,只有apk的Launcher:ThirdLauncher.apk

可仿造google服務模組的mk檔案編寫Launcher的mk檔案

比如GoogleFeedback的 Android.mk 

如果Launcher需要系統許可權,記得加上

LOCAL_PRIVILEGED_MODULE := true

 

小結:

1. 找個地方把ThirdLauncher.apk放好,比如vendor/yourcompany/ThirdLauncher/

2. 編寫好Launcher的mk檔案;注意是否需要系統許可權;mm編譯驗證一下

3. 在device/corecompany/yourproductname/中相應的mk檔案中加入ThirdLauncher

4. 刪去out目錄下相應模組,重新全編譯

Android - 模組添加與編譯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.