NEO™
11.02.15
조회 수 5598
추천 수 2
댓글 8

본 패치는 테그라크 커널 이용자만 가능합니다.



보통 갤럭시K는 외장패치를 하지 않으시죠 ^^


하지만 어플을 많이 설치하다보면 원낸드 영역이 모자라게 됩니다.


그래서 /data/app 만 외장메모리로 옮겨보았습니다.


갤럭시S는 핵펀치 어플이 있지만, 갤럭시K에서는 동작하지 않아서 적어보았습니다.



비록 원낸드 영역보다는 느리지만, 용량때문에 외장메모리에 설치해야만 하는 어플까지 ext4 영역에 설치할 수 있습니다.


장단점이 있으니 재미삼아 해보실분만 해보시기 바랍니다.



모든 작업은 adb shell 에서 이루어집니다.


(adb 이용법은 맛클에 있으므로 따로 설명드리지 않겠습니다.)



명령어 입력하실때는 굵은 글씨로 된것만 입력하시면 됩니다.




1. SD카드 백업



파티션 작업으로 인하여 SD카드의 내용이 모두 지워지므로 SD카드의 내용을 전부 컴퓨터의 하드디스크에 복사해 놓으세요.


다시 복사하면 원래대로 복구됩니다.



1. USB케이블을 연결한 후에, 퀵패널를 내려서 "USB 연결됨" 을 누르세요.


2. "USB 이동식 디스크 사용" 을 누르세요.


3. 컴퓨터에 이동식 디스크가 뜨면, 모든 내용을 적당한곳에 복사해놓으시기 바랍니다.



꼭 이렇게 하셔야합니다. 외장에 설치한 어플들은 .android_secure 폴더에 저장되는데, 폰상에서는 보이지 않습니다.



※ MicroSD 리더기가 있으신분들은 메모리를 빼서 리더기에 꼽아서 하셔도 됩니다.




2. busybox 설치



우선 외장메모리를 두개의 파티션으로 나누어 ext4로 포맷을 하기위해 첨부파일의 busybox가 필요합니다.


(기존 마켓에서 설치하는 busybox는 fdisk가 포함되어있지 않습니다.)



※ 본 파일은 슈퍼원클릭 1.6.5 버전에 들어있는것입니다.



busybox를 adb폴더로 복사합니다.



c:adb> adb shell mount -o remount rw /


c:adb> adb shell mount -o remount rw /system : 위 두줄은 생략하셔도 됩니다만, 만일을 위해서^^


c:adb> adb push busybox /system/bin/


c:adb> adb shell chmod 755 /system/bin/busybox



이제 설치가 완료되었습니다.





3. SD카드 마운트 해제



환경설정 -> SD카드 및 휴대폰 메모리 -> SD카드 마운트 해제 를 누르세요.





4. 파티션 나누기



파라곤? 같은 파티션 프로그램 있으신 분들은 그걸로 하셔도 됩니다.



c:adb> adb shell


# busybox fdisk /dev/block/mmcblk0


busybox fdisk /dev/block/mmcblk0


The number of cylinders for this disk is set to 1939.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)


Command (m for help):



"d"를 입력하세요


Command (m for help): d
d
Selected partition 1


이제 파티션이 삭제되었습니다.


"p" 를 입력해보시면 기존의 파티션이 삭제되어 아무것도 나오지 않습니다.



Command (m for help): p
p


Disk /dev/block/mmcblk0: 16.0 GB, 16012804096 bytes
256 heads, 63 sectors/track, 1939 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes


Device Boot Start End Blocks Id System


Command (m for help):



Command (m for help): "n"을 입력합니다.


Command action
e extended
p primary partition (1-4) "p"를 입력합니다.


Partition number (1-4): "1"을 입력합니다.


First cylinder (1-1939, default 1): "1"을 입력합니다.



그러면 아래처럼 나옵니다.


Last cylinder or +size or +sizeM or +sizeK (1-1939, default 1939): +xxxxxM



이 부분은 첫번째 파티션의 크기를 지정하는 부분입니다.


용량은 본인이 적당한 만큼 하시면 됩니다. +1024M=약 1G 입니다.


두번째 파티션은 1~2기가 사이가 적당하므로, 그정도 용량을 제외하고 나머지를 입력하세요.


(16기가 SD 사용자의 경우 +14000M 정도 해주시면 1G정도가 남게 됩니다.)


보통 16G SD카드라 할지라도 실제 용량은 16G가 아닌, 14.x 기가 입니다.


그래서 첫번째 파티션을 15G로 잡아버리면 두번째 파티션의 용량이 너무 적어지니 참고하세요.



이제 첫번째 파티션을 FAT32로 바꾸어야 합니다.



Command (m for help): "t"를 입력합니다.
t
Selected partition 1
Hex code (type L to list codes): "c"를 입력합니다.
c
Changed system type of partition 1 to c (Win95 FAT32 (LBA))



이제 첫번째 파티션이 FAT32로 변경되었습니다.


이제 두번째 파티션을 만듭니다.



Command (m for help): "n"을 입력합니다.
n
Command action
e extended
p primary partition (1-4)


"p"를 입력합니다.
p
Partition number (1-4): "2"를 입력합니다.
2
First cylinder (1697-1939, default 1697): [엔터]를 칩니다.
Using default value 1697
Last cylinder or +size or +sizeM or +sizeK (1697-1939, default 1939): [엔터]를 칩니다.
Using default value 1939



이제 두번째 파티션도 만들었습니다.



"p" 를 입력하시면 파티션이 두개로 생긴것을 보실 수 있습니다.


Command (m for help): p
p


Disk /dev/block/mmcblk0: 16.0 GB, 16012804096 bytes
256 heads, 63 sectors/track, 1939 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes


Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 1 1830 14757088+ c Win95 FAT32 (LBA) : 첫번째 파티션 (약 14G)
/dev/block/mmcblk0p2 1831 1939 878976 83 Linux : 두번째 파티션 (약 850M)



Command (m for help): "w"를 눌러서 저장합니다.



각 파티션의 용량은 본인이 적당하게 조정하시기 바랍니다.




5. 파티션 포맷



포맷한 한 결과는 안적습니다 ^^ 양해해주세요~ ^^



첫번째 파티션을 FAT32로 포맷합니다.



# busybox mkfs.vfat /dev/block/mmcblk0p1



두번째 파티션을 ext4로 포맷합니다.


본인은 테그라크에 포함된 파일을 이용하였습니다.



# /tegrak/bin/mkfs.ext4 /dev/block/mmcblk0p2



이제 포맷이 완료되었습니다.




6. /data/app 를 외장메모리로 복사



두 파티션을 마운트 합니다.


/mnt/sd 를 두번째 파티션으로 정했으며, /mnt/sd/app 폴더를 어플이 설치될 공간으로 사용합니다.



# mkdir /mnt/sd


# mkdir /mnt/sd/app


# mount -t ext4 /dev/block/mmcblk0p2 /mnt/sd


# busybox cp /data/app/*.* /mnt/sd/app/



이제 복사가 완료되었습니다.




7. init.d 스크립트 설치



이제 부팅시마다 바인드를 하기 위하여 스크립트를 설치합니다.


첨부파일의 S99_NEO.sh 파일을 /etc/init.d 에 복사하시면 됩니다.



c:adb> adb push S99_NEO.sh /etc/init.d/S99_NEO.sh



파일명은.....ㅋ 원하시는거로 바꾸셔도 됩니다. ^^


S99xxxxxxx.sh 로 바꾸시면 됩니다.



※ 테그라크 커널만 설치하시고 랙픽스를 하지 않으신 분들은 (/data 파티션을 ext4로 변환하지 않으신 분들은)


S99_NEO_2.sh 를 넣으셔야 합니다.




8. 재부팅



재부팅 하시면 설치가 완료됩니다.



/mnt/sdcard = /sdcard : SD카드 첫번째 파티션 (FAT32)


/mnt/sd : SD카드 두번째 파티션 (ext4)


/mnt/data : 원래의 data 파티션. 나중에 복구하기 쉽도록 마운트 해놓았습니다.



실제로 /data/app 가 SD카드의 두번째 영역이며,


/mnt/data/app 폴더로 들어가시면 원래 /data 파티션의 app가 그대로 있습니다.



본인은 SD카드가 제거되어도 사용할 수 있도록 (후에 펌웨어 업그레이드를 위해...)


런처, 위젯, 복구에 필요한 루트익스플로러 등 몇가지의 어플만 /mnt/data/app 폴더에 남겨놓고 지웠습니다.


공간이 여유있으신 분들은 그냥 두셔도 됩니다.




9 SD카드 복구



USB 이동식 디스크 연결하신 후에


컴퓨터에 백업해놓으신 SD카드의 내용을 /sdcard/ 로 전부 복사합니다.





10. 외장패치 확인



재부팅 하신후, adb에서 mount를 입력해보시면 아래처럼 외장메모리가 /data/app로 바인드 되있는걸 보실 수 있습니다.


/dev/block/stl10을 /mnt/data로 마운트 한것은, 동기화를 편하게 할 수 있도록 하기 위해서 입니다.


필요없으 분은 .sh 파일 수정하셔서 한줄 지우시면 됩니다.



# mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
/dev/block/stl6 /mnt/.lfs j4fs rw,relatime 0 0
/dev/block/stl9 /system ext4 ro,noatime,barrier=1,nobh,data=writeback 0 0
/dev/block/stl10 /data ext4 rw,nosuid,nodev,noatime,barrier=1,nobh,data=writeback,noauto_da_alloc 0 0
/dev/block/stl11 /cache ext4 rw,nosuid,nodev,noatime,barrier=1,nobh,data=writeback,noauto_da_alloc 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/stl3 /efs rfs rw,nosuid,nodev,relatime,vfat,llw,check=no,gid/uid/rwx,iocharset=utf8 0 0
/dev/block/mmcblk0p2 /mnt/sd ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/stl10 /mnt/data ext4 rw,nosuid,nodev,noatime,barrier=1,nobh,data=writeback,noauto_da_alloc 0 0
/dev/block/mmcblk0p2 /data/app ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0


/dev/block/vold/179:1 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:1 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0


tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0 859-1,shortname=mixed,utf8,errors=remount-ro 0 0






※ 외장패치 해제



1. /data 파티션의 여유공간과 /data/app에 설치된 어플의 용량을 확인합니다.


2. 어플을 많이 설치해서 /data 파티션의 여유공간을 넘어선 경우 어플들을 외장메모리로 이동하거나 어플을 삭제해서 /data 파티션에 다 들어갈 수 있도록 용량을 조절합니다.


3. /mnt/data/app 폴더 안의 모든 apk파일을 삭제.


4. /data/app 폴더의 모든 apk 파일을 /mnt/data/app 로 복사.


5. 재부팅


6. 부팅시 3초 내에 홈키를 눌러서 테그라크 리커버리 모드로 들어가신후 "wipe inid.d" 를 선택하시면 됩니다.



※ 외장패치 후 새로 설치한 어플이 없을경우는 그냥 init.d만 날리고 재부팅하시면 됩니다.



파일 복사는 루트 익스플로러로 하셔도 되고, adb로 하셔도 됩니다.


adb 에서 하실경우...



# busybox rm /mnt/data/app/*.*


# busybox cp /data/app/*.* /mnt/data/app/



이렇게 하시면 됩니다.




펌웨어 업그레이드시, 외장패치 해제 하시고, 테그라크 랙픽스 해제 하신 후에 하시기 바랍니다.


순정펌웨어는 ext4 파티션을 인식하지 못하기때문에 테그라크 랙픽스가 꼭 필요합니다.







꼬리..



요청하신분이 계셔서 대충 적어보았는데요 ^^....


솔직히 갤럭시K는 외장패치로 얻을 수 있는 잇점이 없습니다.



어플 설치 공간이 많아진다는것 뿐이죠... ^^


저처럼 재미삼아 해보실분들만 시도해보시구요~



본 내용은 매뉴얼이 아닙니다. 가이드일뿐입니다.


그대로 따라하지 마시고 참고 하셔서 해보시기 바랍니다.


온라인에서 적다보니 잘못된부분이 있을수도 있습니다. 양해 부탁드립니다~


Extra Form
첨부
M130K_external_patch.zip  [File Size:586.1KB/Download:25]
댓글을 남겨야 다운로드가 가능합니다. 감사의 댓글을 달고 오른쪽 확인버튼을 눌러주세요.
다운로드시 일주일에 한개 이상의 게시물 작성이 필요합니다. 지금 자유게시판에 회원님의 하루를 남겨보세요.
추천♡버튼을 잊지 마세요. 추천인과 회원님 모두 포인트가 적립됩니다.
댓글 8
  • profile
    LavI
    11.02.15
    고생하셨네요^^
    케이도어플의압박이줄겠네요^^
  • ?
    리텔
    11.02.15
    수고하셨습니당!ㅎㅎㅎㅎ
  • ?
    bkpol
    11.02.15
    와우 네오님도 슬슬 임베디드 가셔야하는거 아닌가 ..ㅋㅋ
    네오패치 나오길 살포시 기대해봅니다 ㅋㅋㅋ
  • profile
    NEO™
    11.02.15
    쓰고보니 스크롤 압박 장난 아니네요 ㅋㅋ
    스샷 첨부까지 할라했는데 도저히 답 안나와서... 대충 참고만 해주세요 ^^
    참, /data 영역을 통째로 옮긴게 아니기 때문에 벤치는 외장패치 한거나 안한거나 똑같이 나옵니다.
  • ?
    쏜당
    11.02.15
    오~ +_+
    언제나 감사합니다.
  • ?
    이태영
    11.02.20
    질문있어요~ 제가 글을 잘 이해했는지는모르겠네요 ㅠㅠ
    내장어플을 외장메모리로옮기면 android_secure에 저장되잖아요? 파티션을 두부분으로 나누면 첫번째파티션에 android_secure 이게있고 두번재 파티션에 data/app/ 있는건가요? 그럼 내장어플을 외장어플을 옮기면 그대로 fat32에있는거죠? data/app/ 만 ext4로되면 패치 하나마나 아닌가요 ㅠ? 외장으로어플옮기면 정작 저장되는곳은 fat32인 android_secure 이거니까요? 어플 필요한것만 내장에넣고 나머진 강제로다 외장에옮기는것도 어플용량확포는될꺼같은데 ㅠㅠ (저같은경우는 테마꾸밀때필요한어플만 내장에 설치하고 나머지는 싹 외장에 강제로 이동을했거든요)
    데이터영역을 외장패치하는건없나요 ㅠㅠ 데이터가 원낸드라서 하면 오히려손해라는말이 많은데 ㅠㅠㅋ 내장어플+데이터 중에 특히 데이터때문에 은근 신경쓰이네요 ㅋㅋ

    아그리고 추가적인질문더요 ㅠ 만약 외장패치를하잖아요 그러면data/app 이게 외장으로 바인드되면 내장에설치되어있는 어플이 죄다 sd카드로이동되나요? (무슨말이냐하면 작업관리자에서 핸드폰에설치 sd설치있잖아요? 바인드되면 내장에 설치된 어플들이 내장->sd 설치로되어있나요?ㅠ 이해되실련지?ㅋ)
  • profile
    NEO™
    11.02.22
    1. 네 맞습니다. 외장메모리로 어플 이동하시면 순정과 같은 FAT32 파티션에 android_secure로 들어갑니다.
    2. 데이터 파티션 전체를 외장패치하면.. 추천 안드립니다 ㅎ 내장 원낸드가 훨씬 빠르거든요..
    3. 내장에 설치된 어플이 모두 SD카드의 ext4 파티션으로 이동되는겁니다. 하지만 이 영역은 폰상에서 내장메모리로 인식되기 때문에 \"휴대폰에 설치됨\"으로 나옵니다.
  • ?
    제로다
    11.06.20
    이거하게되면 USB이동디스크로 연결하면 데이터 깨지나요?
댓글 쓰기 권한이 없습니다.
정렬 목록 검색 쓰기
등록된 글이 없습니다.
1 - 2