啟用自動完整性保護功能,防範他人未經授權修改和重新發行應用程式

注意:本頁所述功能目前只供特定 Play 合作夥伴使用。

Google Play 的自動完整性保護服務助你保護你的應用程式和遊戲,防範以未經授權修改和重新發行形式侵害完整性的情況。自動完整性保護在沒有數據連線的情況下也可在應用程式內運作,在「Play 管理中心」中一按即可開啟,且無需任何測試前開發人員工作或後端伺服器整合。

運作方式

自動完整性保護功能會為應用程式程式碼增加執行階段檢查,防範他人修改和重新發行應用程式,然後運用進階的編碼隱匿和反逆向工程技術確保這些檢查難以移除。如果應用程式未能通過安裝程式檢查,系統將提示使用者在 Google Play 下載應用程式。如果未能通過修改檢查,應用程式將無法執行。這種做法有助確保使用者安全,避免他們受應用程式修改版本中可能出現的有害內容侵擾。

自動完整性保護功能旨在防範下列各項濫用行為:

  • 防範未經授權的修改:自動完整性保護功能可防止他人修改應用程式,讓有心人士更難透過修改行為 (例如移除收費功能、新增廣告、變更廣告擁有者 ID 或新增惡意軟件) 來發佈非官方的應用程式副本。
  • 防範盜版付費應用程式:如果使用者從非官方渠道取得未經修改的 Google Play 版本應用程式,自動完整性保護功能會提示他們前往 Google Play 購買,以防範盜版行為。此提示屬選用,在自動完整性保護設定頁面取消勾選 [需要從 Google Play 安裝] 即可將其關閉。
  • 增加接收官方更新的使用者:如果使用者已載入未經修改的 Google Play 版本應用程式,自動完整性保護功能會提示他們將該應用程式新增至「Google Play 媒體庫」,確保能夠持續收到應用程式更新。此提示屬選用,在自動完整性保護設定頁面取消勾選 [需要從 Google Play 安裝] 即可將其關閉。
重要:自動完整性保護功能不保證能防止所有破解、盜版、重新封裝和重新發行行為;此功能旨在增加執行上述操作的複雜程度和成本,降低這些行為成功的可能性。Google Play 會持續強化自動完整性保護功能,讓你新推出的應用程式版本自動享有最新、最安全的保護。

設定自動完整性保護功能

以下步驟描述自動完整性保護功能的初始使用設定。按一下各節標題即可展開內容。

先決條件

如果你為特定應用程式開啟了自動完整性保護功能,每當你建立可發佈至裝置的個別版本時,Google Play 就會自動新增一重防護措施。此措施會要求 Google Play 建立經修改的 APK,並替你簽署該 APK,因此你必須完成以下各項:

請注意下列限制:

  • 自動完整性保護功能只支援 Android 6.0 Marshmallow (API 級別 23) 或以上版本。Android M 於 2015 年發佈,並從 2023 年起指定 midSDKVersion 23 或以上的版本將觸及超過 97% 有效 Android 裝置。
  • 自動完整性保護功能支援下列 ABI:x86、x86_64、armeabi-v7a 和 arm64-v8a。如要更新應用程式的目標 ABI,請更新 Gradle 設定。有效 Android 裝置不使用的其他 ABI 可從指定目標中移除,而不會影響應用程式的發佈狀況。
  • 自動完整性保護功能可離線操作。不過,如果裝置上的「Play 商店」應用程式已長時間離線,「需要從 Google Play 安裝」檢查將定期要求數據連線。
  • 如果你的應用程式已在使用 Play 授權,你應該關閉「需要從 Google Play 安裝」。
  • 將你的應用程式上載為內部應用程式分享時,保護功能不會套用。請格外小心只與信任的團隊成員分享內部應用程式分享連結,並切勿對外分享不受保護的版本。
  • 由於完整性保護涉及修改程式碼,因此自動完整性保護功能與 App Bundle 的程式碼透明度機制不兼容。啟用自動完整性保護功能後,上載具程式碼透明度的 App Bundle 將被拒絕。
  • 免安裝體驗不受保護。發佈途徑中的 App Bundle 不可免安裝,才能受到保護。你可以上載一個 App Bundle 至受保護的發佈途徑,並同時上載一個可免安裝的 App Bundle 至不受保護的只限免安裝發佈途徑。
步驟 1:開啟保護功能

請按照「準備和推出發佈版本」一文中步驟 1 的說明建立發佈版本。

你可以在建立發佈版本時開啟保護功能 (按照「準備和推出發佈版本」中步驟 2所述),或前往「應用程式完整性」頁面 (按一下 [發佈版本] > [應用程式完整性]) 開啟功能,該頁面的完整性及簽署服務有助確保你應用程式和遊戲中的使用者體驗符合你預期。

準備發佈版本時,你會看到標示為「取得完整性保護功能」「管理完整性保護」的按鈕。然後,你可以按一下「自動完整性保護」下的 [是,啟用] 來開啟完整性保護功能。接著,Google Play 會為你發佈的版本簽署並套用完整性保護功能,防範他人篡改和發行應用程式。這表示自動完整性保護功能已開啟。

完成準備發佈版本並儲存變更。

步驟 2:測試受保護的應用程式

使用每個測試發佈途徑測試受保護的應用程式版本,以確保對使用者體驗或效能沒有產生未預期的影響。

建議在審核中包括下列操作:

  • 測試遊戲的啟動情況,查看啟動時會否當機,以及初時啟動時速度有否放慢。
  • 測試原生程式碼 (C/C++) 重新調用 Java 的畫面 (使用自己的程式碼或第三方程式庫),例如廣告、記錄、社交整合、驗證或權限處理等 Android 專用功能。

如在測試過程中發現問題,你可選擇還原至已用於舊版發佈版本的舊版自動完整性保護,或關閉自動完整性保護功能。建議不要把不受保護的版本升級至公開發佈途徑或正式版本。

如何關閉個別發佈版本的完整性保護:

  1. 準備發佈版本時,請按一下 [管理完整性保護]
  2. 在「自動完整性保護」下,選取 [上一個保護版本] 或 [為此發佈版本停用保護功能]
  3. 儲存變更。變更將套用至這個發佈版本。下次你上載發佈版本時,該版本將再次接收最新和最強大的保護版本。
步驟 3:將你的應用程式升級至正式版本發佈途徑

準備就緒時,你可以在「Play 管理中心」將發佈版本在正式版本發佈途徑推出,向所選國家/地區的所有 Google Play 使用者提供受保護的應用程式。

針對經由完整性保護對話框的使用者自訂商店資訊

「自動完整性保護」可提示透過非正式渠道獲取應用程式的使用者到 Google Play 下載。使用者輕按該對話框後,便會被重新導向至你的商店資訊,然後可以在該頁面輕按安裝按鈕 (或購買按鈕,或更新按鈕),以從 Play 取得你的應用程式,並將應用程式加到其 Play 媒體庫中。

你可以針對輕按完整性保護對話框的訪客自訂商店資訊資產,包括應用程式名稱、圖示、描述和圖像資產。如要針對經由完整性保護對話框的使用者自訂商店資訊,方法如下:

  1. 開啟「Play 管理中心」並前往「應用程式完整性頁面 (按一下 [發佈版本] > [應用程式完整性])。
  2. 捲動至「Play Integrity API」部分。
  3. 按一下 [設定]
  4. 捲動至「自訂商店資訊」部分。
  5. 按一下 [建立商店資訊]
  6. 按照「建立自訂商店資訊」頁面上的指示操作,然後按一下 [儲存]

你也可以直接在「自訂商店資訊頁面建立適用於完整性保護對話框的自訂商店資訊:

  1. 開啟「Play 管理中心」並前往「自訂商店資訊頁面 (按一下 [拓展] > [自訂商店資訊])
  2. 按一下 [建立商店資訊],並選擇建立新的商店資訊或複製現有商店資訊,然後按一下 [下一步]
  3. 在「商店資訊詳情」部分中,捲動至「目標對象」。
  4. 選取 [根據網址],並在文字框內輸入「playintegrity」。
  5. 填寫所有其他資料,然後按一下 [儲存]

提示:網址參數「playintegrity」是保留給完整性深層連結的特殊關鍵字,因此在設定自訂商店資訊時必須準確無誤地輸入這個關鍵字。

建議做法

切勿發佈不受保護的版本

如果你在公開發佈途徑發佈不受保護版本,或透過 Google Play 以外其他渠道發佈,應用程式保護將不再有效。如要為你的應用程式維護完整性保護,你應只將受保護的版本發佈至公開發佈途徑和正式版本發佈途徑。

混合使用防篡改解決方案時務必小心

自動完整性保護功能可能與其他執行階段的防篡改解決方案不兼容,一起使用可能會導致使用者問題。如果你已在應用程式中執行 Play Licencing,應該停用「需要從 Google Play 安裝」。如果你的應用程式執行其他執行階段檢查,請確保徹底測試受保護的應用程式有否存在問題,然後才在公開發佈途徑發佈。

測試受保護的應用程式

Google Play 將自動透過所有發佈途徑提供受保護的版本:內部測試、封閉、公開和正式版本。你應該如常徹底測試這些版本。

如將你的應用程式版本直接上載為內部應用程式分享,Google Play 並不會加入保護功能。此舉讓你可使用內部應用程式分享功能上載偵錯版本和其他類似版本。

當你在 App Bundle 探索工具存取受保護應用程式版本的內部應用程式分享連結時,該版本的分享方式會與 Google Play 的處理方式完全相同。如果該應用程式版本已上載至測試發佈途徑並受到保護,App Bundle 探索工具的內部應用程式分享連結將提供受保護版本。你可以在 App Bundle 探索工具的「詳情」分頁查看保護狀態。

監察當機情況

你可能會發現應用程式因受保護而導致當機次數增加;這種情況可能代表自動完整性保護功能運作正常。如果攻擊者無法順利修改你的應用程式,執行階段檢查會停止執行應用程式,主要做法是讓應用程式當機。

只要當機情況無法歸因於 Google Play,你的 Android 應用程式狀態穩定數據就不會受到影響。當你使用其他工具 (例如 Crashlytics) 分析當機情況時,如要根據安裝來源篩選,你將需要使用套件名稱。「Google Play 商店」的套件名稱為「com.android.vending」。

如果你擔心當機次數減少,請向我們報告並盡量提供詳情,以便團隊調查。如果我們確定這些當機問題與保護功能有關,就會作出回應。

報告應用程式的破解版本

破解版本是指經修改 (未遵照你的規定而在 Google Play 以外的平台安裝),但仍可執行的應用程式版本。

如果發現應用程式的破解版本,請向我們報告

相關內容

此內容對您有幫助嗎?

我們可以如何改善?

需要更多協助?

嘗試以下步驟:

搜尋
清除搜尋
閂搜尋模式
主選單
6281910837280049078
true
搜尋說明中心
true
true
true
true
true
92637
false
false