2011-01-24 37 views
2

我們被要求爲具有現有網站和現有用戶的公司創建Android上的瘦客戶端。在APK文件中嵌入登錄詳細信息,對於每個用戶(或其他選項)都有所不同

他們想發送一個MMS給他們的用戶,給每個用戶自己的下載URL。該URL將指向專門爲該用戶創建的Android apk文件,該文件將包含該用戶的登錄信息和密碼。

即APK文件將嵌入登錄細節。

這將在J2ME中完成,方法是將信息存儲在JDK文件中。

我可以在How to update resources file in apk上看到一個類似的問題 - 但沒有完全解答。

所以:

  1. 有存儲的「資產」中的APK文件,這將是一個文本文件的方式,並通過解壓縮,編輯,重新拉上apk文件易於編輯? (看起來像回答是否)

  2. 你知道任何類似的問題,或者曾在類似的應用程序?

  3. 有沒有關於如何最好地完成這個應用程序的建議?任何形式的客戶信息嵌入自動化水平將是有趣的...

  4. 最好的選擇是設置應用程序與Ant腳本構建,並讓客戶端實際定製的源代碼和構建每個用戶有新的應用程序? (這具有客戶端獲取源代碼,我們寧願沒有CON)

我已經掃描APK標籤的問題,並似乎無法找到解決這個。

非常感謝, 理查德

+4

從安全的角度來看,這聽起來很可疑。彩信可以被攔截。密碼應該可以改變。資源可以被讀取:丟失的設備會損害該用戶的密碼。也許你應該試圖找出他們想要達到的目標:大概是爲他們的最終用戶提供一個無障礙的認證過程?登錄可以抵禦什麼樣的威脅,以什麼價值? –

+0

......並且從可擴展性的角度來看可能會增加。您需要更改資源並使用SDK工具鏈重新包裝apk並簽名。這既是一種安全風險(在面向服務器的網絡上擁有私鑰),還有可擴展性風險(重載壓縮和簽名活動)。如果用戶數量足夠小,這是可行的,我授予你,但它看起來像很多工作和風險的收益相對較小。 –

+0

謝謝,Pontus - 這就是我一直對客戶說的話(有一個可擴展性問題,他們需要他們自己的私鑰,這不是安全的)。然而,它仍然是他們期望的解決方案 - 儘管信息相當私密並且有價值。 (我只能努力嘗試,但如果我想爲工作獲得報酬,我必須交付他們的產品) –

回答

1

我想你可以把它放到APK(或更換一個虛擬文件存在),如果你使用的資源文件夾了。

您可以獲得通過文件名中的數據,而不是資源-ID很容易: getResources().getAssets().open(fileName)

問候, 奧利弗

+0

謝謝,奧利弗,我希望這會是一件非常簡單的事情,我只是錯過了 - 當然,我所有的谷歌正在尋找關於「資源」而不是資產的信息。 –

+0

我可以在不重建整個應用程序的情況下更改此文件嗎?我想要有應用程序使用的APK文件和txt。 Txt文件需要更改,無需重建應用程序,並在apk文件中的設備上安裝。我可以做到嗎? – Piotr

+1

@Piotr:你不需要重建整個應用程序,只需修改每個用戶的apk文件內容並用密鑰重新簽名即可。詳細信息已經在問題鏈接http://stackoverflow.com/a/4944708/586722 – Oliver

1

如果絕對是這樣,考慮分配2周的APK,一個用應用程序和另一個包含手機特定信息的文件。用相同的密鑰對它們進行簽名,安排它們到share a UID,應用程序將能夠像讀取文件一樣讀取文件。

這樣做的其餘部分可能屬於一個註釋,不是這個答案,但我看到很多的問題,你被要求做什麼:

  • 用於幾乎所有其他應用程序進行標準的行爲有需要時請求登錄和密碼,然後記住它。
  • 如果用戶在您的客戶的網站上更改密碼,他必須爲他的設備獲取新的APK,而不必重新進行身份驗證。
  • 對應用程序的任何更改都需要爲每個用戶生成並安裝一個新的APK,用於
  • 它只需要一些不知情的用戶與他人分享他獨特的APK,並且您的整個安全模型都會在管道下面完成。
  • 不太重要,但仍然重要:如果您的客戶能夠從他們存儲的內容重新構建明文密碼,我質疑他們的安全方案。
+0

謝謝,Birfl的解決方案 - 應用程序之間的信息共享在不久的將來即將到來。關於您的意見,請參閱我對上述Pontus的回覆 - 我以前的工作都是關於非常安全的系統,這不是讓我的客戶登錄的首選方式。 –

相關問題