10 Aug
2010
Posted in: 코드
By    2 Comments

갤럭시s 내장앱 지우기.


갤럭시s 내장앱 지우기.
by 신영진(YoungJin Shin), codewiz at gmail.com, @codemaru, http://www.jiniya.net

갤럭시s를 사서 첫 부팅을 시키면 정말 덕지덕지 내장 앱들이 잔뜩 깔려있습니다. 흠, 뭐 앱 설치하고 이런 걸 잘 못하시는 분들에게는 그게 도움이 되겠지만 그렇지 않은 사람들에게는 그게 오히려 독이 되는 것 같습니다. 똑같은 프로그램인데도 성능 떨어지고, 디자인 구린 것들이 많기 때문이죠. ㅋㅋ~ 어쨌든 그래서 루팅하면 젤 먼저 하는 작업이 요론 내장앱들을 정리하는 작업입니다.

내장앱은 기본적으로 /system/app에 들어있습니다. 들어가면 정말 말도 안되게 많은 앱들이 있는 걸 보실 수 있을 거예요. 어떻게 보시는지 모르신다구요. ls /system/app 하시면 됩니다. 그런데 다 필요없다고 함부로 지우시면 쪼다 크리 맞는 수가 있습니다. 먼저가신 분들이 친히 정리해 놓으신 자료가 있으니 그걸보고 지우시는게 한결 마음이 편합니다. 아래 글타래는 그런 목록을 정리해둔 자료입니다.

http://www.matpclub.com/board/index.html?id=tipn&asort=&smode=both&skey=%B3%BB%C0%E5&no=7

삭제하는 방법은 주로 파일을 삭제하라고 되어 있는데 외국 포럼을 찾아보니 pm이란 명령어를 사용해서 지우는게 좋다고 나와 있더라고욤. 그래서 요기서는 그걸로 지우는 방법을 간단히 설명드릴까 합니다. Root explorer다, 뭐 핸폰에 있는 쉘 프롬프트로 지워라, 등등 방법은 정말 많은데요. 젤 편한 방법은 adb를 이용하시는 방법입니다. 구글에 뭐 adb 설치 이런식으로 쳐보면 자료가 많으시니 adb 연결은 알아서 각자 하시면 될 것 같구욤.

adb shell로 들어가면 젤 먼저 나오는 프롬프트는 당연히 $예욤. 우리가 보고 싶은 거는 #이죠.  su치면 한방에 넘어가시는 분들도 계시겠지만 잘 안되시는 분들도 계실거예요. 저도 여기서 삽질을 좀 했는데요. 스크린락을 걸어두면 넘어가지질 않습니다. 따라서 환경설정 가셔서 스크린락같은거는 해제한 다음에 su하셔야 합니다. 해제하고 su하면 핸폰창에 루트 권한을 허용하겠냐고 묻는 창이 뜹니다. 그러면 살포시 allow 눌러주시면 되겠습니다.

#을 본다음 다음으로 확인해야 하는 거는 system 디렉토리가 rw로 마운트되었는지 확인하는 겁니다. ro로 마운트되어 있으면 당연히 삭제가 안됩니다. ro로 되어 있다면 아래 명령어를 입력해서 rw로 변경해 주시면 됩니다.

mount -o remount rw /system

여기까지 오면 이제 내장앱을 삭제할 준비는 모두 되었습니다. /system/app에서 지우고 싶은 것들을 마구 지울 수 있습니다. 앞서 설명드렸던 pm을 사용하는 방법을 간단히 설명드리겠습니다. 예를들어 A00000000D.apk 파일을 삭제하고 싶다면 다음과 같이 명령어를 입력합니다.

pm list packages -f | grep A00000000D

입력해서 결과가 아무거도 없다면 해당 프로그램은 아직 설치가 안된겁니다. 그런 경우에는 파일만 삭제하시면 됩니다. 설치가 되었다면 뭔가 메시지가 출력될겁니다. 대충 “파일이름=앱이름” 요론 식인데요 = 다음에 있는 앱이름을 기억해 둡니다. 그리고는 아래 명령어로 삭제를 하시면 됩니다. com.skt.skaf.A00000000D가 앱이름입니다.

pm uninstall com.skt.skaf.A00000000D 

이렇게 지울려면 뭐 한 세월이겠죠. ㅋㅋ~ 그럴 때는 스크립트의 도움을 받으면 편리합니다. 여러분의 편의를 위해서 한방에 지우는 스크립트를 한번 만들어 봤습니다. 소스는 다음과 같구요. 텍스트 파일은 여기서 다운로드 받으실 수 있습니다.

[cpp]#!/system/bin/sh

mount -o remount rw /system

if [ ! -e /system/app/useless ]
then
    mkdir /system/app/useless
fi

for args in "/system/app/A00000000D.apk com.skt.skaf.A00000000D" \
    "/system/app/A00000000E.apk com.skt.skaf.A00000000E" \
    "/system/app/A000Z00040.apk com.skt.skaf.A000Z00040" \
    "/system/app/andSisWidget3-signed.apk com.neomtel.android.SisWidget" \
    "/system/app/Dlna.apk com.sec.android.app.dlna" \
    "/system/app/DrmProvider.apk com.providers.drm" \
    "/system/app/l000400002.apk com.skt.skaf.l000400002" \
    "/system/app/l001f00002.apk com.skt.skaf.l001f00002" \
    "/system/app/l001mtm091.apk com.skt.skaf.l001mtm091" \
    "/system/app/Melon.apk com.iloen.melon" \
    "/system/app/MiniDiary.apk com.sec.android.app.minidiary" \
    "/system/app/SamsungWidget_CalendarClock.apk com.sec.android.widgetapp.calendarclock" \
    "/system/app/SisoDrmProvider.apk com.sec.android.providers.drm" \
    "/system/app/SKAFCore.apk com.skt.skaf.skafcore" \
    "/system/app/skafLauncher.apk com.android.skafLauncher" \
    "/system/app/thinkdroid.apk com.tf.thinkdroid.samsung" \
    "/system/app/TService.apk com.sec.android.TService" \
    "/system/app/VideoTutorial.apk com.sec.android.app.videotutorial" \
    "/system/app/Weather.apk com.weathernews.weather" \
    "/system/app/WeatherWidget.apk com.weathernews.weatherwidget" \
    "/system/app/Z0000OMPDL.apk com.skt.skaf.Z0000OMPDL" \
    "/system/app/Z0000UP000.apk com.skt.skaf.Z0000UP000" \
    "/system/app/SamsungWidget_Mirror.apk com.sec.android.widgetapp.mirror"
do
    set $args

    if [ -e $1 ]
    then
        echo Remove $1
        mv $1 /system/app/useless
        pm uninstall $2
    fi
done[/cpp]

그럼 다운받은 스크립트를 실행하는 방법은 간단합니다. c 루트에 해당 파일이 있다고 생각하면 다음과 같이 입력하면 됩니다. 정상적으로 실행되면 메시지가 출력되면 삭제가 진행될 겁니다. 삭제하는데 몇 초씩 걸리기 때문에 아주 순식간에 끝나지는 않습니다. 물론 목록에 있는 파일이 이미 모두 지워진 경우에는 바로 끝납니다. 불필요한 파일은 /system/app/useless에 백업되어 있습니다. 필요하실 때에 다시 /system/app으로 옮겨서 설치해서 사용하시면 됩니다.

adb push c:\clean_app.txt /skttmp/clean_app.txt
adb shell
su
sh /skttmp/clean_app.txt

덧) 스크립트를 제작하시는 분들은 crlf 주의하세요. DOS용 crlf 형태로 저장하면 스크립트가 제대로 실행이 되지 않더군요. 그것 때문에 또 한 2시간 삽질했습니다. ㅠㅠ~

Browser does not supports flash movie

  • 트랙백 주소: http://www.jiniya.net/wp/archives/2883/trackback

관련 글

  • 환상경

    오 갤S 구매하셨나봐요? ㅎㅎㅎㅎ
    제 동생도 갤스 구입해서 사용하는거 몇번 만져봤는데
    삼성 제품이라 생각되지 않을정도로 잘 만들어진 폰이더군요 ㅋㅋ

  • codewiz

    환상경 // 넴. 신천지네요. 사람들이 욕 많이 하는데, 전 4년만에 바꿔서 그런지 괜찮드라고욤. 안드로이드도 맘에 들구욤. 2.2 프로요 업데이트가 정말 기대됩니다. 근데 삼성에서 제대로 해줄지가 초큼 의문이예요. ㅎㅎ~