Android 휴대전화를 루팅하거나 인기 있는 CyanogenMod 또는 후속 Lineage OS와 같은 사용자 지정 ROM을 다운로드하는 데 익숙하다면 사람들이 이러한 ROM을 어떻게 구축하는지 궁금할 것입니다. 맞춤형 ROM을 개발하는 데 정확히 얼마나 많은 작업이 필요합니까?
이 가이드는 사용자 지정 Android ROM을 개발하는 기본 사항을 안내합니다. 이것은 엄청난 작업이라는 점에 유의해야 합니다. Linux 터미널에서 코딩하거나 장난치는 경험이 전혀 없는 경우 이 심층 분석에 뛰어들기 전에 벨트 아래에서 약간의 지식을 얻고 싶을 수 있습니다. 하지만 그런 것들에 대한 최소한의 기본 아이디어가 있다면, 여러분이 따라할 수 있도록 최대한 간단하게 설명하려고 노력할 것입니다.
기본적으로 우리가 하는 것은 원시 Android 소스 코드(AOSP)를 원하는 대로 수정합니다. 다양한 기기에서 선택할 수 있는 소스가 너무 많기 때문에 이 가이드에서는 단순히 마스터를 참조할 것입니다. 출처 AOSP(Android 오픈 소스 프로젝트)로 알려져 있습니다.
이제 AOSP의 문제는 순수 소스 코드에 다음이 포함되지 않습니다 장치별 하드웨어 속성. 평신도의 관점에서 보면 카메라와 GPU와 같은 하드웨어는 AOSP로 개발할 때 "즉시" 작동하지 않습니다. 사실 이러한 하드웨어 바이너리 없이는 장치가 부팅되지 않습니다.
Google 브랜드 휴대전화(Pixel, Nexus 등)용으로 개발 중인 경우 Google에서 직접 하드웨어 바이너리를 찾을 수 있으며 이 가이드에서는 이러한 바이너리를 가져와서 ROM에 구축하는 방법을 안내합니다. 그러나 브랜드 휴대폰(Sony, Samsung 등)을 위한 ROM을 개발 중이라면... 글쎄, 당신이 타고 있기 때문에 당신의 마음을 축복하십시오.
일부 제조업체는 자체 오픈 소스 프로젝트 또는 개발자 지망생을 위한 릴리스 개발 도구를 보유하고 있는 반면, 다른 제조업체는 독점 코드를 엄격하게 관리합니다. 다음은 인기 있는 제조업체의 오픈 소스 프로젝트에 대한 간략한 목록입니다.
Samsung Open Source Release Center
Sony Developer World
Lenovo 지원
Huawei Open Source Release Center
Motorola Developers
그런 점을 제외하고 Google Pixel 장치를 위한 가장 기본적인 기본 Android 경험을 위한 ROM을 구축하고 있다는 가정 하에 계속해 보겠습니다. 이 지식을 바탕으로 독자적으로 분기하여 특정 제조업체의 ROM에 대한 맞춤형 버전 개발을 시작할 수 있습니다.
이 가이드의 요구 사항:
- Android 오픈 소스 프로젝트
- Pixel XL 휴대전화 또는 Linux용 Android 에뮬레이터
- 64비트 Linux 운영 체제 – Ubuntu 또는 Linux Mint가 가장 초보자에게 친숙한 배포판인 반면, BBQLinux는 Android 개발자를 염두에 두고 특별히 개발되었습니다.
- 파이썬
- 무거운 컴퓨터(코드 컴파일에는 많은 메모리와 공간이 필요합니다!)
빌드 환경 설정
Linux 시스템에서 Android 에뮬레이터를 설정하는 것으로 시작하겠습니다. Google Pixel XL 기기가 있든 없든 전에 Android 에뮬레이터에서 새 ROM을 시험해 보는 것이 항상 가장 안전합니다. 장치에 깜박입니다. 개인적으로 가장 좋아하는 것은 Genymotion이므로 해당 특정 에뮬레이터를 설치하는 과정을 안내해 드리겠습니다. 그러나 대부분이 Linux와 호환되므로 이 가이드 "최고의 Android 에뮬레이터"도 확인할 수 있습니다.
Genymotion 웹사이트로 이동하여 계정을 등록하고 이메일을 통해 확인하고 실행 파일을 Linux 데스크톱에 다운로드하세요.
이제 Linux 터미널을 열고 다음을 입력합니다.
Chmod +x genymotion-xxxxx.bin(xxxx를 파일 이름의 버전 번호로 대체)
./genymotion-xxxxxx.bin
Y 누르기 Genymotion 디렉토리를 생성합니다. 이제 터미널을 입력하십시오:
cd genymotion &&./genymotion
이제 설치 프로세스를 시작하라는 메시지가 표시되므로 가상 장치 추가 창이 나타날 때까지 다음을 계속 클릭하십시오. Device Model 옵션에서 "Pixel XL"을 선택하고 설치를 완료합니다. 원하는 경우 가상 장치를 테스트할 수 있습니다. 기본적으로 데스크톱에 Pixel XL 휴대전화가 있는 것과 같습니다.
이제 Python을 설정해 보겠습니다.
$ apt-get 파이썬 설치
이제 Linux 시스템에서 Java Development Kit를 설정해야 합니다. Linux 터미널을 열고 다음 명령을 입력합니다.
$ sudo apt-get 업데이트
$ sudo apt-get install openjdk-8-jdk
이제 USB 장치 액세스를 허용하도록 Linux 시스템을 구성해야 합니다. Linux 터미널에서 다음 코드를 실행하십시오.
이렇게 하면 앞서 언급한 USB 장치 액세스를 허용하는 필수 51-android.txt 파일이 다운로드됩니다. .txt 파일을 열고 Linux 사용자 이름을 포함하도록 수정한 후 .txt 파일을 다음 위치에 배치합니다. (루트 사용자 ). 이제 USB를 통해 장치를 컴퓨터에 연결하면 새 규칙이 자동으로 적용됩니다.
Android 소스 다운로드
AOSP는 Git에서 호스팅되므로 Repo라는 도구를 사용하여 Git과 통신합니다.
먼저 홈 디렉토리에 /bin 폴더를 설정해야 합니다. Linux 터미널에 다음 명령을 입력하십시오.
$ mkdir ~/bin
$ PATH=~/bin:$PATH
이제 Repo 도구를 다운로드하므로 Linux 터미널에 다음을 입력합니다.
$ 컬 https://storage.googleapis.com/git-repo-downloads/repo> ~/bin/repo
$ chmod a+x ~/bin/repo
Repo를 설치한 후 작업 파일을 보관할 빈 디렉터리를 만들어야 합니다. 따라서 Linux 터미널에 다음을 입력하십시오.
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
이제 이름과 이메일 주소로 Git을 구성하겠습니다. 정기적으로 확인하는 Gmail 주소 사용 , 그렇지 않으면 Gerrit 코드 검토 도구를 사용할 수 없습니다.
$ git config –global user.name “귀하의 이름”
$ git config –global user.email [email protected]
이제 Repo에게 Git에서 AOSP의 최신 마스터 매니페스트를 가져오도록 지시합니다.
$ repo 초기화 -u https://android.googlesource.com/platform/manifest
성공적으로 완료되면 작업 디렉토리에서 Repo가 초기화되었다는 메시지를 받게 됩니다. ".repo"도 찾을 수 있습니다. 클라이언트 디렉토리 내의 디렉토리. 이제 다음이 포함된 Android 소스 트리를 다운로드합니다.
$ 저장소 동기화
Android 소스 구축
여기에서 이 가이드의 시작 부분에 언급된 하드웨어 바이너리가 작동합니다. AOSP 드라이버 페이지로 이동하여 Android 7.1.0(NDE63P)용 Pixel XL 바이너리를 다운로드하겠습니다. 공급업체 이미지와 하드웨어 구성 요소를 모두 다운로드하려고 합니다. 압축된 아카이브로 제공되므로 데스크탑에 압축을 풀고 루트 폴더에서 자동 압축 풀기 스크립트를 실행하십시오. 이전에 생성한 WORKING_DIRECTORY의 루트에 바이너리를 설치하도록 선택합니다.
이제 Linux 터미널에 다음을 입력하십시오.
$ 클로버 만들기
$ 소스 빌드/envsetup.sh
이제 빌드할 대상을 선택하므로 다음을 입력합니다.
$ 점심 aosp_marlin-userdebug
$ setpaths
$ make –j4
이제 소스에서 Android ROM을 "빌드"했습니다. 터미널에 다음을 입력하여 에뮬레이터에서 테스트해 보겠습니다.
$ 에뮬레이터
따라서 에뮬레이터에서 조금 놀아보십시오. 보시다시피, 순수한 Android Android 경험은 매우 미미하며, 이것이 제조업체가 AOSP를 필요에 맞게 사용자 지정하는 이유입니다. 그래서 당신은 할 수 있습니다 원한다면 우리가 방금 만든 이 ROM을 기기에 플래시하세요. 하지만 어떤 개선 사항도 추가하지 않으면 순수한 Android 경험은 참으로 지루한 일이 될 것입니다.
따라서 제조업체가 AOSP로 일반적으로 수행하는 작업은 포크, 자체 독점 바이너리 추가, UI 사용자 지정, 부팅 로고 추가 등입니다. 제조업체는 기본적으로 기본 Android ROM 위에 페인트를 칠하기만 하면 다음 목표도 됩니다. .
이 가이드의 두 번째 부분에서는 글꼴, 테마 및 부팅 애니메이션을 ROM에 추가하는 과정을 진행하므로 계속 지켜봐 주십시오!