테마파일을 적용을 쉽게 하기 위해 스크립트를 만들어 봤습니다.
다음은 첨부한 ThemeApply의 스크립트 내용입니다.
#!/system/bin/sh
busybox mount -o remount,rw /system
busybox mount -o remount,rw /preload
for i in $(busybox ls -1 /sdcard/theme); do
if busybox [ -f /preload/symlink/system/app/$i ]; then
busybox rm -f /preload/symlink/system/app/$i
busybox mv -f /sdcard/theme/$i /preload/symlink/system/app/$i
busybox chmod 644 /preload/symlink/system/app/$i
elif busybox [ -f /system/app/$i ]; then
busybox rm -f /system/app/$i
busybox mv -f /sdcard/theme/$i /system/app/$i
busybox chmod 644 /system/app/$i
elif busybox [ -f /system/framework/$i ]; then
busybox rm -f /system/framework/$i
busybox mv -f /sdcard/theme/$i /system/framework/$i
busybox chmod 644 /system/framework/$i
fi
done
echo Finished...
쉘스크립트는 잘 모르는데 검색을 해서 딱 요만큼만 배웠습니다.^^
<조건>
* busybox 설치.
* /sdcard 에 theme 라는 이름의 폴더를 만들고 적용하고자 하는 파일을 넣어 둡니다.
* 아래 첨부한 ThemeApply 파일을 /system/bin 폴더에 넣어두고 권한을 777 로 줍니다.
<설명>
busybox mount -o remount,rw /system
- /system 파티션을 쓰기 모드로 마운트 합니다.
for i in $(busybox ls -1 /sdcard/theme); do
- for문( 반복문)입니다. 변수는 i 입니다. i 변수가 받는 값은 뒤의 ls 명령어가 출력한 값입니다.
ls 명령어는 파일 리스트를 보여주는 명령어입니다. 옵션 -1 은 리스트를 한줄 단위로 출력합니다.
ls 명령으로 /sdcard/theme 폴더의 파일리스트를 하나씩 받아서 다음의 명령을 실행합니다.
밑에 있는 done 사이에 있는 명령은 모두 이 for문에 종속됩니다.
if busybox [ -f /preload/symlink/system/app/$i ]; then
- if 는 조건문으로, 옵션 -f 를 써서 링크파일이 아닌 일반 파일인지를 검사합니다.
$i 는 변수 i 입니다. ls 명령으로 출력된 파일 이름이 들어 있습니다.
/sdcard/theme 폴더에 SystemUI.apk 파일이 있다면 $i 가 이 문자열을 가지고 있습니다.
/preload/symlink/system/app/ 에 SystemUI.apk 파일이 있다면( 조건이 참이라면) 다음의 명령을 실행합니다.
busybox rm -f /preload/symlink/system/app/$i
- rm 은 삭제하는 명령입니다. /preload/symlink/system/app/SystemUI.apk 파일을 삭제합니다.
-f 옵션은 삭제할 것인지 말것인지 묻지 않고 삭제합니다.
busybox mv -f /sdcard/theme/$i /preload/symlink/system/app/$i
- mv 는 파일을 이동시키는 명령입니다. /sdcard/theme/SystemUI.apk 파일을 /preload/symlink/system/app/SystemUI.apk 로 이동시킵니다.
-f 옵션은 이동할 곳에 같은 이름의 파일이 있을 경우 덮어 쓸 것인지 말것인지를 묻지않고 이동시킵니다.
busybox chmod 644 /preload/symlink/system/app/$i
- chmod 는 권한을 주는 명령입니다. 644 로 주었습니다.
elif busybox [ -f /system/app/$i ]; then
- elif 는 위의 if 조건문과 같은데, if문에 붙여서 병렬로 다른 조건을 탐색할 때 사용합니다.
/system/app/ 에 SystemUI.apk 파일이 있는지 검사해서 있으면 다음 명령을 실행합니다.
이하 생략.......
< 실행법>
적용하고자 하는 파일을 /sdcard/theme 폴더에 넣고,
터미널이나 adb 명령창에서 su 권한으로 ThemeApply 를 치면 됩니다.