제가 일전에 /cache파티션을 사용할수 있는 부트 이미지를 만들었다고 언급한적이 있었는데, 업로드 요청이 있어서 여기에 올립니다.. 시도를 해 보시는건 자유이고, 거기에 대한 답변도 드리겠습니다만.. 위험할수 있는 과정이라, 복구가 가능하신 분만 시도하십시오.
커넬은 다음 링크에서 받으실수 있습니다. 일단 제 커넬은 Chevy의 OC Kernel과 동일하고 Startup Script만 다릅니다.
http://www.4shared.com/file/242937161/342179c3/update.html
이 커넬이 하는 역할은 간단한데요, cache partition을 사용할수 있도록 해 줍니다.. 구체적으로는 디렉토리가 적어도 771 permission을 가지고 있어야 SuperUser권한이 없는 어플들이 디렉토리를 사용할수 있는데, /cache파티션은 770퍼미션이라, 접근을 못하게 되어 있습니다.. 따라서 부팅을 할때 부트스크립트에 771 퍼미션으로 바꿔주는 코드를 넣었습니다..
그러면 데이터를 /cache파티션으로 옮기는 작업입니다.. adb로 하셔도 되고, Android Terminal로 하셔도 됩니다.. 먼저 /data/data가 90MB이하인지 확인해야 됩니다.. /cache파티션의 크기가 그것밖에는 안되니 말입니다..
1. su
2. cd /data/data
3. busybox du -k
이렇게 하면 숫자가 하나 출력되는데, 단위는 kb입니다.. 90메가 보다 작은지 확인되었으면 /cache로 옮길수 있습니다. 일단 제 커넬로 update를 하십시오. 재부팅하신다면 volume up + camera button으로 들어가서 allow update.zip 하신 다음 apply update.zip인가 하시면 되죠.. 그리고 재부팅이 끝나셨으면, 다시 터미널로 나가서, (재부팅 명령어는 terminal에서 reboot)
1. su
2. cd /
3. busybox ls -al
을 실행하셔서, /cache파티션의 퍼미션이 771인지 확인하십시오. 771이라면 제 커넬로 업데이트가 제대로 된것입니다.
drwxrwx--x 1 1000 2001 2048 Feb 22 12:12 cache
뭐 이런식으로 보입니다. rwxrwx--x가 771이죠.. 그 다음엔
1. cd /cache
2. busybox cp -pr /data/data .
3. busybox chown 1000:1000 /cache/data
4. busybox chmod 771 /cache/data
5. sync
이렇게 하면 모든 데이터가 /cache로 카피는 되었습니다.. 여기서 한번 재부팅을 하신 다음 /cache파티션에 데이터가 남아 있는지 확인하세요.. Pete의 0.6버전이던가에서 재부팅할때마다 /cache파티션의 데이터가 날아가는 문제가 있었습니다.. 제가 업로드한 커넬로 업데이트 했을땐 그런 문제가 없었는데, 혹시나 확인차원에서..
그 다음에, Task killer로 모든 어플을 죽인다음, (혹시나 모르니까) 다시 터미널로 가서
1. su
2. cd /data
3. busybox rm -R data
4. busybox ln -s /cache/data .
그리고 재부팅하면.. 끝입니다.. 확인하고 싶으시면..
1. su
2. busybox df -h
를 실행하시면 각 파티션에서 얼마만큼 사용되었는지 보여주는데, cache파티션이 사용되는걸 보실수 있습니다..
단.. 시도하시기 전에 데이터 전부 백업 잘 하십시오.. ^^
/data/data란 디렉토리는 모든 어플 (시스템 어플 포함)의 데이터를 저장하는 디렉토리입니다.. 이걸 /cache로 옮겼으므로 앞으로 인스톨되는 모든 어플도 /cache파티션을 사용해서 데이터를 저장합니다.. 대신 90MB제한이 있으므로, df -h를 통해서 따로 확인하셔야 합니다..
Advanced Task Killer는 RAM의 용량을 표시합니다.. Data파티션은 HDD에 해당하는 것이구요.. 안드로이드의 RAM은 256MB이지만, 리눅스 커넬과, 램 디스크 이것 저것 용도로 꽤 많이 사용되고, 유저에게는 겨우 100MB정도 주어지는것 같습니다..
저는 System App의 Dalvik Cache를 /system으로 옮겼기 때문에, 현재 233M남아 있습니다.. ^^




감사합니다, 찐돌님. 덕분에 무사히 잘 성공 했습니다. 몇 가지 질문을 더 드릴까 합니다. 이 작업을 한 후, 추가적으로 설치되는 앱의 데이터들은 어찌 되는지요? 모두 다 cache 파티션을 자동으로 사용하게 되는 것입니까? 아니면, 그때그때 옮겨 주어야 하는 것입니까? 그리고, busybox df -h를 통해서 확인하는 data 파티션 메모리 여유와 'advanced task killer'같은 앱에서 나오는 available 메모리 여유가 다르게 나오는데 그 이유가 뭘까요? busybox로 확인할 때는 213.6M available이라고 나오는 데, 테스크킬러 앱에서는 겨우 100M 남짓으로 나옵니다.