#!/bin/sh. build/envsetup.shlunch 1case $1 in "pc") mmm packages/apps/Contacts/ find out -name Contacts.apk |xargs -t -i adb push {} system/app/ ;; "pp") mmm packages/providers/ContactsProvider find out -name ContactsProvider.apk |xargs -t -i adb push {} system/app/ ;; "ph") mmm packages/apps/Phone/ find out -name Phone.apk |xargs -t -i adb push {} system/app/ ;; "pf") mmm frameworks/base find out -name framework.jar |xargs -t -i adb push {} system/framework/ ;; "pm") mmm packages/apps/Mms/ find out -name Mms.apk |xargs -t -i adb push {} system/app/ ;; "pcrm") find out -name Contacts.apk |xargs -t -i rm {} mmm packages/apps/Contacts/ find out -name Contacts.apk |xargs -t -i adb push {} system/app/ ;; "pprm") find out -name ContactsProvider.apk |xargs -t -i rm {} mmm packages/providers/ContactsProvider find out -name ContactsProvider.apk |xargs -t -i adb push {} system/app/ ;; "phrm") find out -name Phone.apk |xargs -t -i rm {} mmm packages/apps/Phone/ find out -name Phone.apk |xargs -t -i adb push {} system/app/ ;; "pfrm") find out -name framework.jar |xargs -t -i rm {} mmm frameworks/base find out -name framework.jar |xargs -t -i adb push {} system/framework/ ;; "pmrm") find out -name Mms.apk |xargs -t -i rm {} mmm packages/apps/Mms/ find out -name Mms.apk |xargs -t -i adb push {} system/app/ ;; "push") adb push contacts2.db data/data/com.android.providers.contacts/databases/contacts2.db ;; "pull") adb pull data/data/com.android.providers.contacts/databases/contacts2.db contacts2.db ;;esac
以上指令檔儲存為:op,賦予執行許可權,使用執行個體:"./op pc"或者“,/op pcrm"即可完成Contacts模組的編譯以及push到裝置中。
find out -name Contacts.apk |xargs -t -i rm {}
是為了防止之前使用多個lunch模式產生過多個Contacts.apk
xargs -t -i rm {}
-i 選項告訴 xargs 用每項的名稱替換 {}。
-t 選項指示 xargs 先列印命令,然後再執行。
"./op push"和"./op pull"分別完成contacts2.db資料庫的push和pull。
ps:Firefox有一個SQLite Manager外掛程式可以用來查看或者修改sqlite資料庫很方便。