編輯:中級開發
android把所有的Permission依據其潛在風險(屬性名為protectionLevel )劃分為四個等級,即"normal "、 "dangerous "、 "signature "、 "signatureOrSystem "。 INSTALL_PACKAGES屬於後兩者。讓我們看一下官方文檔對後兩類的描述吧。
"signature ": A permission that the system grants only if the requesting application is signed with the same certificate as the application that declared the permission. If the certificates match, the system automatically grants the permission without notifying the user or asking for the user's explicit approval.
"signatureOrSystem ": A permission that the system grantsonly to applications that are in the android system image or that are signed with the same certificates as those in the system image. Please avoid using this option, as thesignature protection level should be sufficIEnt for most needs and works regardless of exactly where applications are installed. The "signatureOrSystem " permission is used for certain special situations where multiple vendors have applications built into a system image and need to share specific features explicitly because they are being built together.
所以,這兒介紹的兩種方法各自需要的苛刻條件如下:
1.內置到ROM。即APK包的安裝位置是/system/app下。
2.使用APK的目標安裝系統同樣的簽名。
好了,先不管這些苛刻的條件,下面講下如何編寫直接安裝APK的代碼,這兒使用pm install <apk_path>命令,而不是繁雜的未公開的PackageManager.install()方法。
代碼執行後,如果安裝成功的話獲取到的result值是“ pkg: /data/local/tmp/Calculator.apk \nSuccess”,如果是失敗的話,則沒有結尾的“Success”。
安裝代碼有了,現在開始介紹第一種方法,將你自己的APK內置到ROM中。前提是,你這手機已經刷機過並且保留了recovery-Windows.bat/recover-Linux.sh 文件。
針對HTC-Legend的具體操作步驟為:
1.USB連接你的設備然後在命令行輸入 "adb reboot recovery" ,機子重啟,啟動後將顯示一個紅色的三角形和箭頭圖標
2 .(在PC下)進入到你的刷機文件夾然後運行 './recover-Linux.sh' ,屏幕將顯示綠色的菜單
3 .如果得到的結果是 "error:device not found" ,運行 "./adb-linux kill-server" 後再一次運行 './recovery-Linux.sh' 直到顯示綠色菜單.
4 .執行 "adb shell mount /dev/block/mtdblock3 /system" ,至此,可對/system進行寫操作。
5.在PC上運行命令:adb push <your_apk_path> /system/<your_apk_name>。至此,內置成功。
第二種方法,需要先打一個未簽名的APK包,然後用系統簽名對其進行簽名。這個方面的東西在我之前的一篇博文已說明,這兒就不重復了。[android]使用platform密鑰來給apk文件簽名的命令
由於HTC-Legend是“原裝”的,所以靜默安裝倒是順利。但對於一些MOTO或樂Phone的手機,一般上是不支持的。
簡介: 學習了解 IBM® Rational® Rhapsody® V7.5.2 版本中的新特性與改進之處,幫助系統管理員和實時、嵌入
Fragment是Android honeycomb 3.0新增的概念,Fragment名為碎片不過卻和Activity十分相似,下面Android123介紹下andr
簡介: 對於需要跨應用程序執行期間或生命期而維護重要信息的應用程序來說,能夠在移動設備上本地存儲數據是一種非常關鍵的功能。作為一名開發人員,您經常需要存儲諸如
兩位Google開發者演示了Android 3.0——該開源移動操作系統的首個支持平板設備的版本。Android 3.0也被稱為蜂巢(Honeycomb),這也是第一個