打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【新提醒】Unity中针对Android Apk的签名验证(C#实现)

Unity中针对Android Apk的签名验证(C#实现)

热度 9385 2015-8-13 11:04|个人分类:Unity|Android

当Unity开发的游戏以Android Apk的形式发布之后,经常会遇到的一种情况就是别人对我们的游戏进行二次打包,也就是用他们的签名替换掉我们的签名,从而堂而皇之的将胜利果实占为己有。面对这样的情况,我们可以采取的一种方式就是对Apk包的签名进行验证,如果与我们的签名不一致,则可以采取黑屏或者直接退出等方式来阻止该盗版程序的运行。
示例代码如下:

[code]csharpcode:

using UnityEngine;using System.Collections;/// <summary>/// Signature verify tool class/// </summary>public class SignatureVerify{	/**	 * Verify the signature is correct	 **/	public static bool IsCorrect ()	{   		#if UNITY_EDITOR		return true;		#endif		// 获取Android的PackageManager    		AndroidJavaClass Player = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");          		AndroidJavaObject Activity = Player.GetStatic<AndroidJavaObject> ("currentActivity");        		AndroidJavaObject PackageManager = Activity.Call<AndroidJavaObject> ("getPackageManager");  		// 获取当前Android应用的包名		string packageName = Activity.Call<string> ("getPackageName");		// 调用PackageManager的getPackageInfo方法来获取签名信息数组    		int GET_SIGNATURES = PackageManager.GetStatic<int> ("GET_SIGNATURES");         		AndroidJavaObject PackageInfo = PackageManager.Call<AndroidJavaObject> ("getPackageInfo", packageName, GET_SIGNATURES);           		AndroidJavaObject[] Signatures = PackageInfo.Get<AndroidJavaObject[]> ("signatures");           		// 获取当前的签名的哈希值,判断其与我们签名的哈希值是否一致		if (Signatures != null && Signatures.Length > 0)		{			int hashCode = Signatures [0].Call<int> ("hashCode");			return hashCode == 8888888888;//我们签名的哈希值
} return false; } }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Unity android 读取文件,读取APK包文件
Unity接入小米SDK注意事项
用unity3d发布一个Android的apk文件
Unity发布安卓系统教程
实现Unity和Android进行交互
unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android apk)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服