본문 바로가기
Tip & Tech

신뢰되지 않은 루트 인증서 안드로이드 에뮬레이터에 설치하는 방법

by virgo81 2010. 2. 4.

 

신뢰되지 않은 루트 인증서를

안드로이드 에뮬레이터에 설치하는 방법

 

How to install a untrusted root certificate

to android emulator

 

 

1. 작업 디렉토리를 만듭니다. (WORKDIR)

2. 루트 인증서(MYROOT.CER)를 WORKDIR 로 옮깁니다.

3. 첨부 파일을 WORKDIR로 다운로드 받습니다.

 

 

 

 

 

4. http://www.bouncycastle.org/latest_releases.html에서 Bouncy Castle Crypto API 라이브러리를 다운로드 받습니다.
 예) http://www.bouncycastle.org/download/bcprov-jdk16-145.jar

5. 다운로드 받은 jar 파일을 "$JAVA_HOME\jre\lib\ext" 디렉토리로 옮깁니다.
 예) C:\Program Files (x86)\Java\jdk1.6.0_18\jre\lib\ext

6. -partition-size 옵션과 함께 에뮬레이터를 실행합니다.
    usage: emulator -partition-size [size] -avd [target-avd]
    ex: emulator -partition-size 256 -avd my_android2.0

7. 부팅 과정을 기다립니다.

8. 명령 프롬프트에서 다음 명령들을 실행합니다.

     adb pull /system/etc/security/cacerts.bks cacerts_org.bks
 
     copy cacerts_org.bks cacerts.bks

     keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -importcert -trustcacerts -alias CACERT -file MYROOT.CER
         Trust this certificate? [no]:  y


    adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
 
    adb push cacerts.bks /system/etc/security/cacerts.bks


hosts 파일도 수정하기 원한다면.
#-- 시작

    adb pull /system/etc/hosts hosts_org

    copy hosts_org hosts
#-- 끝

hosts 파일을 수정합니다.

hosts 파일도 수정하기 원한다면.
#-- 시작
    adb push hosts /system/etc/hosts
#-- 끝

    adb push mkfs.yaffs2.arm /data/data/temp/mkfs.yaffs2

    adb shell chmod 777 /data/data/temp/mkfs.yaffs2

    mkfs.yaffs2 /system /data/data/temp/system.img

    adb pull /data/data/temp/system.img system.img

    adb shell mount -o remount,ro -t yaffs2 /dev/block/mtdblock0 /system

9. "당신의 androidSDK 홈\platforms\target-version\images" (IMAGEHOME) 디렉토리로 이동합니다.
    예) E:\dev\android-sdk-windows\platforms\android-2.0\images

10. system.img 파일을 백업합니다
    ex) system.img를 system.img.org로 이름 변경합니다.

11. WORKDIR\system.img 를 IMAGEHOME 으로 이동합니다.

12. 에뮬레이터를 종료합니다.

13. 에뮬레이터를 새로 시작합니다.

14. 안드로이드 브라우저를 이용하여 당신의 사이트에 접속합니다.

15. 보안 관련 메시지가 안나타나면, 성공입니다.

 

 

1. Make a directory for working(WORKDIR).

2. Move your root certificate(MYROOT.CER) to WORKDIR.

3. Download the attached file to WORKDIR.

4. Download the Bouncy Castle Crypto API library from this site (http://www.bouncycastle.org/latest_releases.html).
 ex) http://www.bouncycastle.org/download/bcprov-jdk16-145.jar

 

5. Move the crypto API jar to "$JAVA_HOME\jre\lib\ext" directory.
    ex) C:\Program Files (x86)\Java\jdk1.6.0_18\jre\lib\ext

6. Run the emulator with -partition-size option.
    usage: emulator -partition-size [size] -avd [target-avd]
    ex: emulator -partition-size 256 -avd my_android2.0

7. Wait booting processing.

8. Run these commands in command prompt.

    adb pull /system/etc/security/cacerts.bks cacerts_org.bks
 
    copy cacerts_org.bks cacerts.bks

    keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -importcert -trustcacerts -alias CACERT -file MYROOT.CER
         Trust this certificate? [no]:  y


    adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
 
    adb push cacerts.bks /system/etc/security/cacerts.bks


If you want to modify the hosts file.
#-- start

    adb pull /system/etc/hosts hosts_org

    copy hosts_org hosts
#-- end

Modify the hosts file.

If you want to modify the hosts file.
#-- start
    adb push hosts /system/etc/hosts
#-- end

    adb push mkfs.yaffs2.arm /data/data/temp/mkfs.yaffs2

    adb shell chmod 777 /data/data/temp/mkfs.yaffs2

    mkfs.yaffs2 /system /data/data/temp/system.img

    adb pull /data/data/temp/system.img system.img

    adb shell mount -o remount,ro -t yaffs2 /dev/block/mtdblock0 /system

9. Go to "your android SDK home\platforms\target-version\images" (IMAGEHOME).
    ex) E:\dev\android-sdk-windows\platforms\android-2.0\images

10. Back up your system.img
    ex) Rename system.img to system.img.org

11. Move WORKDIR\system.img to IMAGEHOME

12. Terminate the emulator.

13. Relaunch the emulator.

14. Connect your site by android browser.

15. If there are no messages related security, success.