티스토리 뷰

갤럭시 S6 이하 폰에서 사용자 폰트 적용하기

삼성 스마트폰 시리즈 중 갤럭시 S6 이하 폰에서 사용자 폰트(ttf)를 적용하는 방법은 크게 두가지가 있다.

1. 폰트 변경 앱을 사용하는 방법
  - iFont, 폰트 집사
2. 폰트 변경 앱 로직을 가져와 수동으로 하는 방법
둘다 동일한 결과를 얻어오지만, 두번째 방법을 사용하면 폰트의 아이콘이나 앱 이름 등을 수정할 수 있는 장점이 있다.
(개인적인 생각으로) 이는, 유출된 갤럭시 안드로이드 코드 중 폰트 변경하는 부분에서 취약점을 발견한 후 그 코드를 사용하지 않았나 한다.
내가 사용해본 앱은 iFont인데 사용자 폰트를 적용하게 되면 Package Name이 'com.monotype.android.font.foundation'으로 고정되어 추출된다.
이를 StackOverflow에서 검색해보면, 아래와 같이 checkFont라는 함수에서 해당 패키지명을 가진 앱은 hi-pass를 시켜버린다.

com.monotype.android.font.foundation앱의 이름은 Foundation으로, 갤럭시 S7/S7 Edge부터 기본 탑재된 '굵은 고딕' 이라는 폰트이다.


iFont 측에서는 이 굵은 고딕 package가 monotype글꼴들에 해당되는 signing key를 확인하지 않는다는 것을 알기에 이걸 사용하지 않았나 싶다.

※ 갤럭시 S7/S7 Edge이후부터는 굵은 고딕 폰트가 기본으로 System영역에 탑재되어있어 Data영역에 설치가 불가능하다. (서명키가 다르기 때문) 그렇기에 S6/S6 Edge 이하의 모델에서만 가능하다.

이제 사용자 폰트를 적용하여 apk를 만드는 방법은

1. Foundation apk 추출
  - 구글에서 com.monotype.android.font.foundation 검색해서 다운이 가능하다. 혹은 '굵은 고딕'이 있는 스마트폰(Galaxy S7↑)에서System영역 / Data영역에 있는 apk를 추출하는 프로그램을 사용해도 된다. (광고 아님) (e.g., App Backup & Share Pro 등)

2. 추출 후 apk 확장자를 zip으로 변경하여 압축 해제

3. TTF 파일 변경
  - 경로 : <압축 푼 경로>\assets\fonts
  - 위 경로에 있는 ttf 파일을 사용자 폰트로 변경

4. xml 파일 내용 변경
  - 경로 : <압축 푼 경로>\assets\xml
  - 위 경로에 있는 xml의 파일명 및 파일 내용을 수정

  4.1 <filename> </filename> 부분을 변경하면 됨
  4.2 displayname은 디스플레이 > 글꼴 부분에 표기될 이름

5. 서명 삭제 
  - META-INF 및 SEC-INF 폴더 삭제 (재서명 필요)

6. zip파일로 폴더 압축 후 zip확장자를 apk로 변경

7. 서명 (해당 링크 참고)
  - 본인은 인터넷에서 platform.jks 키를 받아 사용함.(androiddebugkey)

8. 서명 완료된 apk파일 설치

번외) Foundation으로 되어 있는 app_name을 변경하고 싶거나, 아이콘을 변경하고 싶으면 Decomplier(e.g., APKTool 등)를 사용하여 res\values\strings.xml, res\drawable-hdpi-v4 등을 변경하면 된다.

댓글
03-29 15:46
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday