2016-09-23 59 views
16

我是否需要保護我的Android應用(從Google Play商店下載)不被複制?我正在跟蹤指出相互矛盾的文件的鏈接。我是否需要保護我的Android應用程序不被複制?

如果我搜索「應用程序加密」使用谷歌Play開發者控制檯的幫助,它讓我看到'Google Play Licensing Service'網頁從而結束:

請注意,開始了Android OS的豆形軟糖發佈,所有 應用,支付並且是免費的,因此默認情況下會進行加密,因此, 不需要任何額外的保護,以防止未經授權複製 (如Google授權服務器)。

'Filters on Google Play'說:

谷歌Play不再支援在 開發者控制檯中的複製保護功能......

,並提供了一個鏈接到 'Replacement for Copy Protection'。此鏈接「Setting Up for Licensing」,可鏈接到「Adding Licensing to Your App」,其鏈接到「Market Licensing Support FAQ」,它顯示「Google Play Licensing Service」網頁(與這表明後傑利貝恩應用被加密上述文本)。所以,除非我誤解了它,這似乎與本身相矛盾。

根據關於此主題的其他帖子日期來判斷,我猜我必須使用Google Market Licensing LVL(許可證驗證庫)來做我自己的應用程序保護。但是,有跡象表明,這不是目前最好的解決方案(例如,Market Licensing示例應用程序顯示爲過期,很少有最近關於使用它的論壇帖子,沒有udacity.com類可以找到它使用它)。所以我認爲這將有助於首先得到明確的答案。

+0

現在該添加鏈接/ URL。你有聲望:) –

+0

謝謝!我添加了鏈接。 – JohnA

回答

3

首先,它是不可能的,以保護您的代碼100%。但是你可以讓黑客的工作足夠強大。有一些技巧可以保護你的代碼protect android app。我建議你看看proguard工具。

ProGuard是一個免費的Java類文件收縮器,優化器,混淆器和預校驗器。它檢測並刪除未使用的類,字段,方法和屬性。它優化字節碼並刪除未使用的指令。它使用短無意義的名稱重命名剩餘的類,字段和方法。由此產生的應用程序和庫更小,速度更快,而且對逆向工程的要求更高。

+0

這有助於 - tx,特別是[保護android應用](http://mobilenext.net/protect-android-app-app-pirates/)。我同意我正在使用的proguard。 我會非常有興趣知道後Jellybean應用加密功能是否仍然有效。也就是說,任何人都可以獲取我的APK文件並將其重新分配爲他們自己的應用程序? [Google Play上的過濾器](https://developer.android.com/google/play/filters.html)似乎表示不再使用加密。 [Google Play授權服務](https://support.google.com/googleplay/android-developer/answer/186113?hl=en-GB)表示已使用此功能。或者我誤解了? – JohnA

+0

我的理解是,在Jellybean之後,應用程序加密功能處於非活動狀態。現在您必須使用Google Play授權服務來保護您的應用免遭再分配。 –

+0

你能告訴我你從哪裏得到這些信息嗎?我問,因爲它似乎與[Google Play許可服務](https://support.google.com/googleplay/android-developer/answer/186113?hl=en-GB)網頁(其中說明了後Jellybean應用程序被加密)。謝謝。 – JohnA

1

如果您的APP提供的是一種服務,即在線遊戲(需要服務器),您可以通過一些註冊/授權規則來保護您的服務。

或者,如果您的應用程序是一個工具,單機遊戲,它實際上是很難保護。有一些網站提供的服務允許用戶直接從GooglePlay下載APK文件,並且不需要任何購買......任何人都可以通過允許從非GooglePlay源安裝APP來安裝這些APK。在這種情況下,您確實需要一些方法來保護您的APP不被複制。

+0

這是有趣的網站,提供應用程序下載而無需購買。感謝您的反饋。 – JohnA

0

審議反饋到這個職位(謝謝),我相信答案是「不」,我並不需要保護我的應用程序被複製爲可疑的好處是沒有理由的努力(理解釋如下)。然而,這個答案是基於我目前正在開發的應用程序,並不適用於所有。

該應用程序不依賴於服務器組件,因此將獨立運行。也就是說,如果有人得到了它的海盜副本,他們將能夠運行它。但是,該應用的價格很低。因此,如果有人制作了一個副本並開始非法銷售,他們需要出售大量的錢才能賺到錢,並證明他們的努力是正確的,並有被冒險的風險。他們也可能會選擇放棄應用程序的海盜副本,但我猜測這種海盜版本的大多數用戶首先不會付錢。

如果我整合了Google Market Licensing LVL,這將會很難盜用應用程序。然而,如果付出足夠的努力,它可以被逆向設計爲源代碼(即使在使用Proguard的情況下),LVL功能可以被消除,並且應用程序被重建。此外,LVL整合是一項重大的努力(至少對我而言),它可能會在應用程序中引入錯誤,並且我不確定它是否是一個好的解決方案(市場許可示例應用程序顯示爲過期,很少有最近的論壇帖子使用它,...)。因此,我不認爲這種努力和風險是值得的。

如果應用程序的銷售價格很高,我的答案可能會有所不同,我會考慮其他選項。例如,Google Market Licensing LVL可以集成,但這並不能完全消除盜版風險,除非Android確實提供了安全的應用程序加密。應用程序加密對我來說似乎是一個很大的挑戰(例如,考慮到它需要在某個時間點解密才能運行它),這可能解釋了爲什麼應用程序加密後的Jellybean應用程序被刪除(如果它被刪除)。我還可以將功能轉移到服務器端 - 這對我來說似乎是最安全的策略,但開發起來會很昂貴,並且需要對服務器端進行管理和維護。

這很可能是我沒有考慮過的方面。如果您不同意我的回答,或者有其他想法,請發表評論。

相關問題