본문 바로가기
안드로이드 팁

안드로이드용 update.zip 만드는 법

by 테그라크 2012. 1. 6.
2011-01-06 수정. CWM에서도 사용가능하게 변경됨. update-binary 추가

안녕하세요. 테그라크입니다.
이번 build 17에선 update.zip 파일 지원이 추가되었는데 음..
XDA에선 ROM이나 테마 모두 이 update.zip 방식만을 활용하고 있습니다.
일단 ROM은 국내에선 아직 따로 배포하시는 분이 없으니 테마가 남는데
그닥 유용하지가 않은게 이미 강력한 테마스토어가 한국에 있기 때문이죠 ^^/

하지만 이것저것 만지기 좋아하시는 분들께는 이것도 가끔은 유용할 수 있겠습니다.

/sdcard/tegrak/update 폴더 안에 있는 zip 파일들을 테그라크 리커버리 모드에서 사용할 수 있습니다.
여러개가 있으면 그중에 선택해서 사용하실 수 있습니다.
길게 갈 것없이 예제로 알아볼까요?

제가 마련한 샘플은 busybox를 휴대폰의 /system/xbin에 설치하는 파일입니다.

자 sample의 폴더 구조를 살펴봅시다.
zip 파일의 META-INF/com/google/android 폴더 안에 있는 updater-script가 핵심입니다.
busybox 파일은 system/xbin 안에 들어있습니다.
updater-script 코드를 간단하게 살펴보시죠.

# ui_print는 화면에 문자를 출력합니다.
ui_print("update.zip sample");
ui_print("by tegrak");
# package_extract_dir
# 첫번째값: zip 파일내에 들어있는 폴더 이름
# 두번째값: 첫번째값 안의 내용을 복사할 휴대폰 폴더 이름
# 즉 여기서는 zip 파일안에 있는 system 폴더의 내용을 휴대폰의 /system 폴더안에 복사해줍니다.
package_extract_dir("system", "/system");
# set_perm은 파일 퍼미션 설정을 합니다.
set_perm(0, 0, 0755, "/system/xbin/busybox");
# 설치완료!
ui_print("finished installing busybox.");


상단바를 바꾸시려면 만들어진 framework-res.apk를 system/framework에 넣고 zip으로 압축합니다.
위 코드에서 set_perm 부분을 아래와 같이 바꿔줍니다.
set_perm(0, 0, 0644, "/system/framework/framework-res.apk");

참 쉽죠?
예제에 있는 명령어 외에 더 많은 명령어를 사용할 수 있습니다.
이 명령어는 안드로이드 소스를 받으시면 bootable/recovery/updater/install.c에 있으며
추후에 사용용도가 많아지면 제가 더 설명을 하던가 해볼게요. 저도 전부 정확하게는 잘 몰라요 ㅎㅎ
지금은 예제만으로도 충분할거라 생각합니다.

안드로이드 update.zip 명령어 모음집 http://pspmaster.tistory.com/174

댓글