packagecom.tencent.wework.api.lcx;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;importjava.util.Iterator;importjava.util.List;importandroid.annotation.SuppressLint;importandroid.app.Activity;importandroid.content.ClipData;importandroid.content.ClipboardManager;importandroid.content.Context;importandroid.content.pm.PackageInfo;importandroid.content.pm.PackageManager;importandroid.widget.Toast;public classLcxSignature {privateActivity context;publicLcxSignature(Activity context1) {
context=context1;
}/*** 遍历包名*/
public voidgetSign() {
String paramString=context.getPackageName();
showToast("包名 = " +paramString);
PackageManager pm=context.getPackageManager();
List apps =pm.getInstalledPackages(PackageManager.GET_SIGNATURES);
Iterator iter =apps.iterator();while(iter.hasNext()) {
PackageInfo packageinfo=iter.next();
String packageName=packageinfo.packageName;if(packageName.equals(paramString)) {
showToast("签名 = " + MD5Encode(packageinfo.signatures[0].toByteArray()));
}
}
}/*** 根据包名获取签名*/@SuppressLint("NewApi")public voidgetRawSignature() {//String paramString = "com.lc.iotstandard.ht";
String paramString =context.getPackageName();
PackageManager localPackageManager=context.getPackageManager();
PackageInfo localPackageInfo;try{
localPackageInfo=localPackageManager.getPackageInfo(paramString,
PackageManager.GET_SIGNATURES);if (localPackageInfo == null) {
showToast("信息为 null, 包名 = " +paramString);return;
}
}catch(PackageManager.NameNotFoundException localNameNotFoundException) {
showToast("包名没有找到...");return;
}//String result = getSignature(paramString);
String result = MD5Encode(localPackageInfo.signatures[0].toByteArray());
showToast(result);
ClipboardManager cm=(ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
cm.setPrimaryClip(ClipData.newPlainText(null, result));
}/*** 根据包名获取签名
* pkg: 包名*/
publicString getSignature(String pkg) {try{
PackageInfo var1;
var1=context.getPackageManager().getPackageInfo(pkg, PackageManager.GET_SIGNATURES);return MD5Encode(var1.signatures[0].toByteArray());
}catch(Throwable var2) {
}return "";
}private static String MD5Encode(byte[] toencode) {try{
MessageDigest md5= MessageDigest.getInstance("MD5");
md5.reset();
md5.update(toencode);returnHexEncode(md5.digest());
}catch(NoSuchAlgorithmException e) {
e.printStackTrace();
}return "";
}
@SuppressLint("DefaultLocale")private static String HexEncode(byte[] toencode) {
StringBuilder sb= new StringBuilder(toencode.length * 2);for (byteb : toencode) {
sb.append(Integer.toHexString((b& 0xf0) >>> 4));
sb.append(Integer.toHexString(b& 0x0f));
}returnsb.toString().toUpperCase();
}public voidshowToast(String info) {
Toast toast=Toast.makeText(context, info, Toast.LENGTH_LONG);
toast.show();
}
}