본문 바로가기
안드로이드/팁&노하우

[루트권한 필요] 갤럭시S Stall/Lagging fix using a MicroSD card

by 하양이엔젤 2010. 7. 23.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

이 방법은 MoDaCo 의 mimocan 이라는 분이 만든 커널과 이론을 기반으로 합니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
 
루트권한이 필요합니다. 또한 Busybox가 설치되어 있어야 합니다. (마켓에서 검색하셔도 나옵니다.)

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
 
이 방법의 이점은 어플저장 공간을 여러분의 마음대로 정할 수 있다는 것 입니다.

간단한 원리를 알려드리자면.
 
원래 어플을 설치하면 /data/data에 데이터가 저장이 됩니다. 우리는 이를 MicroSD카드에 위치한 /disk/data로 바꾸어 줄 예정입니다. 

원래의 공간에 비해 상대적으로 더 빠른 곳을 찾아서 링크를 걸어주는 것이죠.

왜 빠르냐고요?
 
저도 모릅니다.
 
 
★주의사항★ : 제가 만든 커널은 93.6% 완벽합니다. 여러분은 이 방법을 적용함으로써
 
1. 무한 재부팅의 루프에 빠질 수 있습니다.
(실제로 테스트하던 분들 중 한 분이 겪었습니다만, 고쳤습니다. 지금 정상작동 한답니다.)
 
2. 검은 화면에서 기기가 먹통이 될 수 있습니다.
 
3. 프로그램 강제종료의 향연을 목격할 수 있습니다. 
 
따라서 모든 분들께 기기 안의 모든 자료를 백업하실 것과,
 
언제든지 순정 펌웨어를 적용할 수 있는 물질적/정신적 준비를 하실 것을 강하게 권유합니다.
 
또한, 과도한 흥분을 가라앉히시고 정신줄을 꽉 잡으시길 바랍니다.

최적의 상태는 공장/캐쉬 초기화 & 순정롬 상태입니다.
 
이 방법은 기본적으로 초기화는 되지 않습니다.

 
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

준비사항.

1. MicroSD 카드 파티션 나누기. (방법은 따로 올리지 않겠습니다.)
 
아래를 명심하셔야 합니다.
 
첫 번째 부분은 FAT32      --------> 여러분이 MicroSD카드로 활용하시는 영역입니다.

두 번째 부분은 Ext3 혹은 Ext4 로 만드세요.    ------>  어플 데이터 저장영역입니다.

또한 둘 다 PRIMARY 파티션이어야 합니다.


반드시 첫 부분이 FAT32, 두 번째가 Ext3/4 여야 합니다. 그렇지 않으면 동작하지 않습니다.

참고로 저는 Sandisk 8GB MicroSD Class2 를 사용중이고
 
첫 번째 :  6.2GB [FAT32]
 
두 번째 :  1.0GB [Ext4]
 
이렇게 나눴습니다. 이건 여러분께 달렸습니다.
 
참고로 Ext4가 좀 더 나은 성능을 보여주는 것 같습니다. (하지만 Ext3가 더 안정적이라고 하더군요.)
 
 
 
 
 
2. datadb 파티션을 이용한 Stall/Lagging fix 원상복구하기. (100MB 저장공간을 이용한 방법을 말합니다.)
 
이 방법을 적용하신 분들께서는 원 상태로 되돌릴 것을 권유합니다.
 
그렇지 않으면 어떠한 문제가 발생할 지 알 수 없습니다.
 
그리고.. 이 복구과정에서도 문제가 발생할 수가 있습니다. (......) 그러므로 백업 필수!!
 
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

다음 과정은 제가 첨부한 파일을 기기에 적용하는 것 입니다.
 
첨부 파일은 2 개가 있습니다.
 
Fin_Liliniser_Ext3.tar     ----->   다운로드
 
Fin_Liliniser_Ext4.tar     ----->   다운로드
 
네. 각자의 파티션에 맞는 파일을 다운받으시면 되겠습니다. (혼동하지 마세요.)
 
이는 루팅을 하는 과정과 정확하게 일치합니다. 간단히 언급하자면
 
1. 오딘(Odin)을 켠다.
2. 갤럭시S를 끈 상태에서 [홈키+전원키]를 이용하여 다운로딩모드로 진입한 후 컴퓨터에 연결. (COM x 포트 연결 확인 필수)
3. 다른 것들은 일체 건드리지 않고 오직 PDA부분을 클릭하여 제가 첨부한 ~~~~.tar 파일을 선택합니다
4. Start
5. 소요시간 : 3초
 
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
 
위의 과정이 끝나면 기기는 자동으로 리부팅을 합니다.
 
여기서 1차 관문... 정상적으로 켜지고 안드로이드가 제대로 작동한다면 여러분은 목적지에 거의 다다르신 겁니다.
 
필수로 확인하고 넘어가야 할 부분이 몇 가지 있습니다.
 
1. 커널 버전 확인하기
 
설정>휴대폰 정보에 들어가보시면 커널 버전이 나옵니다.
------------------------
2.6.29
root@ubuntu #숫자
------------------------
이렇게 나오면 정상입니다.
 


 
 
 
 
 
 
2. 터미널 어플리케이션을 실행하셔서 아래와 같이 입력합니다.
 
busybox df -h
 
그러면 여러분의 기기의 파티션에 대한 정보가 나옵니다.
 
여기서 "/dev/block/mmcblk1p2"가 반드시 있어야 합니다.
 
또한 /disk에 잘 들어가 있나 확인합니다.
 
이는 여러분이 설정한 Ext3 /4 파티션입니다. (덤으로 용량도 맞나 확인해 보세요.)
 


 
 
 
위 과정중에 하나라도 안맞는다면 처음으로 돌아가서 다시 하셔야 합니다. (라고 말하지만 그럴 리가 없습니다. -_-;)
 
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 
이제 스크립트를 입력하는 일만 남았습니다.
 
이를 위해 갤럭시S에서 USB디버깅 모드에 체크를 하신후 컴퓨터에 연결합니다.
 
 
모두 ADB 있으시죠? 없으시다면 제 다른 글을 찾아보시면 첨부파일에 있습니다.
 
 
윈도우에서 : 시작>실행>cmd 입력 -------> 명령프롬프트에서 : adb폴더로 이동합니다.
 
cd c:\adb        (제 컴퓨터에는 adb폴더가 c:\ 에 위치해 있습니다.)
 
이 상태에서
 
adb-windows shell
 
$su

#busybox cp -rp /data/data /disk/             -------->>   /  는 슬래쉬 입니다. 역슬래쉬 아닙니다.
 
#busybox mv /data/data /data/data.bak
#busybox ln -s /disk/data /data/data           ---------->   in(아이엔) 아닙니다. ln(엘엔) 입니다.
 
#reboot
 
기기가 재부팅됩니다.
 
여기서 2차 관문..... 정상적으로 켜지고 안드로이드가 제대로 작동한다면
 
끝입니다.
 
 
 
 
※※ 만약 구글 마켓에서 용량이 부족하다면서 어플 다운/설치가 안되거나 기타 마켓문제가 발생하신다면
아래와 같이 입력하시면 됩니다.
 
adb-windows shell
$su
#busybox mv /system/media /disk/
#busybox ln -s /disk/media /system/media
#reboot
 
 
 
 
 
## 되돌리기.
기기를 이 방법을 적용하기 이전으로 되돌리시려면 일단 adb-shell로 기기에 접속하셔야 합니다.
 
기기 내 터미널에서 하지 마시고 반드시 ADB를 이용해서 하세요.
 
아래와 같은 명령어를 써주시면 원상태로 되돌아 갑니다.
 
adb-windows shell
 
$su
 
#busybox rm /data/data
 
#busybox mv /disk/data /data/data 
 
#reboot
 
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
 
네. 생각보다 간단합니다.
 
이 방법이 절대적인 기기 성능의 향상을 가져다 주는 것은 아닐 겁니다.
 
전 이렇게 생각합니다.
 
압도적인 성능 향상보다는, "더이상의 버벅거림은 없다."라는 것에 의의를 두고 싶습니다.
 
 
저는 이를 통해서
 
1. 만족스러운 벤치마크 결과를 얻었습니다. (흐흐..)
 
2. 실제로 버벅거림을 거의 찾아볼 수 없게 되었습니다.
 
 
 
이 방법은 몇몇 분들께는 오히려 독이 될 수도 있습니다.
 
외국의 한 유저는 이 방법을 사용한 지 하루 지난 후 엄청난 버벅거림을 느꼈다고 합니다. (왜..?-_-)
 
반면에 몇몇 분들은 엄청난 성능의 향상을 체감하실 수 있겠죠.
 
모두 여러분의 몫입니다.
 
즐기세요!
 
 
추가정보:
 
1. MicroSD카드를 빼고싶을 땐 어떻게 할까요?
 
정답은...
 
그냥 빼시면 됩니다. 하지만 왠만하면 기기를 끄고 빼시는 것이 좋습니다.
 
왜냐면, 설치된 어플들의 데이터가 MicroSD카드에 저장되어 있기 때문에 기기가 켜진 상태에서 카드를 빼시면 강제종료 크리를 맞으실 수 있습니다.
 
그리고 다른 MicroSD카드로 교체하고 싶으신 분들도... 기존 카드의 모든 내용을 새 카드에 복사해서 넣으시면 됩니다.
 
그 전에 파티셔닝 하는 것은 잊으시면 안되겠죠!!
 
2. 커널 적용 후 터미널에서 "su"가 안먹힐 때.
 
/sbin/su 파일을 과감히 삭제하시면 되겠습니다.
 
3. ADB 없이 기기 안에서 터미널 에뮬레이터를 실행해서 입력하셔도 됩니다.
 
4. 삼성 발적화 얘기는 하지 않았으면 좋겠습니다.
 
갤럭시S는 보시다시피 순정상태에서도 빠른편에 속하는 기기입니다.
 
5. busybox 로 시작하는 스크립트를 입력하고 나서 엔터를 치시면 아래와 같이 나오는 게 정상입니다.
ex1) 기기내의 터미널에서 입력할 때
#busybox cp -rp /data/data /disk/ 
#
ex2) adb-shell을 이용해 기기에 접속했을 때
#busybox cp -rp /data/data /disk/ 
# busybox cp -rp /data/data /disk/ 
 
6. 무한재부팅 루프에 걸리시는 분들 중 대부분은 파티션 포맷이 제대로 되지 않아서 입니다.
 
갤럭시S에 MicroSD를 꼽고 포맷하지 마시고, 리더기나 기타 다른 기기들을 이용해서 포맷하세요.
 
참고로 전 제 전자사전에 넣고 포맷했습니다. (아이x버 x플...)
 
7. Ext3/4 파티션을 2GB 이상 할당했을 시 마켓문제가 일어난다고 합니다.
 
원래 기기에서 데이터영역으로 인식하는 부분이 1.84GB이니 문제가 일어날만 하군요.
 
되도록이면 1.84GB 미만으로 할당하도록 하시는 것이 좋겠습니다.
 
8. 커널파일 다시 올렸습니다.
 
su 파일이 자꾸 되살아나는 것을 없앴습니다.












PS. 출처 http://matpclub.com/board/index.html?id=tipn&no=28


댓글