2014-04-30 70 views
1

我想知道應用程序自己的pamameter中的uid。 我知道如何從軟件包名稱獲取PackageManager中的uid,但是我注意到應用程序可以發送一個僞包名稱或使用假包名稱創建的上下文。我怎樣才能創建一個API,從任何應用程序自己的參數確切確定一個uid?或者如何檢查這個應用程序是系統應用程序?如何從應用程序自己的pamameter獲取uid?

+0

你是什麼意思的「自己的pamameter」?不,另一個應用程序無法在具有完整安全模型的系統上欺騙PackageManager響應,因爲該查詢位於您的應用程序和系統之間。 –

+0

我想做一個方法來檢查參數的應用程序的uid,但不只是字符串,因爲字符串可能是僞造的。所以自己的參數可以是getApplicatioContext()之類的Context。這不可能嗎? –

+1

任何用戶參數都可以僞造。您或者需要使用操作系統支持的通信通道來發現發件人的身份,或者使用加密簽名或質詢/響應機制。但是,這兩者都有自己的弱點 - Android設備將愉快地安裝當前未安裝的第三方應用程序的模擬器,並且可以從應用程序中提取密鑰(具有足夠的確定)以創建冒名頂替者。唯一真正安全的解決方案是用戶或外部設備驗證給定*安裝*的真實性。 –

回答

1
+0

謝謝,但我已經知道這種方式..我想做一個方法來檢查應用程序的uid參數,不能僞造,是唯一的。例如我不能保證包名稱的字符串,因爲應用程序可以將另一個包名稱傳遞給該方法。你有另一個想法嗎? –

相關問題