티스토리 뷰

어렸을 때 초등학생때 버킷리스트 중에 하나가 나만의 OS만들어보는거였는데, 본의 아니게 이렇게 OS를 만들어보게 되었다.

목표는 SM-G160N 갤럭시 폴더2가 작년 8월부터 카카오톡 지원이 안돼서 인터넷에 찾아보던 중, 사용가능한 커스텀롬이 하나도 없어서 직접 만들어 보려고 한다. 

거의 한 2달 가까이 붙잡고 있는데 진척된 건 없고 좀 많이 답답하긴 하지만, 뭔가 이렇게 플젝 진행상황 기록해놓으면 했던 거 또 하고 또하는 상황은 안 나올것 같아서 지금부터라도 조금 메모를 하려고 한다.

 

일단 안드로이드 12를 포팅하는 것을 목적으로 두고 있다.

일단 AOSP에서 커스텀 롬을 빌드하기 위해서 필요한 것은 Device Tree와 Kernel이다. 

저 두개를 AOSP에 넣고 빌드를 하면 해당하는 os를 만들어 주는 것으로 알고있다.

그런데 한가지 난관에 봉착한게, AOSP의 경우 버전 8 Oreo이상부터 Treble을 사용하도록 되어있다.

원래 안드로이드 버전8 이전 Legacy HAL은 안드로이드 프레임워크와 강하게 결합되어 있었는데, 이 때문에 새로운 버전 OS마다 매번 제조사가 새로운 OS에 맞춰 작동 코드를 리메이크 했어야 했었다. 하지만 이 Treble을 활용해서 호환성을 높여줬는데, 밑에 그림을 보면 이해하기 쉬울것이다. 사실 완전히 이해하진 못했는데 아마도 내부작동부분을 고치지 않고 인터페이스만 고쳐써서 호환성을 높이는 것 같다. (2025-02-09)

그래서 안드로이드 8이전 버전에서 Treblized된 버젼업을 구현한 사례를 XDA를 통해 찾아 보니, A/B 파티션 부팅이 가능한 mi-a1을 Treblized한 것을 찾을 수 있었다. A/B파티션 부팅이라 막 그렇게 크게 도움은 되지 않았지만, 그래도 어느정도 이해에 도움은 되었다.

출처: https://xdaforums.com/t/guide-q-a-treble-from-stock-to-treble-everything-you-need-to-know.3793734/

 

[GUIDE] [Q&A] [TREBLE] From Stock to Treble - everything you need to know!

Here I will share all the info you need to know about using Treble on the Mi A1. Everyone is more than welcome to ask questions and clarification here, I am happy to answer and will update this thread over time. Thanks! Contents 0. Key Terms...

xdaforums.com

 

나는 돈이 많이 없기 때문에 가장 먼저 해야할 것은 EFS를 포함한 중요 부분 백업이라고 생각했다. 그래서 위에 mi핸드폰 백업한 것처럼 EDL모드에 진입하려고, EDL 케이블을 만들어 봤다. Qualcomm에서 지원하는 Emergency Download Mode인데 EDL모드는, ADB, 하드웨어 뒷판따서 테스트포인트 두개를 연결시켜 단락을 만들거나, EDL 케이블을 연결시켜 진입한다고 한다. EDL 케이블의 경우 D+ (초록색선)과 GND(검은색선)을 연결해서 만들 수 있다. 

 

잘 못 만들었나 싶기도 한데, 일단 삼성에서 Odin모드가 EDL모드 진입을 금지시키는 것 같았다. 하는 수 없이 TWRP를 통한 커스텀 리커버리를 제작하려고 했고, 처음엔 자체제작을 했는데, 리커버리 모드에서 안넘어가기에, Twrpdtgen을 활용해서 디바이스트리를 만들어줬는데 현재 Internel Storage는 잡히지만 ADB SIDELOAD와 터미널 창도 안먹히고 permission denied가 계속 뜨는 중이다. 처음 리커버리 부팅시 recovery is not seandroid enforcing이 나오는데 커널로딩부터 knox에서 감지를 하는 것 같기도 하다. 일단 이부분을 해결 해야할 것 같다.

 

아참 내 핸드폰은 emmc를 사용중인데 treblized할려고 mmcblk0p1~p47이었나 용량이랑 다 적어놨는데 종이를 어디뒀는지 모르겠어서 나중에 올리려고 한다. 아무래도 dalvik vm이 기억이 잘 안나는데 Android RunTime ART에 통합되어서 없어졌기 때문에 해당 vm의 cache를 저장하는 부분을 vendor파티션으로 바꿔서 OS를 맞춤하면 될 것 같다.

 

일단 selinux랑 knox를 우회하는 방법을 찾아서 twrp로 부트이미지 플래시할 수 있도록 만들고, lineageOS 19.1 구현한 snapdragon 425 사용한 j4+의 디바이스트리랑 그리고 커널코드를 발견했어서 이걸 참고해서 제작을 해보려고 한다. 

'만든거 > os플젝' 카테고리의 다른 글

일단 j4+ defconfig  (0) 2025.02.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함