public static boolean checkSignature(Context context) {
try {
PackageInfo packageInfo = context.getPackageManager()
.getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : packageInfo.signatures) {
MessageDigest sha = MessageDigest.getInstance("SHA");
sha.update(signature.toByteArray());
final String currentSignature = Base64.encodeToString(sha.digest(), Base64.DEFAULT);
if (SIGNATURE.equals(currentSignature)) {
return true;
}
}
} catch (Exception e) {
Log.e(TAG, "Failed to check signature", e);
}
return false;
}
java类android.content.pm.Signature的实例源码
SignatureUtils.java 文件源码
项目:android-security
阅读 38
收藏 0
点赞 0
评论 0
InstalledAppTestUtils.java 文件源码
项目:mobile-store
阅读 38
收藏 0
点赞 0
评论 0
public static void install(Context context,
String packageName,
int versionCode, String versionName,
@Nullable String signingCert,
@Nullable String hash) {
PackageInfo info = new PackageInfo();
info.packageName = packageName;
info.versionCode = versionCode;
info.versionName = versionName;
info.applicationInfo = new ApplicationInfo();
info.applicationInfo.publicSourceDir = "/tmp/mock-location";
if (signingCert != null) {
info.signatures = new Signature[]{new Signature(signingCert)};
}
String hashType = "sha256";
if (hash == null) {
hash = "00112233445566778899aabbccddeeff";
}
InstalledAppProviderService.insertAppIntoDb(context, info, hashType, hash);
}
ScreenFilterMonitorImpl.java 文件源码
项目:Nird2
阅读 39
收藏 0
点赞 0
评论 0
private boolean isPlayServices(String pkg) {
if (!PLAY_SERVICES_PACKAGE.equals(pkg)) return false;
try {
PackageInfo sigs = pm.getPackageInfo(pkg, GET_SIGNATURES);
// The genuine Play Services app should have a single signature
Signature[] signatures = sigs.signatures;
if (signatures == null || signatures.length != 1) return false;
// Extract the public key from the signature
CertificateFactory certFactory =
CertificateFactory.getInstance("X509");
byte[] signatureBytes = signatures[0].toByteArray();
InputStream in = new ByteArrayInputStream(signatureBytes);
X509Certificate cert =
(X509Certificate) certFactory.generateCertificate(in);
byte[] publicKeyBytes = cert.getPublicKey().getEncoded();
String publicKey = StringUtils.toHexString(publicKeyBytes);
return PLAY_SERVICES_PUBLIC_KEY.equals(publicKey);
} catch (NameNotFoundException | CertificateException e) {
if (LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
return false;
}
}
Update.java 文件源码
项目:stynico
阅读 45
收藏 0
点赞 0
评论 0
private void setViewPager()
{
final String packname = getPackageName();
try
{
PackageInfo packageInfo = getPackageManager().getPackageInfo(packname, PackageManager.GET_SIGNATURES);
Signature[] signs = packageInfo.signatures;
Signature sign = signs[0];
int code = sign.hashCode();
if (code != 312960342)
{
ti();
}
else
{
//
}
}
catch (PackageManager.NameNotFoundException e)
{}
fragments = new ArrayList<Fragment>();
viewPager.setAdapter(viewPagerAdapter);
mTabLayout.setupWithViewPager(viewPager);
mTabLayout.setTabsFromPagerAdapter(viewPagerAdapter);
}
Facebook.java 文件源码
项目:AndroidBackendlessChat
阅读 33
收藏 0
点赞 0
评论 0
/**
* Query the signature for the application that would be invoked by the
* given intent and verify that it matches the FB application's signature.
*
* @param context
* @param packageName
* @return true if the app's signature matches the expected signature.
*/
private boolean validateAppSignatureForPackage(Context context, String packageName) {
PackageInfo packageInfo;
try {
packageInfo = context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
} catch (NameNotFoundException e) {
return false;
}
for (Signature signature : packageInfo.signatures) {
if (signature.toCharsString().equals(FB_APP_SIGNATURE)) {
return true;
}
}
return false;
}
ScreenFilterMonitorImpl.java 文件源码
项目:Nird2
阅读 44
收藏 0
点赞 0
评论 0
private boolean isPlayServices(String pkg) {
if (!PLAY_SERVICES_PACKAGE.equals(pkg)) return false;
try {
PackageInfo sigs = pm.getPackageInfo(pkg, GET_SIGNATURES);
// The genuine Play Services app should have a single signature
Signature[] signatures = sigs.signatures;
if (signatures == null || signatures.length != 1) return false;
// Extract the public key from the signature
CertificateFactory certFactory =
CertificateFactory.getInstance("X509");
byte[] signatureBytes = signatures[0].toByteArray();
InputStream in = new ByteArrayInputStream(signatureBytes);
X509Certificate cert =
(X509Certificate) certFactory.generateCertificate(in);
byte[] publicKeyBytes = cert.getPublicKey().getEncoded();
String publicKey = StringUtils.toHexString(publicKeyBytes);
return PLAY_SERVICES_PUBLIC_KEY.equals(publicKey);
} catch (NameNotFoundException | CertificateException e) {
if (LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
return false;
}
}
MiuiPushActivateService.java 文件源码
项目:MiPushFramework
阅读 35
收藏 0
点赞 0
评论 0
private boolean verifySignatures(String str) {
try {
PackageInfo packageInfo = getPackageManager().getPackageInfo(str, PackageManager.GET_SIGNATURES);
if (packageInfo.signatures != null) {
for (Object obj : packageInfo.signatures) {
for (Signature equals : MIUI_PLATFORM_SIGNATURES) {
if (equals.equals(obj)) {
return true;
}
}
}
}
} catch (NameNotFoundException e) {
}
return false;
}
MainActivity.java 文件源码
项目:OkSign
阅读 34
收藏 0
点赞 0
评论 0
private void updateSignatures(String packageName) {
List<PackageInfo> list =
getPackageManager().getInstalledPackages(PackageManager.GET_SIGNATURES);
PackageInfo packageInfo = null;
for (PackageInfo info : list) {
if (info.packageName.equals(packageName)) {
packageInfo = info;
break;
}
}
if (packageInfo == null) {
packageView.setError("Cannot find package.");
return;
}
Signature[] signs = packageInfo.signatures;
signatures.clear();
for (Signature sign : signs) {
ByteString byteString = ByteString.of(sign.toByteArray());
signatures.add(byteString.md5().hex());
}
signaturesView.getAdapter().notifyDataSetChanged();
}
Facebook.java 文件源码
项目:chat-sdk-android-push-firebase
阅读 39
收藏 0
点赞 0
评论 0
/**
* Query the signature for the application that would be invoked by the
* given intent and verify that it matches the FB application's signature.
*
* @param context
* @param packageName
* @return true if the app's signature matches the expected signature.
*/
private boolean validateAppSignatureForPackage(Context context, String packageName) {
PackageInfo packageInfo;
try {
packageInfo = context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
} catch (NameNotFoundException e) {
return false;
}
for (Signature signature : packageInfo.signatures) {
if (signature.toCharsString().equals(FB_APP_SIGNATURE)) {
return true;
}
}
return false;
}
IApkManagerImpl.java 文件源码
项目:letv
阅读 44
收藏 0
点赞 0
评论 0
public PackageInfo getPackageInfo(String packageName, int flags) throws RemoteException {
waitForReadyInner();
try {
String pkg = getAndCheckCallingPkg(packageName);
if (pkg != null) {
enforcePluginFileExists();
PluginPackageParser parser = (PluginPackageParser) this.mPluginCache.get(pkg);
if (parser != null) {
PackageInfo packageInfo = parser.getPackageInfo(flags);
if (packageInfo == null || (flags & 64) == 0 || packageInfo.signatures != null) {
return packageInfo;
}
packageInfo.signatures = (Signature[]) this.mSignatureCache.get(packageName);
return packageInfo;
}
}
} catch (Exception e) {
handleException(e);
}
return null;
}
IApkManagerImpl.java 文件源码
项目:letv
阅读 39
收藏 0
点赞 0
评论 0
private void saveSignatures(PackageInfo pkgInfo) {
JLog.log("plugin", "保存签名信息: " + pkgInfo.signatures);
if (pkgInfo != null && pkgInfo.signatures != null) {
int i = 0;
Signature[] signatureArr = pkgInfo.signatures;
int length = signatureArr.length;
int i2 = 0;
while (i2 < length) {
Signature signature = signatureArr[i2];
File file = new File(PluginDirHelper.getPluginSignatureFile(this.mContext, pkgInfo.packageName, i));
try {
Utils.writeToFile(file, signature.toByteArray());
JLog.log("plugin", "保存签名信息 包名=" + pkgInfo.packageName + ",i=" + i + ", 签名md5=" + Utils.md5(signature.toByteArray()));
i++;
i2++;
} catch (Exception e) {
JLog.log("plugin", "保存签名信息失败 e=" + e.getMessage());
file.delete();
Utils.deleteDir(PluginDirHelper.getPluginSignatureDir(this.mContext, pkgInfo.packageName));
return;
}
}
}
}
IApkManagerImpl.java 文件源码
项目:letv
阅读 35
收藏 0
点赞 0
评论 0
private Signature[] readSignatures(String packageName) {
List<String> fils = PluginDirHelper.getPluginSignatureFiles(this.mContext, packageName);
List<Signature> signatures = new ArrayList(fils.size());
int i = 0;
for (String file : fils) {
try {
byte[] data = Utils.readFromFile(new File(file));
if (data != null) {
Signature sin = new Signature(data);
signatures.add(sin);
JLog.log("plugin", "读取签名信息 包名=" + packageName + ",i=" + i + ",签名md5=" + Utils.md5(sin.toByteArray()));
i++;
} else {
JLog.log("plugin", "读取签名信息失败 i=" + i);
return null;
}
} catch (Exception e) {
JLog.log("plugin", "读取签名信息失败 e=" + e.getMessage());
return null;
}
}
return (Signature[]) signatures.toArray(new Signature[signatures.size()]);
}
IApkManagerImpl.java 文件源码
项目:letv
阅读 38
收藏 0
点赞 0
评论 0
public int checkSignatures(String pkg1, String pkg2) throws RemoteException {
PackageManager pm = this.mContext.getPackageManager();
Signature[] signatureArr = new Signature[0];
try {
signatureArr = getSignature(pkg1, pm);
Signature[] signatureArr2 = new Signature[0];
try {
signatureArr2 = getSignature(pkg2, pm);
boolean pkg1Signed = signatureArr != null && signatureArr.length > 0;
boolean pkg2Signed = signatureArr2 != null && signatureArr2.length > 0;
if (!pkg1Signed && !pkg2Signed) {
return 1;
}
if (!pkg1Signed && pkg2Signed) {
return -1;
}
if (pkg1Signed && !pkg2Signed) {
return -2;
}
if (signatureArr.length != signatureArr2.length) {
return -3;
}
for (int i = 0; i < signatureArr.length; i++) {
if (!Arrays.equals(signatureArr[i].toByteArray(), signatureArr2[i].toByteArray())) {
return -3;
}
}
return 0;
} catch (NameNotFoundException e) {
return -4;
}
} catch (NameNotFoundException e2) {
return -4;
}
}
FacebookSdk.java 文件源码
项目:letv
阅读 30
收藏 0
点赞 0
评论 0
public static String getApplicationSignature(Context context) {
Validate.sdkInitialized();
if (context == null) {
return null;
}
PackageManager packageManager = context.getPackageManager();
if (packageManager == null) {
return null;
}
try {
PackageInfo pInfo = packageManager.getPackageInfo(context.getPackageName(), 64);
Signature[] signatures = pInfo.signatures;
if (signatures == null || signatures.length == 0) {
return null;
}
try {
MessageDigest md = MessageDigest.getInstance(CommonUtils.SHA1_INSTANCE);
md.update(pInfo.signatures[0].toByteArray());
return Base64.encodeToString(md.digest(), 9);
} catch (NoSuchAlgorithmException e) {
return null;
}
} catch (NameNotFoundException e2) {
return null;
}
}
a.java 文件源码
项目:letv
阅读 40
收藏 0
点赞 0
评论 0
public static boolean g(Context context) {
boolean z = false;
try {
Signature[] signatureArr = context.getPackageManager().getPackageInfo(context.getPackageName(), 64).signatures;
CertificateFactory instance = CertificateFactory.getInstance(z[16]);
int i = 0;
while (i < signatureArr.length) {
boolean equals = ((X509Certificate) instance.generateCertificate(new ByteArrayInputStream(signatureArr[i].toByteArray()))).getSubjectX500Principal().equals(c);
if (equals) {
return equals;
}
i++;
z = equals;
}
return z;
} catch (NameNotFoundException e) {
return false;
} catch (Exception e2) {
return false;
}
}
MIP_SystemUtils.java 文件源码
项目:amap
阅读 43
收藏 0
点赞 0
评论 0
/**
* <一句话功能简述> 获取签名名
*
* @Description<功能详细描述>
*
* @param packageName
* @return
* @LastModifiedDate:2015-8-31
* @author rqj
* @EditHistory:<修改内容><修改人>
*/
public static String getRelease(String packageName)
{
StringBuilder builder = new StringBuilder();
try
{
PackageManager pm = GlobalState.getInstance().getPackageManager();
PackageInfo pi = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
for (Signature sig : pi.signatures)
{
builder.append(sig.toCharsString());
}
return builder.toString();
}
catch (Exception e)
{
LogUtil.e(e);
}
return "";
}
FacebookSign.java 文件源码
项目:FeedFire
阅读 44
收藏 0
点赞 0
评论 0
public static void keyHash(Context context){
// Add code to print out the key hash
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
"barreto.alessandro.feedlist",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException | NoSuchAlgorithmException ignored) {
Log.e("Facebook",ignored.getMessage());
}
}
AppUtils.java 文件源码
项目:SmartChart
阅读 48
收藏 0
点赞 0
评论 0
/**
* 检测当前应用是否是Debug版本
*
* @param ctx
* @return
*/
public static boolean isDebuggable(Context ctx) {
boolean debuggable = false;
try {
PackageInfo pinfo = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), PackageManager.GET_SIGNATURES);
Signature signatures[] = pinfo.signatures;
for (Signature signature : signatures) {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
ByteArrayInputStream stream = new ByteArrayInputStream(signature.toByteArray());
X509Certificate cert = (X509Certificate) cf
.generateCertificate(stream);
debuggable = cert.getSubjectX500Principal().equals(DEBUG_DN);
if (debuggable)
break;
}
} catch (NameNotFoundException | CertificateException e) {
}
return debuggable;
}
Utils.java 文件源码
项目:SecuritySample
阅读 40
收藏 0
点赞 0
评论 0
/**
* Gets the encoded representation of the first signing certificated used to sign current APK
*
* @param ctx
* @return
*/
private static byte[] getSigningKeyCertificate(Context ctx) {
try {
PackageManager pm = ctx.getPackageManager();
String packageName = ctx.getPackageName();
int flags = PackageManager.GET_SIGNATURES;
PackageInfo packageInfo = pm.getPackageInfo(packageName, flags);
Signature[] signatures = packageInfo.signatures;
if (signatures != null && signatures.length >= 1) {
//takes just the first signature, TODO: handle multi signed apks
byte[] cert = signatures[0].toByteArray();
InputStream input = new ByteArrayInputStream(cert);
CertificateFactory cf = CertificateFactory.getInstance("X509");
X509Certificate c = (X509Certificate) cf.generateCertificate(input);
return c.getEncoded();
}
} catch (Exception e) {
Log.w(TAG, e);
}
return null;
}
PackageParserEx.java 文件源码
项目:VirtualHook
阅读 41
收藏 0
点赞 0
评论 0
public static void readSignature(VPackage pkg) {
File signatureFile = VEnvironment.getSignatureFile(pkg.packageName);
if (!signatureFile.exists()) {
return;
}
Parcel p = Parcel.obtain();
try {
FileInputStream fis = new FileInputStream(signatureFile);
byte[] bytes = FileUtils.toByteArray(fis);
fis.close();
p.unmarshall(bytes, 0, bytes.length);
p.setDataPosition(0);
pkg.mSignatures = p.createTypedArray(Signature.CREATOR);
} catch (IOException e) {
e.printStackTrace();
} finally {
p.recycle();
}
}
BreventApplication.java 文件源码
项目:Brevent
阅读 35
收藏 0
点赞 0
评论 0
public static BigInteger getSignature(Context context) {
if (modulus != null) {
return modulus;
}
Signature[] signatures = BreventActivity.getSignatures(context.getPackageManager(),
BuildConfig.APPLICATION_ID);
if (signatures == null || signatures.length != 1) {
return null;
}
try {
final CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
final ByteArrayInputStream bais = new ByteArrayInputStream(signatures[0].toByteArray());
final Certificate cert = certFactory.generateCertificate(bais);
modulus = ((RSAPublicKey) cert.getPublicKey()).getModulus();
} catch (GeneralSecurityException e) {
UILog.w("Can't get signature", e);
return null;
}
return modulus;
}
AirSystem.java 文件源码
项目:AirQuickUtils
阅读 38
收藏 0
点赞 0
评论 0
/**
* Is this APK signed or is it a Debug build?
*
* @return true if it is not signed
*/
public static boolean isDebuggable() {
boolean debuggable = false;
Context ctx = AirQuickUtils.getContext();
try {
PackageInfo pinfo = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), PackageManager.GET_SIGNATURES);
Signature signatures[] = pinfo.signatures;
CertificateFactory cf = CertificateFactory.getInstance("X.509");
for (int i = 0; i < signatures.length; i++) {
ByteArrayInputStream stream = new ByteArrayInputStream(signatures[i].toByteArray());
X509Certificate cert = (X509Certificate) cf.generateCertificate(stream);
debuggable = cert.getSubjectX500Principal().equals(DEBUG_DN);
if (debuggable)
break;
}
} catch (NameNotFoundException | CertificateException ignored) {
}
return debuggable;
}
TargetAndroidAssetStatementLoader.java 文件源码
项目:OpenYOLO-Android
阅读 37
收藏 0
点赞 0
评论 0
/**
* Check if the {@link PackageInfo} app contains the specified cert fingerprint.
*
* @param packageInfo PackageInfo (retrieved with
* {@link PackageManager#GET_SIGNATURES}
* @param certFingerprint Hex, SHA-256 of the app signature (no dots)
*
* @return Whether the specified app contains the cert fingerprint
*/
static boolean containsFingerprint(@NonNull PackageInfo packageInfo,
@NonNull final String certFingerprint) {
require(packageInfo, notNullValue());
require(!TextUtils.isEmpty(certFingerprint), "certFingerprint must not be null or empty");
final String paramFingerprint = certFingerprint.replaceAll(":", "");
for (Signature signature : packageInfo.signatures) {
String fingerprint = toHex(sha256(signature.toByteArray()));
if (fingerprint.equals(paramFingerprint)) {
return true;
}
}
return false;
}
RequestTest.java 文件源码
项目:android-banklink
阅读 34
收藏 0
点赞 0
评论 0
@SuppressWarnings("WrongConstant")
private void installApp(@NonNull String packageName,
int versionCode,
@NonNull Signature signature) {
final ResolveInfo resolveInfo = new ResolveInfo();
resolveInfo.activityInfo = new ActivityInfo();
resolveInfo.activityInfo.packageName = packageName;
banklinkActivities.add(resolveInfo);
final PackageInfo packageInfo = new PackageInfo();
packageInfo.versionCode = versionCode;
packageInfo.packageName = packageName;
packageInfo.signatures = new Signature[1];
packageInfo.signatures[0] = signature;
try {
when(context.getPackageManager().getPackageInfo(eq(packageName), anyInt()))
.thenReturn(packageInfo);
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(e);
}
}
IPluginManagerImpl.java 文件源码
项目:DroidPlugin
阅读 42
收藏 0
点赞 0
评论 0
private void saveSignatures(PackageInfo pkgInfo) {
if (pkgInfo != null && pkgInfo.signatures != null) {
int i = 0;
for (Signature signature : pkgInfo.signatures) {
File file = new File(PluginDirHelper.getPluginSignatureFile(mContext, pkgInfo.packageName, i));
try {
Utils.writeToFile(file, signature.toByteArray());
Log.i(TAG, "Save %s signature of %s,md5=%s", pkgInfo.packageName, i, Utils.md5(signature.toByteArray()));
} catch (Exception e) {
e.printStackTrace();
Log.w(TAG, "Save signatures fail", e);
file.delete();
Utils.deleteDir(PluginDirHelper.getPluginSignatureDir(mContext, pkgInfo.packageName));
break;
}
i++;
}
}
}
IPluginManagerImpl.java 文件源码
项目:DroidPlugin
阅读 37
收藏 0
点赞 0
评论 0
private Signature[] readSignatures(String packageName) {
List<String> fils = PluginDirHelper.getPluginSignatureFiles(mContext, packageName);
List<Signature> signatures = new ArrayList<Signature>(fils.size());
int i = 0;
for (String file : fils) {
try {
byte[] data = Utils.readFromFile(new File(file));
if (data != null) {
Signature sin = new Signature(data);
signatures.add(sin);
Log.i(TAG, "Read %s signature of %s,md5=%s", packageName, i, Utils.md5(sin.toByteArray()));
} else {
Log.i(TAG, "Read %s signature of %s FAIL", packageName, i);
return null;
}
i++;
} catch (Exception e) {
Log.i(TAG, "Read %s signature of %s FAIL", e, packageName, i);
return null;
}
}
return signatures.toArray(new Signature[signatures.size()]);
}
SystemApiFragment.java 文件源码
项目:android-study
阅读 33
收藏 0
点赞 0
评论 0
private void init() {
//mRoot.setText("是否Root: " + AppUtils.isAppRoot());
mPackageName.setText("App包名: " + AppUtils.getAppPackageName());
mAppName.setText("App名称: " + AppUtils.getAppName());
mAppIcon.setImageDrawable(AppUtils.getAppIcon());
mAppPath.setText("App路径: " + AppUtils.getAppPath());
mAppVersion.setText("App版本: " + AppUtils.getAppVersionName());
mAppCode.setText("App版本码: " + AppUtils.getAppVersionCode());
mAppSystemApp.setText("是否是系统App: " + AppUtils.isSystemApp());
mAppDebug.setText("是否是Debug版: " + AppUtils.isAppDebug());
mAppSignature.setText("App签名: " + getAppSignature());
mAppSha1.setText("应用签名的SHA1值: " + AppUtils.getAppSignatureSHA1());
Signature[] signatures = AppUtils.getAppSignature();
String md5 = EncryptUtils.encryptMD5ToString(signatures[0].toByteArray())
.replaceAll("(?<=[0-9A-F]{2})[0-9A-F]{2}", ":$0");
mAppMd5.setText("应用签名的SHA1值: " + md5);
}
WXApiImplComm.java 文件源码
项目:boohee_v5.6
阅读 31
收藏 0
点赞 0
评论 0
public static boolean validateAppSignature(Context context, Signature[] signatureArr, boolean
z) {
if (z) {
for (Signature toCharsString : signatureArr) {
String toLowerCase = toCharsString.toCharsString().toLowerCase();
a.d(TAG, "check signature:" + toLowerCase);
if (toLowerCase.equals(WX_APP_SIGNATURE)) {
a.d(TAG, "pass");
return true;
}
}
return false;
}
a.d(TAG, "ignore wechat app signature validation");
return true;
}
SinaSsoHandler.java 文件源码
项目:boohee_v5.6
阅读 40
收藏 0
点赞 0
评论 0
private boolean validateAppSignatureForIntent(Context context, Intent intent) {
PackageManager pm = context.getPackageManager();
ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);
if (resolveInfo == null) {
return false;
}
try {
for (Signature signature : pm.getPackageInfo(resolveInfo.activityInfo.packageName,
64).signatures) {
if (WEIBO_SIGNATURE.equals(signature.toCharsString())) {
return true;
}
}
return false;
} catch (NameNotFoundException e) {
return false;
}
}
h.java 文件源码
项目:boohee_v5.6
阅读 37
收藏 0
点赞 0
评论 0
private boolean b(Intent intent) {
ResolveInfo resolveActivity = this.a.getContext().getPackageManager().resolveActivity(intent, 0);
if (resolveActivity == null) {
return false;
}
try {
for (Signature toCharsString : this.a.getContext().getPackageManager().getPackageInfo(resolveActivity.activityInfo.packageName, 64).signatures) {
if ("30820295308201fea00302010202044b4ef1bf300d06092a864886f70d010105050030818d310b300906035504061302434e3110300e060355040813074265694a696e673110300e060355040713074265694a696e67312c302a060355040a132353696e612e436f6d20546563686e6f6c6f677920284368696e612920436f2e204c7464312c302a060355040b132353696e612e436f6d20546563686e6f6c6f677920284368696e612920436f2e204c74643020170d3130303131343130323831355a180f32303630303130323130323831355a30818d310b300906035504061302434e3110300e060355040813074265694a696e673110300e060355040713074265694a696e67312c302a060355040a132353696e612e436f6d20546563686e6f6c6f677920284368696e612920436f2e204c7464312c302a060355040b132353696e612e436f6d20546563686e6f6c6f677920284368696e612920436f2e204c746430819f300d06092a864886f70d010101050003818d00308189028181009d367115bc206c86c237bb56c8e9033111889b5691f051b28d1aa8e42b66b7413657635b44786ea7e85d451a12a82a331fced99c48717922170b7fc9bc1040753c0d38b4cf2b22094b1df7c55705b0989441e75913a1a8bd2bc591aa729a1013c277c01c98cbec7da5ad7778b2fad62b85ac29ca28ced588638c98d6b7df5a130203010001300d06092a864886f70d0101050500038181000ad4b4c4dec800bd8fd2991adfd70676fce8ba9692ae50475f60ec468d1b758a665e961a3aedbece9fd4d7ce9295cd83f5f19dc441a065689d9820faedbb7c4a4c4635f5ba1293f6da4b72ed32fb8795f736a20c95cda776402099054fccefb4a1a558664ab8d637288feceba9508aa907fc1fe2b1ae5a0dec954ed831c0bea4".equals(toCharsString.toCharsString())) {
return true;
}
}
return false;
} catch (NameNotFoundException e) {
return false;
}
}