運作方式
系統會在應用程式的程式碼中加入安裝程式檢查服務,以防範轉散布行為。如未通過安裝程式檢查,系統會提示使用者前往Google Play 下載應用程式。這項服務的設計宗旨如下:
- 杜絕盜版的付費應用程式:如果使用者是從非官方管道取得受 Play 保護的應用程式,系統會提示他們前往 Google Play 購買應用程式。
- 促使更多使用者接收官方更新:如果使用者側載未經修改的 Play 版本應用程式,系統會提示他們下載官方版本,確保能持續收到應用程式更新。
設定安裝程式檢查
以下是開始使用安裝程式檢查前必須完成的步驟。點選各節標題即可展開內容。
安裝程式檢查服務可在應用程式的程式碼中加入 Play 授權檢查,以確認存取應用程式的使用者帳戶是否從授權來源安裝 (已得到授權);如果不是,系統會提示使用者前往自訂商店資訊頁面下載應用程式。
為特定應用程式開啟自動防護功能後,每當您建立可發行至裝置的個別版本,Google Play 就會自動添加防護措施。這項措施會要求 Google Play 建立經過修改的 APK,並代表您簽署該 APK,因此您必須完成以下事項:
- 使用 Play 應用程式簽署功能。
- 透過 Android App Bundle 發布應用程式。
- 至少指定 API 級別 23 以上版本。
請注意下列限制:
- 自動防護功能僅適用於 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 安裝」設定。
- 將應用程式上傳到內部應用程式分享頁面時,防護功能不會啟用。因此請格外留意,務必只將內部應用程式分享連結提供給信任的團隊成員,不要與外部人士分享未受保護的版本。
- 由於完整防護功能牽涉到修改程式碼的行為,因此自動防護與應用程式套件的程式碼透明性機制並不相容。該功能啟用時,透過程式碼透明性機制上傳的應用程式套件會遭到拒絕。
- 免安裝體驗不受保護。測試群組中的應用程式套件不得為免安裝即用的套件,才能受到保護。您可以將應用程式套件上傳至受保護的測試群組,並同時將免安裝即用的應用程式套件,上傳至不受保護的免安裝應用程式專用測試群組。
請按照「準備及推出版本」一文中步驟 1 的說明建立版本。
您可以在建立版本時啟用防護功能 (按照「準備及推出版本」一文中步驟 2 的說明操作),或在「應用程式完整性」頁面 (依序點選「測試及發布 」>「應用程式完整性」) 啟用功能。「應用程式完整性」頁面提供完整性和簽署服務,有助確保使用者獲得您認可的應用程式和遊戲體驗。
準備版本時,系統會顯示「取得完整防護」或「管理完整性防護功能」按鈕。接著,按一下「自動防護」下方的「是,開啟」,即可開啟完整防護功能。Google Play 接著會為您簽署要發布的版本並添加完整防護功能,防範他人擅自竄改與散布您的應用程式。一旦看到這則訊息,就表示自動防護功能已啟用。
最後,完成版本的準備作業並儲存變更。
透過各個測試群組來測試受保護的應用程式版本,確保使用者體驗或效能不會受到非預期的影響。
建議您在審查時一併採取下列行動:
- 測試遊戲發布情形,找出發布時的當機問題,並確認啟動時間是否變慢。
- 針對原生程式碼 (C/C++) 呼叫回 Java (在您自己的程式碼或第三方程式庫中) 的情況測試,例如廣告、記錄和社交整合、驗證,或權限處理等 Android 專屬功能。
如果在測試過程中發現問題,可以選擇還原為先前版本中使用的自動防護功能,也可以關閉這項功能。建議您不要將未受保護的版本發布至公開測試群組或正式版群組。
如何關閉個別版本的完整防護功能:
- 在準備版本時按一下「管理完整性防護功能」。
- 在「自動防護」下方,選取「上一個防護功能版本」或「為這個版本停用防護功能」。
- 儲存變更。系統會將這項變更套用至該版本。下次上傳版本時,這個版本就能再次取得最新、最安全的防護功能。
準備就緒後,您就可以透過 Play 管理中心將版本發布至正式版群組,讓所選國家/地區的每位 Google Play 使用者都能取得受保護的應用程式。
自訂未通過安裝程式檢查時,要將使用者帶往的自訂商店資訊
安裝程式檢查是一項自動防護功能,可提示從非官方管道取得應用程式的使用者前往 Google Play 下載。使用者輕觸對話方塊後,就會重新導向到您的商店資訊,屆時便可輕觸「安裝」 (或「購買」/「更新」) 按鈕從 Play 下載應用程式。
對於輕觸完整防護對話方塊的訪客,您可以向他們顯示特製的商店資訊素材資源,包括應用程式的名稱、圖示、說明和圖像資源。如有這類需求,請執行下列步驟:
- 開啟 Play 管理中心,然後前往「應用程式完整性」頁面 (依序點選「測試及發布 」>「應用程式完整性」)。
- 捲動至「Play Integrity API」部分。
- 按一下「設定」。
- 捲動至「自訂商店資訊」部分。
- 按一下「建立商店資訊」。
- 按照「建立自訂商店資訊」頁面的說明操作,然後按一下「儲存」。
您也可以直接在「自訂商店資訊」頁面上,建立針對完整防護對話方塊顯示的自訂商店資訊:
- 開啟 Play 管理中心,然後前往「自訂商店資訊」頁面 (依序點選「拓展使用者數量」>「自訂商店資訊」)。
- 按一下「建立商店資訊」,選擇建立新商店資訊或複製現有商店資訊,然後點選「下一步」。
- 在「應用程式詳細資訊」部分,捲動至「目標對象」。
- 選取「依網址」,在文字方塊中輸入「playintegrity」。
- 填寫其餘詳細資料,按一下「儲存」。
提示:「playintegrity」網址參數是專門保留給完整性深層連結的特殊關鍵字,設定自訂商店資訊時,請務必正確輸入這個參數。
建議做法
不發布未受保護的應用程式版本
如果您在公開測試群組中 (或透過 Google Play 以外的管道) 發布未受保護的版本,應用程式防護功能將會停止運作。為了讓應用程式的完整防護功能持續運作,建議您只向公開測試群組和正式版群組發布受保護的應用程式版本。
混用防竄改解決方案的注意事項
自動防護可能會與其他執行階段的防竄改解決方案不相容,因此如果您嘗試同時使用這些解決方案,可能會導致使用者遇到問題。如果您已在應用程式中實作 Play 授權服務,請務必停用「必須從 Google Play 安裝」設定。假使您的應用程式會進行其他執行階段檢查,請務必先仔細測試受保護的應用程式是否有問題,再將應用程式發布到公開測試群組。
測試受保護的應用程式
Google Play 會自動為所有測試群組提供受保護的版本,包括內部測試、封閉測試、公開測試和正式版群組。因此,您應該按照往常的做法仔細測試這些版本。
如果您直接將應用程式版本上傳到內部應用程式分享頁面,Google Play 就不會添加防護措施,以便讓您使用內部應用程式分享功能來上傳偵錯版本,以及其他類似的版本。
當您透過應用程式套件探索工具存取受保護應用程式版本的內部應用程式分享連結時,系統會將這個版本視為已完成 Google Play 處理程序的內容來分享。如果該應用程式版本已上傳至測試群組且受到保護,則應用程式套件探索工具中的內部應用程式分享連結會提供受保護的版本。您可以在應用程式套件探索工具的「詳細資料」分頁中查看受保護狀態。
監控當機情形
您或許會發現應用程式因受到保護而導致當機次數增加;這種情況可能代表自動防護功能運作正常。如果攻擊者無法順利修改您的應用程式,執行階段檢查幾乎都會讓應用程式發生當機,進而停止運作。
只要當機原因不是出自 Google Play,您的 Android Vitals 穩定性指標就不會受到影響。當您使用其他工具 (例如 Crashlytics) 分析當機情形時,如要根據安裝來源篩選,您會需要用到套件名稱。Google Play 商店的套件名稱為「com.android.vending」。
如果您擔心當機次數增加會對應用程式造成負面影響,請向我們回報當機問題,並盡可能詳述各項細節,相關團隊會著手調查。假使我們判定這些當機問題與防護措施有關,就會做出回應。
回報應用程式的破解版本
破解版本是指經過修改,或未依規定透過 Google Play 安裝,但仍可運作的應用程式版本。
如果您發現應用程式的破解版本,您可以向我們回報。