1. 程式人生 > >App Inventor 下載時提示有風險

App Inventor 下載時提示有風險

2017-02-07, 10:45:27

裝置:PC, MI 5s

環境:Win 10, MIUI 8.0.22.0 | 穩定版

由於第一次用 AI2 開發安卓應用程式,第一次發現有程式設計入門不拿 Hello world 招呼人的,很是意外,也令人欣慰。隨手擼了幾個 Demo ,打包,下載,安裝到手機,發現居然有風險提示。直接忽略,使用起來發現功能並無異常。時候發現原因其實是——APP簽名非官方註冊,用Mit App Inventor做的APP並不屬於某公司製作,所以被識別為個人製作,而病毒軟體往往是個人制作,所以系統就誤判為病毒了。

這裡簡單說明一下APP簽名:

App簽名的意義:

保證每個應用程式開發商合法ID,防止部分開放商可能通過使用相同的Package Name來混淆替換已經安裝的程式,需要對釋出的APK檔案進行唯一簽名,保證每次釋出的版本的一致性(如自動更新不會因為版本不一致而無法安裝)。

App簽名的目的:

1.傳送者的身份認證,由於開發商可能通過使用相同的Package?Name來混淆替換已經安裝的程式,以此保證簽名不同的包不被替換

2.保證資訊傳輸的完整性,簽名對於包中的每個檔案進行處理,以此確保包中內容不被替換

3.防止交易中的抵賴發生,Market對軟體的要求

APP 簽名的作用:

1.數字證書用於標識應用程式的作者 2.應用程式之間建立信任關係,如果一個permission的protectionLevel為signature,那麼就只有那些跟該permission所在的程式擁有同一個數字證書的應用程式才能取得該許可權。 Android系統要求每一個安裝進系統的應用程式都是經過數字證書籤名的,數字證書的私鑰則儲存在程式開發者的手中。Android將數字證書用來標識應用程式的作者和在應用程式之間建立信任關係,不是用來決定終端使用者可以安裝哪些應用程式。這個數字證書並不需要權威的數字證書籤名機構認證,它只是用來讓應用程式包自我認證的。 簽名的規則: 1.包名相同,簽名相同,認為是同一程式,新版舊版更新 2.包名相同,簽名不同,認為不是同一程式,防止hack

到這裡基本就清楚為什麼提示風險,也清楚什麼是App簽名了,簡單講就是防偽防竄貨。我好奇其實簽名放在哪裡,於是壓縮包開啟看了一下,發現AI2生成的apk的簽名位置在......zZZ

簽名檔案 Apk用rar開啟META-INF如下: ANDROIDK.RSA  密文   可重新命名 ANDROIDK.SF   明文,可閱讀  可重新命名 MAINIFEST.MF   明文,可閱讀 apk包中籤名相關的檔案在META-INF目錄下 ANDROIDK.SF:生成每個檔案相對的金鑰

MANIFEST.MF:數字簽名信息

好了, 到這裡就算弄明白問題成因了,那麼怎麼解決,學習初期建議直接忽略吧。

參考連結:http://www.51testing.com/html/20/15089220-3709641.html

站在巨人的肩膀上我們除了看得更遠,還心懷感恩!非商業用途,如有冒犯,還望告知。