안드로이드는 크게 System 파티션과, 캐쉬, 그리고 데이타 파티션이 있습니다.. 이 중에서 System 파티션은 커넬과 기본 어플이 깔려져 있습니다.. Read only로 설정되어 있죠..캐쉬는 캐쉬가 들어가는것 같고..
데이터 파티션에 어플이 깔립니다.. 이 파티션만이 Read/Write이기 때문에, 기본 어플의 Dalvik 캐쉬 파일도 당연히 이 파티션에 깔립니다.. 다라서 어플을 하나도 깔지 않은 상태에서도 데이터 파티션의 크기는 계속 줄어듭니다.. 드로이드는 이 파티션이 256MB입니다..
일단 루팅을 한 폰이라면, 데이터 파티션에서 시스템 파티션으로 어플을 옮겨서, 몇십 메가 정도 데이터 파티션의 크기를 확보할수 있는데요, 다음의 과정이 필요합니다..
1. System파티션 퍼미션 변경하기
mount -o rw,remount -t yaffs2 /dev/block/mtdblock4 /system
2. 어플을 카피하기
cd /data/app
mv <file name>.apk /system/app
3. System파티션을 read only로 변경하기
mount -o ro,remount -t yaffs2 /dev/block/mtdblock4 /system
4. reboot
reboot
그렇게 하시면 됩니다.. 주의하실점은 zip확장자의 파일은 못 옮깁니다.. 회색님의 colordict가 zip확장자로 되어 있더군요.. 몇개정도 어플이 zip인데, 옮기면 동작 안합니다..
여하튼, 덩치큰 어플들을 옮기고 나면, 데이터 파티션의 용량을 조금 더 늘릴수 있습니다..
참 그리고, 위와 같이 하면요.
만약 나중에 OS 업그레이드 할 때, System 파티션이 부족해서 업그레이드 실패할 수 있는 문제가 생길 수도 있을 듯합니다.
시도를 해 보았는데 파일을 mv로 옮기려고 하면 failed on '/파일이름.apk' - Cross-device link 라고 에러메시지가 나옵니다. 제가 뭘 빼먹었을까요?
그동안 엄두도 안 내고 있던 구글 어스를 조금전에 받아서 깔았습니다. 물론 깔고나서 다시 또 /system/app으로 옮겨 주었구요. 아이들 상태에서 110MB, 구글 어스 실행중에 61MB 정도 내장 메모리가 나오는군요. 이 정도면 구글 어스도 쓸 만할 듯 합니다.....ㅎㅎㅎ
휴....글자 오타있다고 하시고 뭐를 이렇게 저렇게해야 한다고 하시는데...
통 먼소린지 ㅋ ^0^
시간 나실때 제대로 정리해서 새로 글을 작성해주시면 고맙겠습니다.~~ 꾸뻑
아...참 궁굼한게요.... 내장 메모리 그러니까 시스템에 깔아버리면 나중에 프로그램이 업데이트 해야 할경우 어디로 설치가 되나요??
이렇게 되면 프로그램들이 업데이트 되는걸 못할것 같은데요...아닌가요? 기본적으로 업데이트 되는 프로그램이 어디 어디에 설치되는게 경로가 있지 않을까요?
댓글 달면서 잘못된건 다 고쳤습니다.. 본문대로 따라하시면 됩니다..
OTA업데이트는 cache파티션으로 받는다고 합니다.. 그걸 풀어서 시스템 파티션으로 옮기는 건데, 원래 50메가쯤 남아 있습니다. 그걸 조금 땡겨 사용하는거죠.. 사실 업데이트 하기전에 /data/app파티션으로 옮기는게 맞습니다.. 해킹 롬중에, keep app옵션이, 시스템 파티션하고 데이터만 날리는 겁니다.. /data/app는 유지하는거죠.. 다시 까는 수고를 줄이려면 /data/app으로 옮기는게 맞습니다..
이 방법이 단점이 전혀 없는 방법은 아닙니다.. 대신, 용량이 부족한 사람들의 경우, 약간의 도움을 줄수 있는거죠.. 예를 들면 구글 어쓰처럼 말입니다..




안드로이드가
/data/app/*.apk
하고,
/system/app/*apk
를 찾게 되어 있나요?