안녕하세요.
Bulldozer 입니다.
완전한 눈팅유저가 되어가고 있네요... ^^;
현재 테그라크 원낸드 모드를 사용하고 있는 분들 중에
맛클 LAB 에 설명되어 있는 벼리님의 Tegrak 용 핵펀치를 사용하여
/data/app 을 /system/data/app 로 sim-link 하여 사용하고 계시는 분들에겐 도움이 될듯하여 글을 올립니다.
/system/data/app 의 용량 증대로 인해서
리커버리 모드에서 지원하는 /system 영역의 Back-up 자체가 되지 않습니다.
커널 자체에서 혹시라도 /dev/block/stl9 의 할당 용량보다 큰 용량의 file 이 Restore 과정에서
쓰여지는 것을 방지하기 위하여 백업 자체가 이루어질 수 없도록 커널에서 조건이 걸려있기 때문입니다.
그래서 /system 영역을 백업 및 복구할 수 있는 방법을 찾다가 Scrip 를 이용하여
백업과 복구를 하기 위해 해당 b_bulldozer.sh 라는 스크립트를 만들게 되었네요.
예전에 제가 각 /system, /data, /dbdata, /cache 영역의 백업과 복구를 xcvf 명령을 이용하여
하려고 하다가 미라클_S 님의 도움으로 permission 옵션을 누락시킨 것을 알게되었고,
그때 미라클_S 님께서 해당 명령어와 script 를 올려주신 적이 있었습니다.
맛클 Lab 에서 미라클_S 님의 닉네임으로 검색을 하시면 해당 글을 찾아보실 수 있을겁니다.
미라클_S 님께 다시 한번 감사드립니다. (__)
일단 해당 스크립트는 저 개인의 핸드폰 1대 에서만 테스트를 하였습니다.
백업 후 /system/app 에서 불필요한 어플과 odex 파일을 날리고 리커버리 모드에서
스크립트로 복구를 하고 부팅을 해보니 완전하게 다 복구가 되어있는것을 확인하였네요.
*. 해당 스크립트는 사실 혼자 개인적으로 사용하기 위해 만든것으로
And, Or 의 조건은 전혀 고려되지 않았음을 알려드립니다.
사용 전제조건
1) 원낸드 모드 사용자 (/dev/block/mmcblk0p2 로 /system 이 mount 된 환경이라는 의미임)
2) 루팅이 되어있어야함.
3) busybox 는 version 이 v1.17.1 로 설치되어 있어야함.
*. 기본적으로 adb 를 사용하실 수 있는 분들만 사용하시는게 좋을듯 합니다.
파일 다운로드
해당 b_bulldozer_2.sh 파일을 /sdcard 에 둡니다.
(/sdcard 는 내장 메모리 영역을 의미합니다. = /dev/block/mmcblk0p1)
백업은 부팅이되어있는 상태에서
adb shell 접속 후
# busybox sh /sdcard/b_bulldozer_2.sh
하시고 나면 옵션 중 b 를 선택하시면 /system 영역을 통째로
/sdcard/backup 디렉토리 내에 system.tar.gz 로 압축하여 저장합니다.
복구는 리커버리 모드(테그라크 리커버리 모드 아님)에서
adb shell 접속 후
# mount -t vfat /dev/block/mmcblk0p1 /sdcard
# busybox sh /sdcard/b_bulldozer_2.sh
하시고 나면 옵션 중 r 을 선택하시면 /sdcard/backup 디렉토리 내에 있는
system.tar.gz 를 gunzip 하여 /system 에 새롭게 씁니다.
분명히 위에 붉은 글씨로 적었듯이 개인적으로 사용하려고 만든것이며, 단순히 백업 복구용이기 때문에
and, or 조건이 없습니다. /sdcard/backup 내에 system.tar.gz 파일이 없는 경우 및 원낸드 유저가 아닌경우
및 다른 기타의 조건에 따른 문제 발생은 죄송하지만 전혀 고려되지 않은 아주 아주 심플한 스크립트 입니다.
사용하실 일이 없는것이 가장 좋겠지요.
혹시라도 이 스크립트 때문에 문제가 발생하는 경우가 있지 않았으면 좋겠네요.
그리고 /data, /dbdata, /cache 의 경우는 고려하지 않았습니다. 어차피 테그라크 리커버리 모드에서
하시면 되니까요. (변수 추가하여 내용을 넣어서 만드는것은 어려운 일은 아닙니다.)
마지막으로 스크립트를 올리긴 하지만
사용하실 때는 최악의 상황에서도 복구를 하실 수 있으신 분들에 한해서 사용하시면 좋겠네요.
전 사실 이런 쪽 업을 하는 것이 아닌 단지 전기와 관련한 업무를 하는 회사원에 불과하며,
단순 취미 정도로 공부한 지식만 있다보니, 해당 스크립트로 인해 다른 문제가 발생하면 제가 손써드리기가
힘듭니다.
혹시 실험적으로 사용해보시고 문제가 없으시면 댓글 달아주세요.
제 폰에서만 테스트를 했기 때문입니다.
앞으로 해당 스크립트의 내용을 조금씩 보완해 나갈 계획입니다.
(사실 지금의 스크립트는 조건을 전혀 고려하지 않은 아주 단순한 스크립트에 불과합니다.)
참. 그리고 전 지금은 스피드 모드를 씁니다.
스피드 모드로 몇일 전 kernel 을 바꿨네요.
스크립트 테스트를 위해 외장패치 해제, fs 변경 to rfs, 핵펀치 적용, 원낸드 적용 등의 과정을 거쳐서 테스트
했습니다. 이제 또 글 올리고 나면 다 해제하고 또 스피드 모드로 돌아가야합니다... 후... ^^;
===============================
11년 8월 06일
지금 스크립트도 사용상 문제는 없겠지만, 기왕 올린것이기 때문에
backup file 이 없는 경우 등에 대한 조건 별 if 문을 추가하여 스크립트를 작성하고 있습니다.
업데이트된 스크립트는 주말 동안 스크립트 명령을 추가 보완 및 테스트하여 일요일 오후에 올리도록 하겠습니다.
(__)
11/08/06 12:30
Script update
b_bulldozer.sh => b_bulldozer_2.sh
Change Log Version2
1) /sdcard/backup directory 가 없는 경우 'r' option에 의한 gunzip restore process 가 진행되지 않도록 조건 추가
2) script 명령 실행 후 /root, /system 에 대해 rw -> ro 권한 변경 명령 추가
3) 리커버리 모드에서 /system 을 복구하고 난 후 자동으로 reboot 되도록 명령 추가
4) 기타 오타 수정 등
===============================
즐거운 주말 보내세요.ㅎㅎ