Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- public class APKIntegrityChecker : MonoBehaviour
- {
- string expectedSignature = "your_apk_signature_here"; // Replace with your actual APK signature
- void Start()
- {
- if (!CheckAPKSignature())
- {
- Debug.LogError("APK integrity check failed. Exiting game.");
- Application.Quit();
- }
- else
- {
- Debug.Log("APK integrity verified.");
- }
- }
- bool CheckAPKSignature()
- {
- try
- {
- using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
- {
- AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
- AndroidJavaObject packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
- AndroidJavaObject packageInfo = packageManager.Call<AndroidJavaObject>("getPackageInfo", currentActivity.Call<string>("getPackageName"), 64); // PackageManager.GET_SIGNATURES = 64
- AndroidJavaObject[] signatures = packageInfo.Get<AndroidJavaObject[]>("signatures");
- string apkSignature = signatures[0].Call<string>("toCharsString");
- return apkSignature == expectedSignature;
- }
- }
- catch (System.Exception e)
- {
- Debug.LogError("Error checking APK signature: " + e.Message);
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement