태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.



안드로이드 update.zip 명령어 모음집

안드로이드 팁 2012.01.06 18:30
ui_print("str1", "str2"...)
화면에 문자열 출력
ex) ui_print("I'm your father.");
ex) ui_print("ro.secure=", getprop("ro.secure"));

ifelse(cond, expr1)
ifelse(cond, expr1, expr2)
cond가 참이면 expr1 실행, 거짓이면 expr2 실행
ex) ifelse(getprop("ro.product.device") == "SHW-M250S", ui_print("true!"), ui_print("false!"));
ro.product.device 이름이 SHW-M250S이면 true 출력, 아니면 false 출력
ex) ifelse(getprop("ro.product.device") == "SHW-M250S", ui_print("true!"));
ro.product.device 이름이 SHW-M250S이면 true 출력

abort()
aboart("message")
중지
ex) abort();
ex) abort("quit!!! bye!!");

assert(expr)
expr의 결과가 거짓일 때 중지
ex) assert(getprop("ro.product.device") == "SHW-M250S");
ro.product.device 이름이 SHW-M250S가 아니면 중지.

concat("str1", "str2", ...)
지정한 문자열들을 모두 합쳐서 리턴
ex) assert(getprop("ro.product.device") == concat("SHW", "-", "M250S"));
ro.product.device 이름이 SHW-M250S가 아니면 중지.

is_substring("str1", "str2")
str1 문자열에 str2 문자열이 포함되어 있으면 참 리턴

sleep(seconds)
지정한 초만큼 대기 상태
ex) sleep(10);
10초간 대기

less_than_int(left, right)
left 값이 right 값보다 작으면 참 리턴
ex) less_than_int(5, 10);

greater_than_int(left, right)
left 값이 right 값보다 크면 참 리턴
ex) greater_than_int(5, 10);

mount("fs_type", "partition_type", "location", "mount_point")
마운트
ex) mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/system");

is_mounted("mount_point")
mount_point가 mount 되어 있으면 참 리턴
ex) assert(is_mounted("/system"));
/system이 마운트 되어 있지 않으면 중단

unmount("mount_point")
mount_point 언마운트
ex) unmount("/system");

delete("path")
"path" 파일 삭제
ex) delete("/system/xbin/busybox");

delete_recursive("path")
"path" 폴더 삭제
ex) delete_recursive("/data/dalvik-cache");

package_extract_dir("package_path", "destination_path")
zip 파일안의 package_path 폴더를 destination_path로 압축 해제
ex) package_extract_dir("my_system", "/system");

package_extract_file("package_path")
package_extract_file("package_path", "destination_path")
zip 파일안의 package_path에 해당하는 파일을 압축해제
ex) package_extract_file("busybox", "/system/xbin/busybox");

symlink("target", "src1", "src2"...)
target으로 심볼릭 링크 생성
ex) symlink("/system/xbin/busybox", "/system/xbin/ls");

set_perm(uid, gid, mode, "src1", "src2"...)
파일의 퍼미션 변경
ex) set_perm(0, 0, 0755, "/system/xbin/busybox");

set_perm_recursive(uid, gid, mode, "src1", "src2"...)
폴더안의 모든 파일 퍼미션 변경
ex) set_perm(0, 0, 0644, "/lib/modules");

getprop("name")
안드로이드 프로퍼티 값 읽기
ex) getprop("ro.secure");

file_getprop("file", "key")
지정된 프로퍼티 file에서 key 값 읽기
ex) file_getprop("/default.prop", "ro.secure");

read_file("file")
지정된 file 내용을 리턴
ex) read_file("/proc/cpuinfo");

run_program("file", "opt1", "opt2"...)
file 프로그램을 실행
ex) run_program("/system/xbin/busybox", "ls", "-l");

안드로이드 update.zip 만들기 예제 http://pspmaster.tistory.com/81
저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 테그라크

댓글을 달아 주세요

  1. FLare 2012.01.06 20:18 신고  댓글주소  수정/삭제  댓글쓰기

    저기요 테그라크님 모바일오딘 나온거 아세요? 그거강좌도써주실수있나요??좀 해주세요ㅜ

  2. xeon 2012.01.06 22:54 신고  댓글주소  수정/삭제  댓글쓰기

    댓글란이 썰렁하네요 ㅋㅋ
    두번째는 나다 !
    좋은걸 포스팅 해주셨네요
    잘 활용해보겠습니다
    테그라크님 언제나 화이팅! ! ㅎㅎ

    • xeon 2012.01.06 22:57 신고  댓글주소  수정/삭제

      아우 이거 진짜 마음에 드네요
      방학이라 할것도 없는데 이거가지고 좀 놀아야겠습니다 ㅋㅋㅋ

  3. Liliniser 2012.01.06 23:41 신고  댓글주소  수정/삭제  댓글쓰기

    감사합니다 ㅎㅎ

  4. ksmkuua 2012.01.07 00:11 신고  댓글주소  수정/삭제  댓글쓰기

    갤탭용 ics 펌웨어 포팅하려고 하고 있는 ksmkuua 입니다.
    해외판 롬을 테그라크에 내장된 update zip package로 올리면 시스템 파티션을 잘 잡는데 데이터 파티션이랑 캐쉬 파티션을 못잡는 현상이 있습니다.
    혹시 스크립트 상에서 데이터 파티션과 캐쉬 파티션을 포맷하는 명령어가 혹시 없을까요?
    ui_print("=>> Formatting system...........................";);
    unmount("/system";);
    run_program("/tmp/mke2fs", "-m", "0", "-O", "has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize", "-L", "system", "-M", "/system", "/dev/block/stl9";);
    ui_print("=>> Mounting system and data...................";);
    run_program("/tmp/busybox", "mount", "-t", "ext4", "/dev/block/stl9", "/system";);
    run_program("/tmp/busybox", "mount", "-t", "ext4", "/dev/block/mmcblk0p2", "/data";);

    혹시 여기서 뭘 더 추가해야 다른 파티션을 인식하게 될까요?
    참고로 롬 설치 이후 시스템 파티션만 ext4 이고 다른 파티션은 rfs 였습니다.

    • 요크 2012.01.07 10:29 신고  댓글주소  수정/삭제

      ext4로 포맷하지 못하고, rfs 포맷을 그대로 가져가면서 마운트를 못하여 일어나는 현상 같군요.
      아니면 갤럭시S처럼 make_ext4fs 를 넣어주시고 ,
      package_extract_file("make_ext4fs", "/tmp/make_ext4fs";);
      set_perm(0, 0, 0777, "/tmp/make_ext4fs";);
      로 퍼미션 지정해주신 후에, # unmount, format and mount system
      /tmp/busybox umount -l /system
      /tmp/erase_image system
      /tmp/busybox mount -t yaffs2 /dev/block/mtdblock2 /system

      # unmount and format cache
      /tmp/busybox umount -l /cache
      /tmp/erase_image cache

      # unmount and format data
      /tmp/busybox umount /data
      /tmp/make_ext4fs -b 4096 -g 32768 -i 8192 -I 256 -a /data /dev/block/mmcblk0p2

      # unmount and format datadata
      /tmp/busybox umount -l /datadata
      /tmp/erase_image datadata

      로 포맷시키게 해주시면 될거 같습니다.

    • 요크 2012.01.07 10:30 신고  댓글주소  수정/삭제

      물론 mmcblk0p2는 TerminalEmulater로 Mount Information 확인하신후에 시도하셔야 합니다.
      파티션이 서로 다를수 있으니까요.

    • 플뤼톤 2012.01.07 16:43 신고  댓글주소  수정/삭제

      ksmkuua님 이미 해보셨겠지만 ICS롬 올리고 나서 기본으로 포함된 터미널 에뮬레이터는 실행 불가한 듯 하네요. ㅠ

  5. 갤투유져용이 2012.01.07 11:10 신고  댓글주소  수정/삭제  댓글쓰기

    update.zip 안에 system폴더 하위에 app와 framework폴더가 있고, 각각의 폴더 내에

    여러 파일이 있다는 가정하에..

    ui_print("EL21_update.zip";);
    ui_print("by YONG";);
    package_extract_dir("system", "/system";);
    set_perm_recursive(0, 0, 0644, "/system/";);
    ui_print("finished installing EL21_update.";);

    이렇게만 명령어 주면 문제없이 돌아갈까요?

  6. 플뤼톤 2012.01.07 16:40 신고  댓글주소  수정/삭제  댓글쓰기

    ksmkuua님 여기서도 수고가 많으시네요. 저도 테그라크님 조언을 구해보려 왔는데ㅎㅎ

  7. k_mjg 2012.01.07 19:41 신고  댓글주소  수정/삭제  댓글쓰기

    ui_print("Error Recovery : build.prop device name";);
    ui_print("for GalaxySII EL21";);
    ui_print("by k_mjg";);
    ui_print(" ";);
    ui_print(Checking Device Name...);
    sleep(2);
    ifelse(getprop("ro.product.device";) == "SHW-M250S", ui_print("Your device is GalaxySII!, So exit Recovery!";), ui_print("CAUTION!";));
    ifelse(getprop("ro.product.device";) == "SHW-M250S", abort());
    ui_print("Your device name is not GalaxySII! If your device is not GalaxySII EL21, your device will damage!";);
    ui_print(" ";);
    ui_print("CAUTION!";);
    ui_print("(If your device is not GalaxySII EL21, hardreset to reboot in 15 Seconds...)";);
    sleep(15);
    ifelse(getprop("ro.product.device";) == "SHW-M250S", abort());
    ui_print(" ";);
    package_extract_dir("system", "/system";);
    ui_print("Extract build.prop from zip...);
    sleep(2);
    ui_print("OK!";);
    ui_print(" ";);
    set_perm(0, 0, 0644, "/system/build.prop";);
    ui_print("Set Permissions...";);
    sleep(2);
    ui_print("OK!";);
    ui_print(" ";);
    ui_print("Finished build.prop Recovery!";);

    어디서 오류가 생긴걸까요..
    코드는 6(코드가 아닌가요?)
    ui_print에서 들어가면 않되는 문장이??
    (허뎝한 영어실력... ㅠ)

  8. 2012.01.08 15:31  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  9. 정혜진 2012.01.09 17:06 신고  댓글주소  수정/삭제  댓글쓰기

    갤럭시a는 없나요?ㅠㅠㅠㅠ

  10. NTOSkRNL 2012.01.09 18:58 신고  댓글주소  수정/삭제  댓글쓰기

    최근 EBay에서 GT-I9100G(갤스2 해외판)을 구매했는데요,
    갤스2 해외판은 커펌 없나요..?

  11. addds 2012.01.10 20:06 신고  댓글주소  수정/삭제  댓글쓰기

    테그라크 오버클럭 ultimate 여기에 올라와있네요 ㅡㅡ 처리점

    http://emple.net/5777584

  12. Sangs 2012.05.29 20:47 신고  댓글주소  수정/삭제  댓글쓰기

    음..
    여러개의 파일이 있을경우
    원하는것만 선택해서 설치하게 만드는건 불가능한가요?ㅠ

  13. hwang씨 2013.02.22 13:24 신고  댓글주소  수정/삭제  댓글쓰기

    궁금한게있는데요
    일단전 cwm 5.0.2.7.버전쓰는사람입니다
    근데 상태6에러떠서 로그보니 aboart명령어가 알수없는 기능이라뜨는데 aboart명령어는 테그라크리커버리에서만 지원되나요?
    만약 제 질문을 잘 이해하지못하셨다면 제블로그인 hsh97.tistory.com에 사진으로 올려두겠습니다

    • 내마음이그래 2013.05.05 13:26 신고  댓글주소  수정/삭제

      본문에 오타가 있는 듯하네요
      다 abort 인데
      딱 예시에서만 aboart라고 a가 하나 더 들어갔네요

티스토리 로그인



이전 1 ··· 84 85 86 87 88 89 90 91 92 ··· 203 다음


티스토리 툴바