티스토리 뷰
갤럭시 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 등을 변경하면 된다.
'Engineering > Android' 카테고리의 다른 글
갤럭시폰에서 홈버튼으로 다른 앱 진입하기 (0) | 2018.11.14 |
---|---|
갤럭시 스마트폰 업데이트 내역 확인 방법 (0) | 2018.11.11 |
IMEI로 단말의 유효성 확인 (0) | 2016.05.06 |
Jarsigner를 이용한 재서명(Re-signing) (0) | 2016.05.06 |
Keytool을 이용한 서명(Signing)확인 (0) | 2016.05.06 |
- Total
- Today
- Yesterday