동영상 링크입니다.
https://youtu.be/ZNOE14jDjOM
안드로이드 Chrome 어플 추출하기
망고220에서 구글 마켓에서 어플을 설치를 합니다.
설치 후 실행 되는 것을 확인 합니다.
그리고, Micro SD Card를 리눅스 PC에 장착합니다.
$ mkdir data-mount |
해당 파티션을 마운트 합니다.
$ sudo mount /dev/sdg3 ./data-mount |
설치된 파일을 확인 합니다.
$ sudo ls -R ./data-mount/data/com.android.chrome/ ./data-mount/data/com.android.chrome/: app_chrome app_tabs app_textures cache files lib shared_prefs
./data-mount/data/com.android.chrome/app_chrome: Consent To Send Stats Default Local State icudtl.dat natives_blob.bin paks snapshot_blob.bin
./data-mount/data/com.android.chrome/app_chrome/Default: Cookies History-journal Origin Bound Certs-journal Top Sites Cookies-journal Login Data Preferences Top Sites-journal Favicons Login Data-journal README UsageReportsBuffer Favicons-journal Network Action Predictor Search Logo Visited Links GPUCache Network Action Predictor-journal Shortcuts Web Data History Origin Bound Certs Shortcuts-journal Web Data-journal
./data-mount/data/com.android.chrome/app_chrome/Default/GPUCache: index index-dir
./data-mount/data/com.android.chrome/app_chrome/Default/GPUCache/index-dir: the-real-index
./data-mount/data/com.android.chrome/app_chrome/Default/Search Logo: logo metadata
./data-mount/data/com.android.chrome/app_chrome/Default/UsageReportsBuffer: 000003.log CURRENT LOCK LOG MANIFEST-000001
./data-mount/data/com.android.chrome/app_chrome/paks: chrome_100_percent.pak en-US.pak ko.pak pak_timestamp-2272096-1428407247876 resources.pak
./data-mount/data/com.android.chrome/app_tabs: 0
./data-mount/data/com.android.chrome/app_tabs/0: tab0 tab_state
./data-mount/data/com.android.chrome/app_textures:
./data-mount/data/com.android.chrome/cache: Cache Crash Reports Media Cache
./data-mount/data/com.android.chrome/cache/Cache: 56d0672f6dfa739f_0 a64b40f378d88ca7_0 index index-dir
./data-mount/data/com.android.chrome/cache/Cache/index-dir: the-real-index
./data-mount/data/com.android.chrome/cache/Crash Reports:
./data-mount/data/com.android.chrome/cache/Media Cache: index index-dir
./data-mount/data/com.android.chrome/cache/Media Cache/index-dir: the-real-index
./data-mount/data/com.android.chrome/files:
./data-mount/data/com.android.chrome/lib:
libchrome.1847.114.so libchrome.1985.122.so libchrome.2062.117.so libchrome.2171.59.so
libchrome.1916.122.so libchrome.1985.128.so libchrome.2125.102.so libchrome.so
libchrome.1916.138.so libchrome.1985.131.so libchrome.2125.114.so libchromeview.so
libchrome.1916.141.so libchrome.1985.135.so libchrome.2171.37.so libchromium_android_linker.so
./data-mount/data/com.android.chrome/shared_prefs: com.android.chrome_preferences.xml com.google.android.apps.chrome.omaha.xml |
중요한 부분은 lib 디렉토리입니다.
압축 파일로 묶습니다.
$ sudo tar zcf chrom_lib.tgz ./data-mount/data/com.android.chrome/lib
|
압축한 것을 풉니다.
$ sudo tar xf chrom_lib.tgz -C ./chrom_lib
|
퍼미션도 변경합니다.
압축이 풀린 파일은 복사를 합니다.
$ cp * ~/work/mango220/ics404/android-ics4.0.4/device/crazyboys/mango220/apk/lib/
|
이제는 apk를 추출합니다.
설치 프로그램은 /data/app/ 디렉토리에 있습니다.
이 파일을 추출하기 위해서는 다시 부팅을 해야 합니다.
부팅을 위해서 마운트를 해제를 합니다.
$ sudo umount /dev/sdg3 |
부팅 후 adb 명령으로 apk를추출합니다.
디버깅 터미널에서 확인 해 보면 /data/app 디렉토리에 해당apk가 있는 것을 확인 할 수 있습니다.
root@android:/ # ls /data/app com.android.chrome-1.apk |
리눅스 PC에서 아래와 같이 명령을 입력해서 추출을 합니다.
$ sudo adb pull /data/app/com.android.chrome-1.apk |
추출한 apk가 확인이 됩니다.
그리고, 안드로이드 소스에 device/crazyboys/mango220/apk디렉토리에 복사를 합니다.
]$ ls Camera.apk com.android.vending-1.apk com.icecoldapps.sshserver-1.apk DicePlayer_2_0_18.apk com.apksoftware.compass.apk com.miian.android.sensors-1.apk FileExplorer-v1.1.apk com.google.android.apps.inputmethod.zhuyin-1.apk com.slideme.sam.manager-5.02.apk MediaPlayer.apk com.google.android.apps.m4b-1.apk https_ftps_server.apk Terminal-v1.4.apk com.google.android.gms-1.apk lib Touch_Test_1.4.apk com.google.android.inputmethod.korean-1.apk libjni_koreanime.so com.android.chrome-1.apk com.google.android.inputmethod.pinyin-1.apk |
안드로이드 수정
/device/crazyboys/mango220/ device.mk 파일수정
PRODUCT_COPY_FILES += \ device/crazyboys/mango220/apk/com.android.chrome-1.apk:system/app/com.android.chrome-1.apk \ device/crazyboys/mango220/apk/lib/libchrome.1847.114.so:system/lib/libchrome.1847.114.so \ device/crazyboys/mango220/apk/lib/libchrome.1916.122.so:system/lib/libchrome.1916.122.so \ device/crazyboys/mango220/apk/lib/libchrome.1916.138.so:system/lib/libchrome.1916.138.so \ device/crazyboys/mango220/apk/lib/libchrome.1916.141.so:system/lib/libchrome.1916.141.so \ device/crazyboys/mango220/apk/lib/libchrome.1985.122.so:system/lib/libchrome.1985.122.so \ device/crazyboys/mango220/apk/lib/libchrome.1985.128.so:system/lib/libchrome.1985.128.so \ device/crazyboys/mango220/apk/lib/libchrome.1985.131.so:system/lib/libchrome.1985.131.so \ device/crazyboys/mango220/apk/lib/libchrome.1985.135.so:system/lib/libchrome.1985.135.so \ device/crazyboys/mango220/apk/lib/libchrome.2062.117.so:system/lib/libchrome.2062.117.so \ device/crazyboys/mango220/apk/lib/libchrome.2125.102.so:system/lib/libchrome.2125.102.so \ device/crazyboys/mango220/apk/lib/libchrome.2125.114.so:system/lib/libchrome.2125.114.so \ device/crazyboys/mango220/apk/lib/libchrome.2171.37.so:system/lib/libchrome.2171.37.so \ device/crazyboys/mango220/apk/lib/libchrome.2171.59.so:system/lib/libchrome.2171.59.so \ device/crazyboys/mango220/apk/lib/libchrome.so:system/lib/libchrome.so \ device/crazyboys/mango220/apk/lib/libchromeview.so:system/lib/libchromeview.so \ device/crazyboys/mango220/apk/lib/libchromium_android_linker.so:system/lib/libchromium_android_linker.so |
빌드를 합니다.
컴파일 후 에러가 발생하면 아래 링크 참조하기 바랍니다.
http://cafe.naver.com/embeddedcrazyboys/34814
빌드가 완료 된 후 파일이 제대로 컴파일이 되었는지확인 해 봅시다.
$ ls out/target/product/mango220/system/lib/libchrom* out/target/product/mango220/system/lib/libchrome.1847.114.so out/target/product/mango220/system/lib/libchrome.1916.122.so out/target/product/mango220/system/lib/libchrome.1916.138.so out/target/product/mango220/system/lib/libchrome.1916.141.so out/target/product/mango220/system/lib/libchrome.1985.122.so out/target/product/mango220/system/lib/libchrome.1985.128.so out/target/product/mango220/system/lib/libchrome.1985.131.so out/target/product/mango220/system/lib/libchrome.1985.135.so out/target/product/mango220/system/lib/libchrome.2062.117.so out/target/product/mango220/system/lib/libchrome.2125.102.so out/target/product/mango220/system/lib/libchrome.2125.114.so out/target/product/mango220/system/lib/libchrome.2171.37.so out/target/product/mango220/system/lib/libchrome.2171.59.so out/target/product/mango220/system/lib/libchrome.so out/target/product/mango220/system/lib/libchromeview.so out/target/product/mango220/system/lib/libchromium_android_linker.so out/target/product/mango220/system/lib/libchromium_net.so |
컴파일이 제대로 되었다는 것을 확인 할 수 있습니다.
이미지를 Write하여실행을 해 봅시다.
실행된 모습을 볼 수 있습니다.
https://youtu.be/ZNOE14jDjOM
내용