List of usage examples for android.content.pm PackageManager GET_SIGNATURES
int GET_SIGNATURES
To view the source code for android.content.pm PackageManager GET_SIGNATURES.
Click Source Link
From source file:Main.java
/** * Gets the key hash of application package's certificate signature. * @since 0.1.1// w w w .ja v a 2 s.co m * @param aContext The context from which the package manager is retrieved to get the signature's information. * @return The list of signatures embedded to the application package. */ public static List<String> getKeyHash(Context aContext) { try { PackageInfo info = aContext.getPackageManager().getPackageInfo(getPackageName(aContext), PackageManager.GET_SIGNATURES); List<String> keyHashList = new ArrayList<String>(info.signatures.length); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); keyHashList.add(Base64.encodeToString(md.digest(), Base64.DEFAULT)); } return keyHashList; } catch (Exception e) { return null; } }
From source file:Main.java
/** * A double check about app signature that was passed by MainActivity as facetID. * @param facetId a string value composed by app hash. I.e. android:apk-key-hash:Lir5oIjf552K/XN4bTul0VS3GfM * @param context Application Context/*from w ww .ja va 2 s . c o m*/ * @return true if the signature executed on runtime matches if signature sent by MainActivity */ private static boolean checkAppSignature(String facetId, Context context) { try { PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES); for (Signature sign : packageInfo.signatures) { byte[] sB = sign.toByteArray(); MessageDigest messageDigest = MessageDigest.getInstance("SHA1"); messageDigest.update(sign.toByteArray()); String currentSignature = Base64.encodeToString(messageDigest.digest(), Base64.DEFAULT); if (currentSignature.toLowerCase().contains(facetId.split(":")[2].toLowerCase())) { return true; } } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return false; }
From source file:Main.java
/** * Get current certificate fingerprint// w ww. ja v a2s . c o m * * @param ctx context of application * @param packageName your package name * @return Base64 packed SHA fingerprint of your packet certificate */ public static String[] getCertificateFingerprint(Context ctx, String packageName) { try { if (ctx == null || ctx.getPackageManager() == null) return null; @SuppressLint("PackageManagerGetSignatures") PackageInfo info = ctx.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES); assert info.signatures != null; String[] result = new String[info.signatures.length]; int i = 0; for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); result[i++] = toHex(md.digest()); } return result; } catch (Exception e) { return null; } }
From source file:Main.java
/** * Get app signature//from w w w . j a va 2s . c om * * @param context * @param packageName * @return */ public static String getAppSignature(Context context, String packageName) { try { PackageManager pm = context.getPackageManager(); PackageInfo packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES); return packageInfo.signatures[0].toCharsString(); } catch (NameNotFoundException e) { e.printStackTrace(); } return null; }
From source file:Main.java
public static void printKeyHash(Activity pActivity) { // Add code to print out the key hash try {//from www. jav a 2s.c om PackageInfo info = pActivity.getPackageManager().getPackageInfo(pActivity.getPackageName(), 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 e) { Log.d("KeyHash:", e.toString()); } catch (NoSuchAlgorithmException e) { Log.d("KeyHash:", e.toString()); } }
From source file:Main.java
public static String getSignature(Context context, String pkgname) { boolean isEmpty = TextUtils.isEmpty(pkgname); if (isEmpty) { return null; } else {/*from www.ja v a 2 s.co m*/ try { PackageManager manager = context.getPackageManager(); PackageInfo packageInfo = manager.getPackageInfo(pkgname, PackageManager.GET_SIGNATURES); Signature[] signatures = packageInfo.signatures; StringBuilder builder = new StringBuilder(); for (Signature signature : signatures) { builder.append(signature.toCharsString()); } String signature = builder.toString(); return signature; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } return null; }
From source file:Main.java
public static boolean isDebuggable(Context ctx) { boolean debuggable = false; try {// www .j av a2s . co m PackageInfo pinfo = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), PackageManager.GET_SIGNATURES); Signature signatures[] = pinfo.signatures; for (int i = 0; i < signatures.length; i++) { CertificateFactory cf = CertificateFactory.getInstance("X.509"); ByteArrayInputStream stream = new ByteArrayInputStream(signatures[i].toByteArray()); X509Certificate cert = (X509Certificate) cf.generateCertificate(stream); debuggable = cert.getSubjectX500Principal().equals(DEBUG_DN); if (debuggable) break; } } catch (NameNotFoundException e) { } catch (CertificateException e) { } return debuggable; }
From source file:Main.java
public static boolean isDebuggable(Context ctx) { boolean debuggable = false; try {//from ww w .j a v a 2 s.c o m PackageInfo pinfo = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), PackageManager.GET_SIGNATURES); Signature signatures[] = pinfo.signatures; for (int i = 0; i < signatures.length; i++) { CertificateFactory cf = CertificateFactory.getInstance("X.509");//No i18n ByteArrayInputStream stream = new ByteArrayInputStream(signatures[i].toByteArray()); X509Certificate cert = (X509Certificate) cf.generateCertificate(stream); debuggable = cert.getSubjectX500Principal().equals(DEBUG_DN); if (debuggable) { break; } } } catch (NameNotFoundException e) { } catch (CertificateException e) { } return debuggable; }
From source file:Main.java
public static Signature[] getSignatures(Context context, String packageName) { PackageInfo packageInfo = null;//from w w w.ja v a 2 s . c o m try { packageInfo = context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_SIGNATURES); return packageInfo.signatures; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return null; }
From source file:com.phonegap.plugins.androidsignkey.AndroidSignKey.java
@Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { try {//w ww .j av a 2 s .c o m if (action.equals("getSignatureHashCode")) { Context ctx = this.cordova.getActivity().getApplicationContext(); Signature[] sigs = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), PackageManager.GET_SIGNATURES).signatures; for (int i = 0; i < sigs.length; i++) { callbackContext.success(sigs[0].hashCode()); return true; } } } catch (NameNotFoundException e) { e.printStackTrace(); callbackContext.error(e.getMessage()); } return false; }