欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Android內(nèi)核開發(fā):從源碼樹中刪除出廠的app應(yīng)用

本文是《Android內(nèi)核開發(fā)》系列的第十一篇文章,本文重點(diǎn)介紹如何從Android源碼中刪除出廠的app應(yīng)用。

在驛城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),驛城網(wǎng)站建設(shè)費(fèi)用合理。

上一篇文章中提到過,系統(tǒng)出廠的app應(yīng)用,其實(shí)就是被安裝到/system分區(qū)的app,這些app在Android源碼樹中被編譯后打包到了system.img鏡像中,系統(tǒng)啟動(dòng)時(shí),以只讀的方式掛載/system目錄,因此,非root手機(jī)用戶是無法刪除這些app的。

如果我們已經(jīng)成功獲取了手機(jī)的root權(quán)限,就可以通過下面的方法直接刪除掉系統(tǒng)出廠的app應(yīng)用,假設(shè)某app的安裝文件叫做xxxx.apk,那么刪除它的命令如下所示:

$ adb root

$ adb remount

$ adb shell rm /system/app/xxxx.apk

同樣,我們也可以將自己的app安裝到系統(tǒng)的/system目錄中去:

$ adb root

$ adb remount

$ adb push xxxx.apk /system/app/

上面的方法只是介紹了通過命令行的方式手動(dòng)添加/刪除系統(tǒng)出廠的app,那么,如何從Android系統(tǒng)源碼樹中刪除指定的出廠的app應(yīng)用呢?

首先,推薦大家閱讀一下這篇文章:《理解 Android Build 系統(tǒng)》,大致了解一下整個(gè)Android源碼的編譯系統(tǒng)架構(gòu),本文在這篇文章的基礎(chǔ)上,重點(diǎn)關(guān)注如何刪減系統(tǒng)出廠的app。

Android源碼中,在 build/target/product 目錄下預(yù)先定義了很多app列表的組合,如下所示:

Android內(nèi)核開發(fā):從源碼樹中刪除出廠的app應(yīng)用

在開發(fā)具體的Android產(chǎn)品時(shí),可以通過“引用”這些系統(tǒng)預(yù)定義的mk文件,快速形成某類產(chǎn)品的app列表,比如包含了generic_no_telephony.mk的產(chǎn)品,就直接定義了時(shí)鐘,郵件,日歷,照相機(jī)的常用的app。

那么,上面這些系統(tǒng)預(yù)定義的mk文件,到底哪些被具體的Android產(chǎn)品“引用”了呢?

Android源碼樹中,真正定義產(chǎn)品配置的文件夾是:device/<company>/<product>,以我手頭的beagleboneblack源碼為例,如下所示:

$ cd beaglebone/device/ti/beagleboneblack

$ ls *.mk

Android.mk  

AndroidProducts.mk  

beagleboneblack.mk  

BoardConfig.mk  

CleanSpec.mk  

device.mk

以上就是beagleboneblack產(chǎn)品配置最核心的mk文件了,其中,AndroidProducts.mk和BoardConfig.mk兩個(gè)文件是必須的,編譯系統(tǒng)會(huì)首先搜索這兩個(gè)文件。

AndroidProducts.mk文件一般會(huì)直接指向具體產(chǎn)品配置文件,如本例中指向了beagleboneblack.mk文件,在beagleboneblack.mk中,則會(huì)詳細(xì)地定義產(chǎn)品的名稱、廠商、出廠的APP、需要拷貝的文件等等; BoardConfig.mk則是用來配置設(shè)備的硬件信息,如CPU架構(gòu)、內(nèi)核相關(guān)信息、bootloader、WIFI模塊相關(guān)配置等等。

由此可見,要?jiǎng)h減系統(tǒng)出廠的app,我們只需要重點(diǎn)關(guān)注AndroidProducts.mk所指向的xxxxx.mk文件即可,如本例中的beagleboneblack.mk。

具體決定是否編譯某個(gè)app的宏是“PRODUCT_PACKAGES”,例如:

PRODUCT_PACKAGES := \

    DeskClock \

    Calculator \

    Calendar \

    Camera2 \

    Email \

因此,如果希望刪減掉某個(gè)app,直接從“PRODUCT_PACKAGES”列表刪除掉就行了,例如,刪除掉 Email,那么系統(tǒng)出廠的app里面就不會(huì)有“ Email”這個(gè)app了。(注意,具體的xxxx.mk文件通常還會(huì)引用其他的mk文件,比如:generic_no_telephony.mk,device.mk 等等,因此,在分析過程中,凡是被依賴的mk文件也需要深入分析和刪減),例如:

//beagleboneblack.mk

$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)

$(call inherit-product, device/ti/beagleboneblack/device.mk)

關(guān)于如何從Android源碼樹中刪除APP就介紹到這里了,有任何疑問或者建議歡迎留言或者來信lujun.hust@gmail.com交流,或者關(guān)注我的新浪微博 @盧_俊 獲取最新的文章和資訊。

本文名稱:Android內(nèi)核開發(fā):從源碼樹中刪除出廠的app應(yīng)用
瀏覽地址:http://www.chinadenli.net/article14/jdjsge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)面包屑導(dǎo)航外貿(mào)建站軟件開發(fā)云服務(wù)器網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化