/libcore/luni/src/main/java/java/util/jar/JarVerifier.java
여기 source를 확인해 보면,
+ '.RSA', '.DSA', '.EC' 로 끝나는 file을 찾고, 같은 이름의 '.SF' 파일을 찾는다.(Android의 경우는, 'CERT.RSA' 와 'CERT.SF' 파일)
: '.RSA', '.DSA', '.EC' : Certification File.
: '.SF' : Signature File
: Signature file을 certification file을 통해서 먼저 verification한다.
+ .SF 파일의 각 file entry에 대해서 '-Digest' 값을 읽어 들인다.
<< PackageParser >>
'Signing Verifier'에서 읽어들인 "file entry:<HASH>" 값 mapping table을 이용해서, zip file안에 있는 file들에 대해 hash를 검사한다.
: System APK에 대해서는 Manifest의 hash만 검사 (trusted app.) 그렇지 않은 경우 모든 file - 'META-INF/' directory제외 - 에 대해서 검사.
'Domain > Android' 카테고리의 다른 글
[Ninja] Feature of build-tool : Implicit dependency to input '.ninja' file (0) | 2016.03.04 |
---|---|
[Android] Build goldfish kernel with NDK toolchain. (0) | 2015.10.19 |
[Android] 죽지않는 service 만들기. (0) | 2015.02.11 |
[Android] Package verification with signature. (0) | 2015.02.02 |
Multiple ABI and 64bit on Lolipop (2) | 2014.11.08 |