이 방식을 사용하면 바로 태블릿에 설치 가능한 형태로 빌드된다.
커널 소스 혹은 defconfig를 수정한 후 사용하고자 할 때 유용하다
빌드 방법 원문 : https://wiki.lineageos.org/devices/gta4xlwifi/build
0. vm에 ubuntu 18.04.6 설치 (하드 용량은 넉넉히 500기가 정도)
200기가로 빌드 불가능했음
램은 20기가 정도 설정
1. 의존 패키지 설치
sudo apt-get install openssh-server libwxgtk3.0-dev bc bison build-essential ccache curl python flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev vim
2. adb 설치
https://dl.google.com/android/repository/platform-tools-latest-linux.zip
unzip platform-tools-latest-linux.zip -d ~
~/.profile에 아래 추가
# add Android SDK platform tools to path
if [ -d "$HOME/platform-tools" ] ; then
PATH="$HOME/platform-tools:$PATH"
fi
3. 디렉토리 생성
mkdir -p ~/bin
mkdir -p ~/android/lineage
4. repo 설치
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
git config --global user.email "abc@lol.com"
git config --global user.name "kim kim"
5.
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
6. ~/.bashrc 에 아래 추가
ccache -M 50G
source ~/.profile 실행
7. 리니지OS 소스 전체 다운로드 (OS+소스 = 기가)
cd ~/android/lineage
repo init -u https://github.com/LineageOS/android.git -b lineage-18.1
repo sync
8. 갤럭시 탭 S6용 커널 다운로드
source build/envsetup.sh
breakfast gta4xlwifi
중간에 vendor 어쩌고 Makefile에러가 발생하면 9번 항목 실행후 breakfast 재시도
(대부분의 makefile에러는 make clean과 breakfast반복으로 해결 가능)
breakfast중 sepolicy.mk 에러가 발생한다면
cd ~/android/lineage/device
mkdir samsung_slsi
cd samsung_slsi
git clone https://github.com/LineageOS/android_device_samsung_slsi_sepolicy
mv android_device_samsung_slsi_sepolicy sepolicy
이 후 make clean 후 breakfast 재시도
9. ubuntu vm에 태블릿 연결 후 태블릿에서 충전이 아닌 PTP로 설정
주의 : adb shell에 su권한이 없으면 파일 복사를 실패함 -> 개발자 옵션에서 디버깅 시 루트 권한 사용 반드시 체크
cd ~/android/lineage/device/samsung/gta4xlwifi
./extract-files.sh
10. 커널 보호 기능 해제
~/android/lineage/kernel/samsung/gta4xl/arch/arm64/configs/exynos9611-gta4xlwifi_defconfig 편집
아래의 각 라인을 찾아 y를 n으로 수정
(그외 참조 : https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings)
CONFIG_EXYNOS_KERNEL_PROTECTION=y
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
CONFIG_EXYNOS_CONTENT_PATH_PROTECTION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=n
https://codetronik.tistory.com/155 참조하여 소스도 수정하여야 한다.
11. 빌드
cd ~/android/lineage
source build/envsetup.sh (커널소스 재빌드 시)
brunch gta4xlwifi
12. 출력 파일 확인
cd $OUT
존재 여부 확인 : recovery.img / lineage-18.1-20220418-UNOFFICIAL-gta4xlwifi.zip
13. 태블릿에 롬 설치 후 adb shell 접속 후 dmesg > grep exynos로 아래의 로그가 뜨는지 확인 (뜨면 defconfig 수정 실패한 것임)
[ 0.371387] exynos_protect_kernel_text: Kernel text start VA(0xffffff8008188000), PA(0x80188000)
[ 0.371398] exynos_protect_kernel_text: Kernel text end VA(0xffffff8008e28000), PA(0x80e28000)
'Android Linux > Rooting' 카테고리의 다른 글
Galaxy Tab S6 Lite 리니지OS 설치 (0) | 2022.04.20 |
---|---|
Galaxy Tab S6 Lite - lkm빌드를 위한 커널 빌드 (0) | 2022.04.17 |
갤럭시탭 s6 lite 루팅 방법 (3) | 2021.04.10 |