2021.07.07 - [일하기/Arduino] - [Android] WebView 기반 앱 만들기 (초보용, 사진 위주)
이전 포스트에서 간단한 WebView를 사용한 앱을 만들었는데...
이런 소스 코드를 잃어버리고 apk 파일만 있다.
수정할 부분이 있는데 어쩌지.. ㅠㅠ
이럴 때 우리에게 필요한 것은 !!
decompile이다.
decompile 후 필요한 부분을 수정하고 다시 묶어 apk로 만들 수 있다.
그럼 한번 해보자.
1. Apktool 다운로드
Apktool은 apk 파일을 reverse engineering을 위한 도구이다.
다음 사이트에서 apktool_2.5.0.jar 파일을 다운로드한다.
https://ibotpeaches.github.io/Apktool/
2. Decompiling
다운로드한 apktool_2.5.0.jar를 사용해서 apk 파일 (app-release.apk)을 decompile 한다.
java는 openjdk version "11.0.9.1"을 사용하였다. 다른 버전으로도 되겠지만, 일단 해보고 안되면 다른 버전으로 바꿔서 해보자.
java -jar apktool_2.5.0.jar d app-release.apk -o test
아래와 같이 파일이 생성되었다.
3. 파일 수정 하기
복잡한 수정은 아니고 화면의 "A : How are you?" 아래 "B : I am Fine. Thank you, and you?" 를 넣으려고 한다.
사용한 HTML 파일이 assets 폴더 안에 있다. 이 파일을 변경하자.
수정 완료 !!
4. Repacking
apktool_2.5.0.jar를 사용해서 변경된 파일을 다시 APK로 만든다.
java -jar apktool_2.5.0.jar b test -o app-release-re.apk
5. APK 서명 하기 (Sign)
만든 apk를 스마트 폰으로 옮겨 실행하면 아래와 같이 설치되지 않는다. 앱이 서명되지 않아서 나타나는 현상이다. 지금부터 서명을 해보자.
일단, 서명을 위한 키 (Key Pair)를 생성한다.
keytool -genkeypair -v -keystore test.keystore -alias test -keyalg RSA -keysize 4096 -validity 10000
생성한 키를 사용해서 서명한다. 서명에는 jarsigner.exe를 사용한다. (JDK에 포함되어 있음)
사용법은 아래 사이트를 참조하시라.
https://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html
서명 완료 !!
6. 설치 후 실행하기
apk 파일을 스마트 폰으로 옮겨 설치 후, 실행해보자.
짠~ 아래와 같이 앱이 수정되었다.
7. 후기
HTML 기반으로 작성된 앱은 상당히 쉽게 수정이 가능하며 다른 언어로 앱을 만들어도 수정이 어렵지는 않다. JNI로 만들었다 해서 안전을 보장할 수는 없다. 앱의 변형보다는 앱 내의 자료를 얻기 위해 Decompiling하는 경우도 많다. 따라서, Decompiling 및 Repacking이 의미 없는 방식으로 앱을 구성해야 어느 정도 안전이 보장될 것이다.
어쨌든 이런 짓을 잘못하면 쇠고랑 찰 수 있으니 조심해야 한다. 그래도 해보고 싶다면 혼자 해보고 관련 내용을 포스팅하지 말기를 바란다.
'놀기 > Android' 카테고리의 다른 글
[Android] xapk 풀었다가 다시 묶기 (0) | 2021.07.25 |
---|---|
[Android] WebView 기반 앱 만들기 (초보용, 사진 위주) (2) | 2021.07.07 |
댓글