어플을 수정할때, AndroidManifest.xml을 건드리면 폰에서 앱자체를 인식을 못합니다.

실제로 매니페스트 수정하고 앱이 안떠서 수정을 잘못했나? 하시던 분들 많으실겁니다.

하지만 그냥 매니페스트 수정으로 그 앱파일의 사인키가 깨져서 폰에서 이를 인식해 설치를 막은겁니다.

이걸 풀어주려면 프웤을 수정해야하는데요, 의외로 모르는분이 많을것같아 강좌글을 써봅니다.


http://forum.xda-developers.com/showthread.php?t=2733681 이것이 엑다에 있는 원본 강좌입니다.


1. core.jar(킷캣이하) 혹은 core-libart.jar(롤팝) 를 백스말리 해줍시다.


2. smali/java/security 폴더로 가서 MessageDigest.smali를 열어줍시다.


3. .method public static isEqual([B[B)Z   를 검색해줍시다.


4. 메소드 맨앞부분에


const/4 v1, 0x0


array-length v2, p0


이런게 있을겁니다.


5. 위 코드에서 0x0을 0x1로 바꿔줍시다.


(수정후)

const/4 v1, 0x1


array-length v2, p0


6. 저장하고 MessageDigest.smali를 닫아줍시다.


7. 같은 폴더에서 Signature.smali를 열어줍시다.


8. .method public final verify([B)Z     를 검색해줍시다.


9. 메소드 맨 끝부분에



 invoke-virtual {p0, p1}, Ljava/security/SignatureSpi;->engineVerify([B)Z


    move-result v0


    return v0



이런게 있을겁니다.


10. 위 코드의 move-result v0을 다음과 같이 바꿔줍시다.



invoke-virtual {p0, p1}, Ljava/security/SignatureSpi;->engineVerify([B)Z


    const/4 v0, 0x1


    return v0



11. .method public final verify([BII)Z     를 검색해줍시다.


12. 메소드 맨 끝부분에



invoke-virtual {p0, p1, p2, p3}, Ljava/security/SignatureSpi;->engineVerify([BII)Z


    move-result v0


    return v0



이런게 있을겁니다.


13. 위 코드의 move-result v0을 다음과 같이 바꿔줍시다.



invoke-virtual {p0, p1, p2, p3}, Ljava/security/SignatureSpi;->engineVerify([BII)Z


    const/4 v0, 0x1


    return v0



14. 저장하고 Signature.smali를 닫아준 후, core-jar(혹은 core-libart.jar)를 컴파일해줍시다.


15. services.jar를 백스말리합니다.


16. smali/com/android/server/pm 폴더로 가서 PackageManagerService$InstallParams.smali 를 열어줍시다.


17. .method private installLocationPolicy(Landroid/content/pm/PackageInfoLite;I)I    를 검색해줍시다.


18. 밑으로 내리다보면



if-nez v7, :cond_1


    iget v7, p1, Landroid/content/pm/PackageInfoLite;->versionCode:I


    iget v8, v3, Landroid/content/pm/PackageParser$Package;->mVersionCode:I


    if-ge v7, v8, :cond_1


    const-string v4, "PackageManager"


    new-instance v5, Ljava/lang/StringBuilder;


    invoke-direct {v5}, Ljava/lang/StringBuilder;->()V


    const-string v7, "Can't install update of "



이런게 있을겁니다.


19. 위의 빨간색으로 된 부분의 v값을 일치시켜줍시다.


if-ge v8, v8, :cond_1


이런식으로요.


20. 저장하고 파일을 닫아준 뒤 services.jar를 컴파일해줍시다.

댓글 2
  • profile
    웃음투자님 블로그에서 한번 봤던 기억이 나는데 쓸 일이 거의 없어서 ㅜㅡㅜ
    펌업마다 수정하기도 귀찮고 그렇더라구요.
    무엇보다 다들 럭키패쳐 쓰시거나 ㅋ
    전 xposed - xinstaller 에서 설치 사인확인 비활성화 하는지라...
    스크랩만 해두네요~ :) 
    감사합니다.
  • ?
    KNH93
    15.05.30
    좋은 정보 감사합니다!
댓글 쓰기 권한이 없습니다.
강좌 정렬 목록 검색 쓰기
등록된 글이 없습니다.
1