롬을 포팅해봅시다!
롬을 포팅하는 방법은 2가지가 있는데 그중에 한방법인 복붙 포팅을 시작하겠습니다.
이 강좌는 복붙 포팅에 관한 강좌입니다.
사람들은 복붙 보다 빌드롬을 선호하죠.. 왜냐하면 복붙롬은 빌드롬보다 버그가 많기 때문이죠 그러기에 버그 픽스만 하면 빌드롬 못지않은, 실사할 수 있는 롬을 만들 수 있습니다.
이제 시작합니다.
( 이 강좌는 안드로이드 강좌입니다. )
준비물 : 알집, NotePad ++, 컴퓨터
1. 먼저 포팅하고 싶은 롬의 안드로이드 버전이 무엇인지확인합니다. ( ex. 안드로이드 4.4.2(될지는몰라요),4.1.2 , 4.0.4)
2. 자신의 폰에 포팅된 같은 안드로이드 버전의 기반 롬이 있어야 합니다. ( ex. CM10, CM9, AOKP)
3. 이제 두개의 롬을 준비합니다. 1번의 롬은 다른 기종에서 포팅된 롬을 가져옵니다. (해상도와 cpu 가 같으면 좋겠지만 꼭 같지 않아도 상관없습니다.)
4. 1번의 포팅할 롬은 이제부터 'A' 라고 하겠습니다. 2번의 자신의 기종에 이미 있는 롬은 'B' 라고 하겠습니다.
5. A와 B를 압축을 풀어줍니다.
6. B에서 /system 폴더에 들어갑니다.
7. app, fonts, framework, media 폴더를 삭제 합니다.
8. A의 /system 에서 app, fonts, framework, media 폴더를 옮겨옵니다.
9. A의 /system/etc/permission 폴더에 가서 features.xml 과 handheld_core_hardware.xml, platform.xml 이 세 문서를 뺀 모든 문서를 B의 /system/etc/permission 에 옮겨옵니다. ( 복사 합니다. )
10. A의 /system/etc/init.d 폴더에 가서 00baner 이라는 것 빼고 다 B의 /system/etc/init.d 에 옮겨옵니다.
11. A의 /system/lib 폴더에 들어가서 libandroid_runtime.so와 libandroid_servers.so, libmedia_jni.so 를 B의 /system/lib 에 있는 libandroid_runtime.so와 libandroid_servers.so, libmedia_jni.so를 교체해줍니다.
12. A의 system/xbin 안의 su 파일을 B의 system/xbin 에 넣어주세요. 그래야 루트권한이 제대로 작동합니다.
13. A의 system/build.prop 을 NotPad ++ 로 열어주고 build.prop 안의
ro.config.ringtone=
ro.config.notification_sound=
ro.config.alarm_alert=
를 복사하여 B의 system/build.prop 안의 저 구문을 교체해 줍니다.
14. 알집으로 압축합니다.
15. 롬을 올려봅니다.
16. 부팅이 되면 환호 합니다.
[출처] #1 롬 포팅 (포팅하기)|작성자 NeD
#1 과 #2를 통해 부팅이 되었을 겁니다.
그러면 이제 오류를 픽스해서 더욱 완벽한 롬으로 만들어봅시다.
자잘한 버그보다 큰 버그를 중심적으로 다룹니다.
준비물: 디컴파일 할 수 있는 툴 (예: apktool), 알집, 백스말리 툴 (예: bsmanager)
Ⅰ. 저장소 관련 오류 fix
1. system/framework 에서 framework-res.apk 를 포팅한 롬에서 추출합니다.
2.자신의 기기에 포팅된 저장소 오류가 없는 롬(순정롬도 됩니다) 의 system/framework안에 있는 framework-res.apk 를 추출합니다.
3. 두 파일(framework-res.apk 2개)의 확장자를 .zip으로 바꿔줍니다.
4. 두 파일을 모두 압축을 풀어줍니다.
5. 오류가 없는 framework-res 안에서 res/xml 안의 storage_list.xml를 오류가 있는 frmaeowork-res/res/xml 안의 storage_list.xml와 교체해줍니다.
Ⅱ. 통신 관련 오류 fix
1. framework.jar을 백스말리 해서 framework.jar/com/android/internal/telephony 폴더에 가서 RIL.smali, Ril~.smali, SkyQualcommRIL.smali, SkyQualcommRIL~.smali (회사명).smali (samsung 기기면 SamsungRIL.smali, kttech 기기면 kttech***Ril.smali) 을 옮겨줍니다.
2. 스말리 합니다.
3. 롬에 넣어줍니다.
Ⅲ. 진동 관련 오류 fix
1. services.jar을 백스말리 한다.
2. com/android/server 에 가서 VibratorService.smali 를 기존 빌드롬의 것으로 교체해 줍니다.
3. 스말리 합니다.
4. 롬에 넣어줍니다.
Ⅳ. 배터리 최적화
1. framework-res.apk 디컴파일해서 res/xml 폴더 가서 power_profile.xml 을 옮겨줍니다.
2. 디컴파일 합니다.
3. 롬에 넣어줍니다.
Ⅴ. 그래픽 부분 최적화
1. framework.jar을 디컴파일 한다.
2. 아래 파일을 기존 빌드롬에서 교체해 준다.
3. smali\smali\android\os
Environment
SystemProperties
smali\smali\android\view
HardwareCanvas
HardwareRenderer$Gl20Renderer
HardwareRenderer$GlRenderer
HardwareRenderer
[출처] #3 포팅한 롬을 기기에 최적화
, 오류를 픽스해보자!!|작성자 NeD
출처 : 네드의 블로그
'일반강좌 > 중급' 카테고리의 다른 글
갤럭시 Pop Cwm Recovery 포팅하기 (2) | 2015.06.05 |
---|---|
[일반강좌] 영어로 되있는 앱을 한글화 해보자 (0) | 2014.02.05 |
[쿠킹강좌] 간단한 커스텀롬 쿠킹법 (0) | 2013.12.20 |