본문 바로가기

Ψ 리뷰

옵티머스Q 내장메모리를 사용하자

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


네이버 안드로이더스 카페의 스톤콜드님의 글입니다.



안녕하세요

프로요 올라오고 경로 하나때문에 기존 것을 못쓰네요...
우선 기본 베이스는 http://cafe.naver.com/androiders/494127 입니다.

그리고 수없이 많이 복구 패치 복구 패치를 해봤지만...
역시나 문제가 생길 수 있습니다.

이에 대해서는 Own Risk 입니다.
잘못되면... 공초도 안되는 오즈벽돌 되면서 센터가야 됩니다ㅡ.ㅡ


문제 발생하여 확인 하고 있습니다. 

-> 정확히는 아직 모르겠습니다. 의심가는 부분 우선 수정했습니다.

-> vold로 2개 사용시 문제가 있는 듯합니다.



v4 수정 사항

1. vold를 통한 내장 마운트를 안씁니다. USB 저장 기능 사용시 재부팅된다네요... 제가 테스트해본 바로는 각각 마운트한 경우는 외장은 저장소로 연결가능하고 내장은 script로 연결 가능했습니다. bind 한 경우는 그냥 사용해도 연결만 안되고 문제는 없었습니다. 이중 구조는 모르겠습니다.
2. install-recovery2.sh 약간 수정했습니다. vold 안바라보게... 더불어 mount 직전에 disk 체크한번 하고 마운트합니다.
3. 08OneShotUpdate.cmd 추가로 vold.fstab를 복원하고 install-recovery2.sh를 업데이트 할 수 있도록 해봤습니다. 될지는 몰라요. 기존 사용자 분들은 08OneShotUpdate.cmd 실행해서 확인해 보세요...
4. GScript 에서 쓸 script를 추가했습니다.
5. 마운트 경로 및 파티션을 변경하고 싶으면 install-recovery2.sh 에 정의된 SD2POINT, DEVPATH 를 수정해야 합니다. GScript에서 사용할 Script도 수정해야 합니다.
6. 신기하죠? 전 문제가 없는데 속속 발견이 되고... 진짜 뭔가 이상이 있다는 사실이....

v3 수정 사항

1. install-recovery.sh 완전 재작성...

2. bootcomplete을 보고 부팅 완료 후 추가 mount 작업을 실시

3. 부팅 완료 후 외장 sdcard가 3분 동안 마운트 되지 않을경우 내장 메모리를 마운트함.

4. vold.fstab 를 보는게 아니라 vdc volume list  에 출력 되는 내용을 보도록 수정


v2 수정 사항

1. install-recovery.sh를 최대한 수정 안하기 위해 mount 만을 위한 install-recovery2.sh를 만들고 install-recovery2.sh를 호출하게 수정했습니다.

2. install-recovery.sh, vold.fstab 백업하고 복원시 백업 파일로 덮어 씌웁니다. 패치와 복원 사이에 변경 사항은 무시됩니다. install-recovery.sh 의 백업이 없으면 파일이 삭제되고 vold.fstab의 백업이 없으면 기본 파일로 복원됩니다.

3. /system/etc/vold.fstab의 sdcard2 의 마운트 경로만 수정하면 알아서 생성하게 install-recovery2.sh에서 vold.fstab 참조하여 실행하도록 수정했습니다. 이때 name은 무조건 sdcard2 여야 합니다. 경로만 수정해야 합니다.

4. install-recovery2.sh의 sleep을 무조건 sdcard가 마운트 될때 까지 기다리는게 아니라 우선 20초 대기후 부팅 완료 시까지 대기 하고 이후 5초마다 한번씩 체크 하여 마운트가 되거나 추가 360초가 지나면 알아서 다음 단계가 진행되도록 수정했습니다. (부팅 시간이 모자랄수도 있습니다)

5. 분명 안드로이드 기본값은 /, /system 이 ro 인데... rw 가 아닐 경우 옵큐마이저에 문제가 발생할 수 있다는 제보가 있어서 기본 rw 로 마운트 하게 수정했습니다.

6. / 에 link는 맨 뒤 이름으로 자동 생성하게 했습니다. 즉 /mnt/sdcard2 이면 /sdcard2 link 생성, /mnt/sdcard/Internal 이면 /Internal로 link 생성 합니다. 물론 이미 같은 이름이 있으면 생성하지 않습니다.

7. 백업 파일은 다른 편집기(Root Explorer)와의 중복을 피하기 위해 .ORG로 백업합니다. (기존.bak)

8. 포멧을 제가 컴파일한 busybox mkfs.vfat 으로 하는게 아니라 옵큐 내장 newfs_msdos 로 실행하게 수정하였고 포멧후 fsck_msdos로 체크하도록 수정했습니다. (제가 컴파일한 busybox를 못믿겠습니다ㅡ.ㅡ)



--기존 파티셔닝 하신 분

기존 파티션닝을 하신 분들은 첨부파일 data\vold.fstab data\install-recovery2.sh,/etc/install-recovery.sh  세 파일을 조금만 수정하면 됩니다.

install-recovery2.sh 는 최대한 자동으로 처리하게 하였기 때문에... 거의 수정하게 없을것 같고...

vold.fstab 는 마운트 포인트와 파티션 번호만 수정하면됩니다.

옵큐 내장 install-recovery.sh 에는 맨 아래 /system/sbin/sh /system/etc/install-recovery2.sh 를 통해 마운트 스크립트를 실행하게 하면 됩니다.

수정한 3개 파일은 /etc에 위치해야 합니다.



커스터마이징

1. /sysmem/etc/vold.fstab 의 sdcard2로 이름을 정해 놓으면 알아서 마운트합니다.

즉 vold.fstab의

dev_mount sdcard2 /mnt/sdcard2 4 /devices/platform/msm_sdcc.1/mmc_host

밑줄친 2부분만 수정 또는 추가해 놓으면 알아서 설정합니다.

dev_mount sdcard2 /mnt/sdcard/Internal 4 /devices/platform/msm_sdcc.1/mmc_host 

이리해 놓으면 2중 구조 가능합니다.

2. bind 혹은 Exernal/Internal 이중구조(Internal/External은 아님)를 쓰지 않는 경우 install-recovery2.sh 의 27,28,38 52,61번째 줄의 맨앞 #만 삭제하면 wait 처리 안합니다. bind와 External/Internal 구조를 위한 wait 입니다.

3. install-recovery2.sh의 65~77까지 주석을 삭제하면 동일한 디렉토리가 내장 외장에 있을 경우 자동 bind 됩니다. LOST.DIR과 .android_secure만 무시됩니다.



이렇게 해도 문제가 있으면 바로 삭제합니다. 다른 분들이라면 더 잘짜놓을수도 있지만... 전 이제 힘들어서....



이 글은 기존 글이 너무 복잡하고... 초보자가 보기 힘들어서 최대한 쉽게 만들기 위해 어려운 설명 다 뺐습니다.
이건 기존 할당된 파티션은 그대로 두고 남는 공간을 살리는 것이고 이에 대해서만 설계 되었습니다.
따라서 복잡한 것을 원하시면 기존 글 대로 파티셔닝 부터 해야 됩니다.

그리고 기존 파티셔닝된걸 쓰고 싶으시면 위의 --기존 파티셔닝 하신 분, 커스터마이징 부분을 참조하시면 됩니다.



각설하고...
압축파일을 풀면 다음 파일이 있습니다.

01AdbShell.cmd
02SystemRemount.cmd
03BusyboxInstall.cmd
04DicBackup.cmd
05OneShotPatch-1.cmd
05OneShotPatch-2.cmd
05OneShotPatch-Check.cmd
06OneShotRestore.cmd
06PartitionCheck.cmd
07OneShotRestore.cmd
README.txt
adb\adb.exe
adb\AdbWinApi.dll
adb\AdbWinUsbApi.dll
data\busybox
data\install-recovery.sh
data\lu2300.mbr
data\lu2300_patch.mbr
data\vold.fstab
data\vold_patch.fstab
GScript\fsck.sh
GScript\MountExternalStorage.sh
GScript\MountInternalStorage.sh
GScript\Unmount.sh
scripts\Backup.sh
scripts\BusyboxInstall.sh
scripts\OneShotPatch-1.sh
scripts\OneShotPatch-2.sh
scripts\OneShotRestore.sh

많아 보여도 전보다 확 줄었습니다. 실제 실행하는건 cmd 파일들로 8개...
패치시 필수는 2개 정도 실행하면 됩니다... 심지어 복구는 1개입니다.
루트에 있는 cmd는 윈도우에서 실행하는 배치 파일이고..
adb는 Android Debug Bridge 라고 모든 작업을 담당하는 코어라고 보시면 됩니다.
data는 패치에 필요한 데이터가 들어있습니다.
scripts는 안드로이드 폰안에서 실행되는 스크립트 모음입니다.

파티셔닝을 한번이라도 하셨으면 불가이고... (MBR 에러나면서 진행안됩니다.MBR이 공장 초기상태와 일치하는지 체크하고 진행하지 않습니다.)
파티션 작업을 이미해서 4번에 추가하셨는데 마운트가 안된다면 5번에서 진행하면 됩니다.

01AdbShell.cmd, 02SystemRemount.cmd, 06PartitionCheck.cmd, README.txt는 편의성을 위해서 만들어 놓은것이고...
실제 쓰이지 않습니다. 필요시 사용하면 됩니다.




1. 준비
우선 당연히 루팅이 되어 있어야 합니다.
그리고 설정 - 애플리케이션 - 개발 - USB 디버깅 & 켜진 상태로 유지를 체크하시길 강력히 권장합니다.
안그럼 계속 화면 켜야 됩니다.




그리고 패치 하는 중에 너무 많이 묻기 때문에 SuperUser 권한을 물을 때 Remeber를 해제 하시길 강력히 권장합니다.



2. busybox 설치 (옵션)파티션 만드는 동안은 필요없지만 마운트시 쓰입니다.
busybox 가 없으면... 마운트가 안됩니다. 이미 설치 되어 있으신 분은 그냥 Skip 하셔도 무방합니다.
잘모르시겠으면 설치하는걸 권장합니다.
03BusyboxInstall.cmd 더블클릭하면 됩니다.
다음과 같이 나오면 오류 없이 설치된것입니다.


3. dic, lgtapps 백업 (옵션)
굳이 안해도 되지만 백업하고 싶으신분은 하세요...
sdcard에 용량이 충분해야 하고...
시간 겁나 오래 걸립니다.
04DicBackup.cmd 실행하면 됩니다.



4. 파티션 생성 (필수)
파티션은 기존에 구성된 파티션 테이블을 씁니다.
제꺼요ㅡ.ㅡ
기본 옵큐의 파티션 3개에 4번 파티션을 추가한것입니다.
용량은 3.5기가 정도입니다. 실제 /data 파티션 크기 조정하면 더 크게 확보 가능하지만... 초보자분들이 하기 힘들고 오즈 벽돌됩니다.
굳이 수동으로 하고 싶으시면 http://cafe.naver.com/androiders/494127 참고 진행하세요.
쉽게 하는 방법은
05OneShotPatch-1.cmd 더블클릭하시면 됩니다.
다음과 같이 나오면 오류 없이 설치된것입니다.

한번 재부팅이 필요합니다.

재부팅이 필요한 이유는 이미 /dev/block/mmcblk0 이라는 장치는 /data /dic /lgtapps 에서 마운트되어 쓰고 있기 때문에 실시간 적용이 안됩니다. 원래는 /data /dic /lgtapps 를 모두 umount 하고 작업을 해야 하는데 /data umount 가 안되므로 재부팅해줘야 합니다.


5. 포멧 (필수)
포멧은 4번에서 문제없으면... 문제가 없으면... 그냥 하면 됩니다...
05OneShotPatch-2.cmd 더블클릭하시면 됩니다.
다음과 같이 나오면 오류 없이 설치된것입니다.




한번 재부팅이 필요합니다.
모든 작업은 끝났습니다.
재부팅하고 확인해야 됩니다.
재부팅이유는 포멧까지만 했고 실제 부팅하면서 마운트가 정상적으로 되는지 확인해야 합니다.

바로 마운트도 가능합니다만 스크립트 정상 작동 확인겸 재부팅합니다.




6. 확인 (옵션)5번까지 문제가 없으면 확인해 보면 됩니다.
05OneShotPatch-Check.cmd 더블클릭하시면 됩니다.




7. 응용 (옵션)
지금까지의 작업은 기본 뼈대 입니다.
다양한 응용이 가능합니다.
/mnt/sdcard에 외장 /mnt/sdcard2에 내장, /mnt/sdcard/External, /mnt/sdcad/Internal 등... 이중 구조 등에 대한 응용이 가능합니다.
이때는 /system/etc/install-recovery.sh 와 /system/etc/vold.fstab를 수정해 주면 됩니다.
이때는 /system/etc/vold.fstab의 마운트 경로만 수정해 주면 됩니다.


또한 내장도 마운트를 하고 싶으시면 제가 올린 글을 참고로 GScript Lite를 이용하시면 됩니다.
http://cafe.naver.com/androiders/733898
많은 응용이 가능하기에... 설명이 불가능합니다.



8. 복구 (옵션)
원래 대로 돌리고 싶으시면 사용하세요
06OneShotRestore.cmd  07OneShotRestore.cmd 더블클릭하시면 됩니다.
다음과 같이 나오면 오류 없이 설치된것입니다.




9. 마무리
나름 많이 제 폰에다가 할당 삭제를 반복했습니다.
저는 이상없이 되었지만... 다른 분들께 문제가 될수 있습니다.
문제가 아주 심각할 수 있습니다...

따라서 자신이 있으신분은 해보세요.
잘된다면 공초없습니다. 그냥 파티션만 깔끔하게 추가됩니다.


솔직히 올리기 겁이 납니다.
나름대로 체크하는거 많이 넣었고 최대한 오류 없이 진행하고 간단하게 하기 위해서 노력은 했지만...
어디서 문제가 생길지 모르겠네요....

정말 용자분만 하세요.

advanced version은... 따로 안올립니다.
이거만 봐도 쉽게 알수 있고 지난번 글만 보셔도 두개 조합하시면 쉽게 알수 있죠.

기존글과 이번 글이 다른건 단하나입니다.
파티션 생성만 다를뿐... 나머지는 동일합니다.


네이버 안드로이더스 카페의 스톤콜드님의 글입니다.