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