[DIY] 외국롬을 한글화 해보자 - 1.어플 한글화 | Desire 루팅 Tip
전체공개 8 / 2010.11.11 20:37

한 2주일 동안 붙잡고 하다 보니 꽤 알게 되어서 나중에 귀차니즘에 빠지거나, 바뻐서

제가 작업을 못할 때 다른 분께서 작업해 주시길 바라는 맘에 올려 봅니다.

 

-----------------------------------------------------------------------------------------------------------------

준비물 (윈도우)

1. apktool 1.3.2 (http://forum.xda-developers.com/showthread.php?t=640592)

2. java (java.com 에서 설치)

3. 7zip

-------------------------------------------------------------------------------------------------------------------

cygwin이나 다른 VM으로 리눅스 환경에서 작업해서 키친 프로그램으로 만들 수도 있으나

복잡한 관계로 가장 쉬운 방법으로 설명 합니다.

 

APKTOOL 사용법

1. 설치

apktool을 C드라이브의 루트에 폴더를 만들어 깔아줍니다. (예. c:\1)

aapt.exe apktool.bat apktool.jar 이렇게 세 파일만 있으면 됩니다.

 

2. 어플 디컴파일

우선 자신이 한글화할 롬에서 framework-res.apk와 어플을 복사해서 apktool 폴더에 넣어줍니다.

(framework-res.apk 위치 : system/framework/framework-res.apk)

(app 위치 : data/app 또는 system/app)

 

윈도우키+R로 cmd를 실행 도스 프롬프트 상태에서 (c:\1) 폴더를 찾아갑니다.

 

c:

cd\

cd 1

apktool if framework-res.apk     -- 어플이 구동되는 프레임워크 라이브러리를 설치 최초 한번만 해주면 됨.

apktool d xxxx.apk                        -- xxxx.apk 어플을 같은 이름의 폴더에 디컴파일 함

 

위 명령어를 입력하면 xxxx라는 폴더가 생기며 해당 폴더에 보면 res폴더가 있습니다.

 

3. value-ko 추가

res폴더에 value-ko 폴더를 생성하고

value폴더에서 strings.xml을 복사해서 value-ko폴더에 넣어 줍니다.

 

    <string name="yes">ok</string>

위와 같이 > < 안에 있는 내용을 한글로 수정해 줍니다.

모든 스트링 값을 수정 하였다면, UTF-8 형식으로 저장해 줍니다.

 

4. 리컴파일

도스 프롬프트 상태에서

 

apktool b ./xxxx/ ./done/xxxx.apk    --- xxxx폴더에서 작업한 파일들을 done 폴더를 생성하고 그안에 xxxx.apk로 컴파일

 

이 과정에서 정상적으로 오류 메시지 없이 컴파일 되었다면 문제 없으나, 오류가 발생했을 시엔

  1) value에 있는 기본값과 value-ko의 내용이 빠지거나 추가된 부분은 없는가 

   2) > < 사이 수정 과정에서  <string name="yes">ok</string> 를  <string name="yes">확인</string> 으로

       수정해야 되는 것을 <string name="yes">확인/string> 식으로 <를 삭제하진 않았는지

   3) 마지막 저장할 때 UTF-8형식이 맞는지 체크하세요.

 

5. resources.arsc 대체

done폴더의 작업한 apk 파일을 7zip 탐색기로 열면 resources.arsc 가 있습니다.

원본 롬을 7zip탐색기로 열고 해당 어플 apk를 더블클릭해서 들어가면 용량이 조금 작은 resources.arsc가 있습니다.

마우스로 끌어서 작업한 arsc를 원본에 덮어 씌웁니다.

 

주의 절대 작업한 apk파일 자체를 원본에 덮어씌우면 안됩니다. apk파일 내의 resources.arsc 파일만 서로 압축을 풀지 않고

대체 시키는 겁니다.

 

-------------------------------------------------------------------------------------------------------------------

value폴더들은 apk 파일 자체를 열었을 때 보이지 않고 해당 내용들이 resources.arsc에 저장이 됩니다.

그래서 이 파일만 대체하면 한글 로컬이 추가되는 것이죠..

 

 

TIP. 일반 어플 한글화

일반 어플도 마찮가지 방법으로 한글화 하시면 되는데, 위 과정에서

apktool if framework-res.apk

부분은 생략하고, done 폴더에 생성된 apk 파일을 motizen-sign이 있는 폴더에 넣고 work.apk로 이름을 수정,

sign.bat 를 실행하면 work-signed.apk 가 생성 됩니다. 이걸 원래 어플이름으로 수정해서 SD카드에 넣고 실행하면

설치 됩니다.

 

 

다음엔 한글화 롬 추가 설정 부분을 올리겠습니다

[DIY] 외국롬을 한글화 해보자 - 2.패키징 하기 | Desire 루팅 Tip
전체공개 9 / 2010.11.16 16:58

지난 번 올렸던 글이 공지에 까지 올라갔네요. 댓글은 몇 없었지만, 꾸준히 쪽지로 문의 주시는 분들도

많고 해서 다음 글을 적어 봅니다.

롬에서 한국 관련 설정이 필요한 것들을 정리해 보았습니다.

 

1. build.prop (/system/)

전체적인 롬에 대한 설명과, 시스템 설정 등이 들어가는 파일 입니다.

 
ro.build.display.id=MIUI_omosiro 0.11.12 R2a    << 이부분은 설정 휴대폰 정보에 들어갔을 때 빌드 정보란에 들어가는 내용

ro.product.locale.language=ko                        << 기본 언어 설정 ko는 한글
ro.product.locale.region=KR                            << 기본 국가 지역 설정 KR은 한국

media.stagefright.enable-player=true     << 멜론이 안될때 false로 해주면 작동되나, 쿼드에서 CPU점수가 많이 떨어집니다.

                                                             기본값은 true
ro.product.model=HTC Desire                      << 휴대폰 정보 부분에서 모델명

 

자신이 짜집기 해서 롬을 만든다면 첫줄 부분을 수정해 주면 되지만, 그렇지 않은 경우 ko,KR만 추가해 주는 것으로

충분합니다.

 

2. apns-conf.xml (/system/etc/)

 각 국가별 통신 사업자 관련 설정이 들어가는 파일 입니다.

 

<apn carrier="SKT3G" mcc="450" mnc="05" apn="web.sktelecom.com" mmsc="http://omms.nate.com:9082/oma_mms" mmsproxy="smart.nate.com" mmsport="9093" type="default,supl,mms" />
<apn carrier="KT-HSDPA" mcc="450" mnc="08" apn="alwayson-r6.ktfwing.com" mmsc="
http://mmsc.ktfwing.com:9082" type="default,supl,mms" />

 

만약 위처럼 SKT와 KT 정보가 없을 땐 추가 해 줍니다.

 

3. GPS.conf (/system/etc/)

기본 GPS 서비스 관련 설정 부분 입니다. 각롬을 만든 제작자의 지역 기준으로 설정이 되어 있을 텐데요.

  

NTP_SERVER=kr.pool.ntp.org
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
SUPL_HOST=wpde.nate.com
SUPL_PORT=7275

한국에 맞게 윗 부분을 수정해 주시면 됩니다. 외국 설정을 그대로 사용해도 작동은 합니다. 다만 GPS가 위치정보 인식하는 과정이 외국 서버를 통해서 들어오기 때문에 한국 설정 보다는 반응이 조금 늦겠죠.

 

4. 폰트 수정 (/system/fonts/)

기본 내장된 폰트를 사용해도, 한글 출력엔 문제 없을 겁니다. 다만 자신이 원하는 폰트를 내장하기 원한다면

 

Clockopia.ttf
DroidSans-Bold.ttf
DroidSans.ttf
DroidSansFallback.ttf

 

이 4개의 파일을 루나님 같은 분들이 올려주신 폰트ZIP에서 추출해서 넣어주세요. 파일명은 반드시 지키셔야 됩니다.
 

5. 라이브러리 설정 (system/lib/)

자신이 롬에 추가하고자 하는 어플이 있을 겁니다. 예를 들어 구글 한글 키보드 라든가..  apk를 열면 lib폴더가 있습니다.

그안에 들어있는 so파일을 롬의 lib폴더에 넣어주시고 어플은 system/app 이나 data/app에 넣어주시면 됩니다.

(예. flash player, 구글한글키보드, 스마트키보드 등등)

 

6. 미디어 파일 수정 (system/media/)

해당 폴더에 들어가시면 알람, 알림, 벨소리, UI동작음 폴더가 있습니다. 수정 원하시면 추가하거나 덮어 씌우시면 됩니다.

UI동작음은 추가가 되지 않고 교체만 가능합니다.

 

7. 별도 어플 롬에 추가 하기

롬에 data/app 폴더를 만들고 폴더 안에 넣어줍니다. system/app에 넣으셔도 되지만, system/app에 들어가는 어플은

추후 업데이트 및 삭제가 불가능 합니다. 그리고 data/app에 너무 많이 넣진 마세요. 내부 공간 줄어 듭니다.

 

8. 부팅 애니메이션 수정

data/local 폴더를 만들고 안에 bootanimation.zip 파일을 넣어줍니다.

 

만약 data/app 이나 data/local 등을 추가하게 되면 update-script 파일을 수정해 주어야 설치 과정에서

이상없이 설치되는데, 따로 설명 하겠습니다.

 

9. updater-script 수정하기 (/META-INF/com/google/android/)

정말 중요한 항목입니다. 일단 editplus등의 편집기로 열었을 때, 파일이 PC형식인지 UNIX형식인지 확인하세요.

updater-script 안에는 한글이 들어가면 안됩니다. 꼭 원래 형식으로 저장해서 덮어 씌우세요.

 

기본적으로 자신이 받은 롬에 data폴더가 있다면 따로 수정해 줘야 하는 부분은 없습니다. 만약 롬을 열었을 때

system 폴더와 META-INF 폴더만 있다면 data폴더에 대한 부분을 추가해 줘야 합니다.


mount("MTD", "system", "/system");         << 이부분은 대부분의 롬에 있을 겁니다.
mount("MTD","userdata","/data");              << 그아래 data 폴더 마운트 명령을 추가합니다.


package_extract_dir("system", "/system");    << system 폴더 설치 명령 부분입니다. 
package_extract_dir("data","/data");               << 위 라인을 찾아서 그아래 data폴더 설치 명령을 추가합니다.

 

그리고 중간 부분 아무 곳에나


symlink("/data/local/bootanimation.zip", "/system/customize/resource/bootanimation.zip");

symlink("/system/fonts/DroidSans.ttf", "/system/fonts/Arial.ttf");
symlink("/system/fonts/DroidSans.ttf", "/system/fonts/DroidSerif-Regular.ttf");
symlink("/system/fonts/DroidSans-Bold.ttf", "/system/fonts/Arial-Bold.ttf");
symlink("/system/fonts/DroidSans-Bold.ttf", "/system/fonts/DroidSerif-Bold.ttf");

 

을 추가 합니다. 첫줄은 부팅 애니메이션을 local 폴더에 넣어주는 것으로 교체하는 명령이며,

그 아래 4줄은 차후 롬매니저로 폰트를 플래시 해서 교체 가능 하도록 해주는 항목 입니다.

 

여기서 주의점!  반드시 ;로 끝난 다음 줄에 구문을 추가하셔야지 , 등으로 끝난 다음줄에 넣으시면 오류납니다.

(나쁜 예)

symlink("iwmulticall", "/system/xbin/iwconfig", "/system/xbin/iwgetid",
symlink("/data/local/bootanimation.zip", "/system/customize/resource/bootanimation.zip");

        "/system/xbin/iwlist", "/system/xbin/iwpriv",
        "/system/xbin/iwspy");

(올바른 예) 

symlink("iwmulticall", "/system/xbin/iwconfig", "/system/xbin/iwgetid",

        "/system/xbin/iwlist", "/system/xbin/iwpriv",
        "/system/xbin/iwspy");
symlink("/data/local/bootanimation.zip", "/system/customize/resource/bootanimation.zip");

 

이러한 추가 입력 부분은

assert(package_extract_file("boot.img", "/tmp/boot.img"),
       write_raw_image("/tmp/boot.img", "boot"),
       delete("/tmp/boot.img"));
show_progress(0.100000, 0);
unmount("/system");
unmount("/data");

이 글들의 위쪽에서 이루어 지면 됩니다. 어려운것 없어요 ^^

 

10. 마무리

지난 글에서 apk 들의 한글 번역 추가를 완료 하시고, 이글에서 각종 설정과 추가 작업 및 update스크립트의 수정까지

완료 하셨으면 모든 작업이 완료 된 겁니다.

 

리커버리에서 install from zip 명령으로 해당 롬zip을 올려 보세요. 물론 테스트전에 백업은 필수 겠죠.

만약 여기서 오류가 난다면,

1. 처음 update-script의 파일 형식 UNIX, PC 가 새로 저장하는 과정에서 바뀌진 않았는지.

2. 리커버리 메뉴에서 verification 이 enable로 되어 있진 않은지. (verification 들어가는거 한번 눌러 주면 disable로 변경)

확인 해 보세요.

 

설치 후에 자신이 추가된 것들이 정상적으로 설치가 되었는지 확인해 보세요. 긴글 읽어 주셔서 감사합니다.

 

모든 롬파일 내의 작업은 절.대.압.축.풀.지.않.습.니.다.클.나.요!! 

그냥 드래그로 집어넣긔~

통신사별 원배정 국번 안내

스마트폰,전자 2010. 11. 14. 00:28 Posted by 동글래미

SKT 할부이자 계산기

스마트폰,전자 2010. 10. 16. 23:36 Posted by 동글래미


 www.imemi.co.kr 인쇄 즐겨찾기추가 
※ 할부원금/이자 계산기 ※
단말기할부원금 : 원, 할부개월수 : 개월, 할부이자율 : %  
24개월 할부시
개월월청구액할부원금할부이자단말기 잔여할부금
1 25,131 22,340 2,791 545,260
2 25,131 22,450 2,681 522,810
3 25,131 22,560 2,570 500,250
4 25,131 22,671 2,460 477,578
5 25,131 22,783 2,348 454,796
6 25,131 22,895 2,236 431,901
7 25,131 23,007 2,124 408,894
8 25,131 23,120 2,010 385,773
9 25,131 23,234 1,897 362,539
10 25,131 23,348 1,782 339,191
11 25,131 23,463 1,668 315,728
12 25,131 23,578 1,552 292,149
13 25,131 23,694 1,436 268,455
14 25,131 23,811 1,320 244,644
15 25,131 23,928 1,203 220,716
16 25,131 24,046 1,085 196,670
17 25,131 24,164 967 172,506
18 25,131 24,283 848 148,224
19 25,131 24,402 729 123,822
20 25,131 24,522 609 99,300
21 25,131 24,643 488 74,657
22 25,131 24,764 367 49,893
23 25,131 24,886 245 25,008
24 25,131 25,008 123 0
총 할부청구금액 : 603,144총 할부이자 : 35,544
상호명 :   TEL :   FAX :   

우분투 설치후 APM 설치

리눅스 2010. 10. 13. 07:03 Posted by 동글래미


apt-get install build-essential
uname -a 확인후 
apt-get install linux-headers-2.6.28-13-server

 

/opt/install/vmware-tools-distrib/vmware-install.pl

 

apt-get install apache2;

apt-get install libapache2-mod-auth-mysql ;
apt-get install mysql-server mysql-client;
apt-get install php5-common php5 libapache2-mod-php5 php5-gd;
apt-get install php5-mysql;

 

 

1. DB 초기설정
   mysql -uroot -p암호
     create database zbxe;

     use mysql;

     insert into user(host,user,password)
     values ('localhost','zbxe',password('암호'));

     insert into db(host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv,grant_priv,references_priv,index_priv,alter_priv,create_tmp_table_priv,lock_tables_priv)
     values ('localhost','zbxe','zbxe','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

     grant all privileges on zbxe.* to zbxe@localhost
     identified by '암호' with grant option;
     flush privileges;

2. DB 복구
   mysql -uzbxe -p암호 zbxe < startpda.txt

3. zbxe계정 권한 재설정
   mysql -uroot -p암호

     grant all privileges on zbxe.* to zbxe@localhost
     identified by '암호' with grant option;
     flush privileges;

 

 

vi php.ini

memory_limit=500M

post_max_size = 500M

upload_max_filesize = 500M

mysql log 파일에서 복구하기..

리눅스 2010. 10. 11. 18:02 Posted by 동글래미
mysqladmin -u root -pakdlvhwm drop zbxe
mysqladmin -u root -pakdlvhwm create zbxe
mysql -u root -pakdlvhwm zbxe < startpda-0.sql 


/var/www/mysqllog
10월 8일 이후의 mysql-bin.* 파일들만 남겨둠

mysqlbinlog * >> 1008-1010.sql

grep -v xe_session 1008-1010.sql > 1.sql

mysql -f -u root -p < 1.sql



ERROR 1153 (08S01) at line 478: Got a packet bigger than 'max_allowed_packet' bytes


ex) mysql -uroot -p < test.sql  
    sql파일을 디비에 올리는 과정에서 생기는 오류.

원본 디비의 'max_allowed_packet' 이 대상 디비보다  크거나
sql 파일의 용량이 클경우 생기는 오류.

@@해결방법
---------------------------------------------------------------------------------
mysql> set global max_allowed_packet=1000000000;
Query OK, 0 rows affected (0.01 sec)
mysql> set global net_buffer_length=1000000; 
Query OK, 0 rows affected (0.00 sec)




proftpd utf-8 설정, 특수문자 목록 보이게

리눅스 2010. 10. 9. 01:24 Posted by 동글래미
UseEncoding                     UTF-8 UTF-8

<IfModule mod_facts.c>
FactsAdvertise off
</IfModule>
dd if=/dev/zero bs=1M count=X >> system.ext2
fsck.ext2 -f system.ext2
resize2fs system.ext2

mount -o loop -t ext2 system.ext2 [directory]

share webhard 설치방법

리눅스 2010. 9. 12. 01:26 Posted by 동글래미


## 기본설치
1. SUlinux 1.5 Server 설치
2. apmtools(sulinux에서 apm 자동설치툴)로 APM(Apache, PHP, MySQL)설치
  * ZendOtimizer 설치를 위해서 apmtools 설치전에 아래부분 수정후 설치! <-- 1.5 이전버전만 해당됨!
    # vi  /root/bin/apm/apm_install 
    # vi  /root/bin/apm/apm_phpupdate 
   위에서 php config옵션중 '--enable versioning' 부분을 삭제할것!
   삭제하지않고 apmtools 설치했을때에는 수정후 apmtools 재실행후
   'php 업데이트'를 선택하면 업데이트설치된다.
>apmtools (실행) // 약 5~10분정도 소요.

// 아래부터 웹하드용 작업 //
## webhard 용 db 생성
>mysql -u root <-- mysql 패스워드 생성전일때, 패스워드 만든후에는 mysql -u root -p 
>SET PASSWORD FOR root@localhost = PASSWORD('??????'); // root 패스워드 설정
>CREATE DATABASE webhard; // webhard용 db 생성
>show databases; (webhard DB생성된것 확인)
>flush privileges;
>quit;

# webhard 용 table DB 입력. 
위쪽 2번자료 웹하드용 DB테이블(shade_webhard.sql)을 webhard DB에 입력
>mysql -u root -p webhard < shade_webhard.sql

 - vi 로 패스워드 및 웹하드명칭을 수정후 적용할것!
>Enter password : 
메세지 없이 종료.

>mysql -u root -p 접속후 
>use webhard;
>show tables;
하면 webhard_**** 테이블들이 보임
>quit;
>service mysqld restart (또는 /etc/ini.d/mysqld restart) 재시작함.

## shade webhard 압축해제후 수정
/웹서비스디렉토리(www 또는 html 등등)/shade_webhard 로 복사
shade_webhard/include/dbconnect.php 에서
$db_host = "localhost"; // mysql host
$db_user = "root"; // mysql username
$db_pass = "패스워드"; // mysql password
$db_name = "webhard"; // mysql db name
수정/저장후 종료

shade_webhard/include/config.php 에서
$Conf[web_url]    = "http://(ip주소 또는 도메인)/shade_webhard";
$Conf[web_path] = "/shade_webhard";
$Conf[dir_doc]    = "/???/shade_webhard"; (shade_webhard 소스가 있는 실제경로)
$Conf[dir_home] = "/public_webhard";  (webhard용 데이타가 저장될 실제경로)
수정/저장후 종료

** 위의 dir_home 의 /public_webhard 퍼미션조정해줄것!!!

>mkdir /public_webhard

>chmod 777 /public_webhard

** php.ini 수정(기본업로드 2M제한되어있는것 변경) --- 중요!!!
>vi /etc/local/php.ini
:256 (256줄로 이동 memory_limit=8M 를 업해줘야 좋다고해서 32M로 변경)
:419 (419줄로 이동 post_max_size=8M 를 변경~  1024M / 2048M /... 등등)
:524 (524줄로 이동 upload_max_filesize = 2M 를  변경 ~ 1024M / 2048M/ ... 등등)

** httpd.conf 수정(웹하드 사용자등록후 폴더생성/업로드/삭제 관련 소유권문제)
일단 root말고 일반사용자 등록한다.
>adduser 사용자
>passwd 사용자 (패스워드 입력후)
>vi /etc/passwd 로 사용자가 등록되었는지 확인
>vi /etc/httpd.conf
:268 (268줄로 이동 User nobody 를 'User 사용자' 등록해준 것으로 변경)
:269 (269줄로 이동 Group ????  를 'Group 사용자' 로 변경)
>service httpd restart (또는 /etc/ini.d/httpd restart) 로 httpd 재시작.

## 웹하드 작동테스트
http://(ip주소 생략)/shade_webhard/backoffice (관리자 모드)
; admin / shade 로그인
; 웹하드사용자등록 및 환경설정
http://(ip주소 생략)/shade_webhard (실사용자 모드)
; 사용자로그인
; 폴더 만들기, (용량별)업로드테스트, 업로드후 삭제 이상없나 확인!
; 이상없으면 잘 사용하시고... 이상있으면 다시 윗글 잘 보시고 빠진것 없나 확인하세요~

다운 받은 Ad Hoc 어플 설치법

아이폰개발 2010. 7. 13. 00:01 Posted by 동글래미
다운받은 압축파일을 먼저 풉니다

풀린 폴더에 들어가시면

*.app폴더와 *.mobileprovision파일이 있습니다


먼저 mobileprovision파일을 아이튠에 드래그 드롭으로 넣습니다
 


이미 인증 파일이 등록되어 있는 경우 

다음과 같은 메세지가 뜰수 있습니다


이럴경우 대치를 눌러줍니다

새로 받을실때마다 새로운 베타테스터가 추가되었을수도 있기 때문에

인증파일을 덥어 씌워 줍니다

처음 등록 하는 경우 아무런 메세지가 안뜹니다




다음은 .app폴더를 통째로 드래그 드롭으로 아이튠에 넣습니다


이거 또한 이미 있으면 대치를 눌러 주시면 됩니다



넣고 나면


다음과 같이 뜹니다

Ad Hoc어플의 경우 아이콘이 무조건 저걸로 뜹니다



나머지는 기기의 응용프로그램 설정에서 해당 어플을 넣고 동기화 해주면 됩니다