apk 서명 과 keystore 정보 보기

주: 안 드 로 이 드 응용 프로그램의 서명 을 가 져 오 는 가장 빠 른 방법:http://www.jianshu.com/p/d00e9754df43
1. 키스 토어 정보 보기
$ keytool -list -v -keystore debug.keystore

Android Studio 에 서 는 Android Studio 를 열 고 오른쪽 Gradle 탭 을 선택 하고 항목 을 선택 한 다음 signingReport 라 는 Task 를 선택 하여 더 블 클릭 으로 실행 합 니 다.그리고 오른쪽 아래 에 있 는 Gradle Console 을 선택 하면 서명 메 시 지 를 볼 수 있 습 니 다.
2. 3 자 응용 프로그램 또는 시스템 응용 서명 보기
보 려 는 apk 를 열 고 META - INF 폴 더 의 압축 을 풀 고 CERT. RSA 파일 을 가 져 옵 니 다.
$ keytool -printcert -file META-INF/CERT.RSA

3. 빈 가방 에 서명 (alias 값 주의)
jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias]

jarsigner 명령 형식: - verbose 출력 상세 정보 - keystore 키 라 이브 러 리 위치 - signedjar 에서 생 성 할 파일 서명 할 파일 키 라 이브 러 리 파일 keystore Path 매개 변 수 는 keystore 의 절대 경 로 를 대표 합 니 다. 예 를 들 어 D: \ keystore apkOut 매개 변 수 는 서명 하지 않 은 apk 경 로 를 대표 합 니 다. 예 를 들 어 D: \ signed. apk apkin 매개 변 수 는 서명 하지 않 은 apk 를 대표 합 니 다.기본 이름 은 unsign. apk alias 매개 변 수 는 서명 용 alias 이름 (keystore 를 만 들 때 작성) 입 니 다. 예 를 들 어 test
$ jarsigner -verbose -keystore debug.keystore -signedjar test2.apk unsign1.apk test

4. 응용 코드 에서 서명 정보 가 져 오기
public String getSHA1Signature(Context context) {
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);

        byte[] cert = info.signatures[0].toByteArray();

        MessageDigest md = MessageDigest.getInstance("SHA1");
        byte[] publicKey = md.digest(cert);
        StringBuilder hexString = new StringBuilder();
        for (int i = 0; i < publicKey.length; i++) {
            String appendString = Integer.toHexString(0xFF & publicKey[i])
                    .toUpperCase(Locale.US);
            if (appendString.length() == 1)
                hexString.append("0");
            hexString.append(appendString);
            hexString.append(":");
        }
        return hexString.toString();
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    return null;
}

좋은 웹페이지 즐겨찾기