use of android.content.pm.Signature in project SmartAndroidSource by jaychou2012.
the class FacebookHandle method validateAppSignatureForIntent.
private boolean validateAppSignatureForIntent(Context context, Intent intent) {
PackageManager pm = context.getPackageManager();
ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);
if (resolveInfo == null) {
return false;
}
String packageName = resolveInfo.activityInfo.packageName;
PackageInfo packageInfo;
try {
packageInfo = pm.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;
}
use of android.content.pm.Signature in project Klyph by jonathangerbaud.
the class FacebookUtil method logHash.
public static void logHash(Context context) {
try {
PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
}
use of android.content.pm.Signature in project VirtualApp by asLody.
the class CheckSignatures method call.
@Override
public Object call(Object who, Method method, Object... args) throws Throwable {
if (args.length == 2 && args[0] instanceof String && args[1] instanceof String) {
PackageManager pm = VirtualCore.getPM();
String pkgNameOne = (String) args[0], pkgNameTwo = (String) args[1];
try {
PackageInfo pkgOne = pm.getPackageInfo(pkgNameOne, PackageManager.GET_SIGNATURES);
PackageInfo pkgTwo = pm.getPackageInfo(pkgNameTwo, PackageManager.GET_SIGNATURES);
Signature[] one = pkgOne.signatures;
Signature[] two = pkgTwo.signatures;
if (ArrayUtils.isEmpty(one)) {
if (!ArrayUtils.isEmpty(two)) {
return PackageManager.SIGNATURE_FIRST_NOT_SIGNED;
} else {
return PackageManager.SIGNATURE_NEITHER_SIGNED;
}
} else {
if (ArrayUtils.isEmpty(two)) {
return PackageManager.SIGNATURE_SECOND_NOT_SIGNED;
} else {
// 走到了这里说明两个包的签名都在
if (Arrays.equals(one, two)) {
return PackageManager.SIGNATURE_MATCH;
} else {
return PackageManager.SIGNATURE_NO_MATCH;
}
}
}
} catch (Throwable e) {
// Ignore
}
}
return method.invoke(who, args);
}
use of android.content.pm.Signature in project facebook-android-sdk by facebook.
the class FacebookSdk method getApplicationSignature.
/**
* Internal call please don't use directly.
* @param context The application context.
* @return The application signature.
*/
public static String getApplicationSignature(Context context) {
Validate.sdkInitialized();
if (context == null) {
return null;
}
PackageManager packageManager = context.getPackageManager();
if (packageManager == null) {
return null;
}
String packageName = context.getPackageName();
PackageInfo pInfo;
try {
pInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
} catch (PackageManager.NameNotFoundException e) {
return null;
}
Signature[] signatures = pInfo.signatures;
if (signatures == null || signatures.length == 0) {
return null;
}
MessageDigest md;
try {
md = MessageDigest.getInstance("SHA-1");
} catch (NoSuchAlgorithmException e) {
return null;
}
md.update(pInfo.signatures[0].toByteArray());
return Base64.encodeToString(md.digest(), Base64.URL_SAFE | Base64.NO_PADDING);
}
use of android.content.pm.Signature in project cw-omnibus by commonsguy.
the class MainActivity method onPackageSelected.
@Override
public void onPackageSelected(PackageInfo pkgInfo) {
Signature[] signatures = pkgInfo.signatures;
byte[] raw = signatures[0].toByteArray();
sigDisplay.show(raw);
panes.closePane();
File output = new File(getExternalFilesDir(null), pkgInfo.packageName.replace('.', '_') + ".bin");
new WriteThread(output, raw).start();
}
Aggregations