
SD 카드에서 Android를 부팅하는 방법을 조사해 왔습니다. 다음은 지침이 포함된 게시물입니다.
승리!
나는 sdbags의 기본 zip(4.3)을 가져와 내 컴퓨터에 추출했습니다. unmkbootimg를 사용하여 ROM의 boot.img에서 initramfs.gz 및 kernel.gz를 추출했습니다. initramfs의 압축을 풀고 cpio'd를 해제한 다음 macallan.fstab을 수정하여 /data의 경우 /dev/block/mmcblk1p1, /system의 경우 p2, /cache의 경우 p3을 참조하도록 했습니다. 또한 EMMC에서 파일 시스템을 만들려는 시도를 피하기 위해 init.macallan.rc를 수정했습니다. EMMC를 전혀 건드리지 않기를 바랍니다.
다음으로 initramfs.gz를 다시 빌드했습니다. 나는 좋은 품질의 클래스 10 microsd를 구입하여 3개의 기본 파티션, 즉 /data용, /system용, /cache용(/system 및 /cache용 약 2GB 및 1GB)으로 컴퓨터에 파티션을 나누었습니다. 3개의 파티션 모두에 ext4 파일 시스템을 만들고 p2를 마운트한 다음 ROM을 복사하고 가이드로 업데이터 스크립트를 사용하여 수동으로 설치했습니다. 그런 다음 SD 카드를 마운트 해제하고 TF701t에 장착했습니다.
부팅하기 위해 태블릿을 fastboot 모드로 설정했습니다. 'fastboot boot'를 사용하여 커널과 램디스크를 부팅했습니다. 복구 시 kexec가 필요하지 않습니다. 내부 EMMC에 전혀 의존하지 않고 이 작업을 수행할 수 있습니다. 부팅하는 데 시간이 좀 걸렸지만 먼저 부팅해 보았습니다. 앱서랍이 나오는 속도가 조금 느렸지만 태블릿을 사용할 수 있게 되어 매우 기쁩니다! 이 전체 프로세스는 제가 예상했던 것보다 훨씬 쉬웠으며, 원하는 ROM을 부팅하기 위해 이 작업을 수행할 수 있다고 확신합니다. 블루투스 키보드의 드라이버 문제로 인해 재고만 사용합니다.
그래도 cromi의 ROM2SD 브랜치를 유지 관리하는 데 기꺼이 노력하겠습니다.
도움을 주신 모든 분들께 감사드립니다!
그다음엔 더 자세한 설명이 있었는데여기:
귀하의 질문에 대답하자면, 모르겠습니다. 내 방법은 어떤 장치/파티션/시스템 및/데이터가 존재하는지에 대한 ROM의 아이디어를 변경했기 때문에 부팅에 효과적입니다. 귀하의 장치가 어느 파티션에 라디오 펌웨어를 보유하고 있는지에 대한 아이디어가 어디에 있는지 모르겠습니다. initramfs 어딘가에 있다면 내가 수정한 것과 같은 방식으로 수정하고 외부 SD에서 라디오를 로드하도록 지시할 수 있습니다. 내부 SD에서 라디오를 찾기 위해 ROM이 하드코딩되어 있으면 문제가 발생할 수 있습니다.
호기심이 많은 사람들을 위한 initramfs에 대한 간단한 참고 사항: initramfs(initrd, initramdisk 등)는 Linux 시스템을 실행하는 데 필요한 필수 요소를 모두 포함하는 압축된 소형 Linux 파일 시스템입니다. initrd의 임무는 실제 Linux 설치를 보유하고 있는 파일 시스템이 어디에 있는지 파악하고 이를 마운트한 다음 해당 Linux 시스템에 제어권을 넘겨주는 것입니다.
Linux 시스템을 부팅하기 위해 initrd를 사용할 필요는 없지만 드라이버 로드, 파일 시스템 준비 등을 할 수 있기 때문에 훨씬 더 쉬워집니다. TF701t용 기본 ROM(그리고 전부는 아니지만 대부분을 가정합니다. 모든 안드로이드 장치용 ROM)은 initrd를 사용하여 /system, /data 및 기타 필요한 파티션을 마운트합니다. 내부 SD 대신 외부 SD에서 마운트하라고 지시하는 것뿐입니다.
라디오 파티션이 어떻게 작동하는지 모르겠습니다. 파티션에 있는 원시 펌웨어 이미지인가요, 아니면 펌웨어 바이너리 파일이 있는 ext4(또는 기타) 파일 시스템인가요? 후자의 경우 initrd가 Android에 제어권을 넘기기 전에 수행하는 모든 작업과 함께 무선 펌웨어를 마운트한다는 의미일 수 있으므로 이를 외부 카드의 파티션으로 변경할 수 있음을 의미할 수 있습니다.
잘 이해가 안 되고, 이것이 Linux OS(inramfs.gz, kernel.gz 및 일반적인 부팅 프로세스)와 유사한 사항을 다루는 것처럼 보이므로 좀 더 자세히 설명하기를 바랐습니다.
답변1
SD 카드에서 부팅하는 표준 방법을 잘 모르겠습니다. 얼마나 쉬운지 여부는 주로 사용 중인 Android 기기에 따라 다릅니다.
예를 들어 Nexus 기기가 있는 경우 Play 스토어에서 MultiROM을 다운로드하면 됩니다. 일반적으로 그렇게 간단하지는 않습니다. 현재 내부 eMMC 메모리가 죽었기 때문에 Mediatek MT6575 기반 장치를 SD 카드에서 부팅하려고 하는데 아직 관리하지 않았으므로 지금은 '벽돌'인 것 같습니다.
여기서 제가 말하려는 것은 각각 다른 파티션 레이아웃, 커널 등을 가진 다양한 장치가 있기 때문에 모든 장치에서 작동하는 단계별 가이드가 없다는 것입니다.
몇 가지 다른 장치에 대해 SD에서 부팅하는 방법에 대한 몇 가지 예를 제공할 것이며, 관련된 내용을 볼 수 있기를 바랍니다. 또한 귀하가 가지고 있는 장치가 무엇인지 말하면 해당 장치의 작동 방법을 발견했을 수도 있습니다.
SdCard 위키에서 Android 부팅- 이것은 'sunxi' 안드로이드 태블릿용 사이트에 있지만, SD 카드 이미지가 sunxi 태블릿에서만 작동하더라도 복구 및 부팅 파티션 편집에 대한 정보가 포함되어 있으므로 정보가 도움이 됩니다.
GS3에서 eMMC 대신 SD 사용- SD 카드를 분할하고 boot.img를 편집하는 방법을 단계별로 설명합니다. MT6575에서 이 방법을 시도했지만 fstab에서 정보를 변경하는 것만으로는 충분하지 않았습니다. 여전히 내 장치에 대해 eMMC에서 부팅을 시도하고 있었지만 GS3가 있는 경우 이것이 이상적입니다.
MediaTek 장치용 멀티부팅- 내부 eMMC에 1개의 ROM을 갖고 SD 카드에 두 번째 ROM을 갖는 방법. 대략적인 단계별 설명을 제공하며 mediatek 장치가 있는 경우 작동할 수 있습니다.
ROM을 변환하여 SD 카드에서 부팅- Nokia X2를 염두에 두고 작성했지만 지금은 이 방법을 사용하여 두 시스템 파티션을 동시에 마운트하고 SD 시스템 파티션의 마운트 지점은 /system-ext입니다.
지금은 그게 전부입니다. SD에서 부팅할 수 있다면 어떤 방법을 사용했고 어떤 장치를 사용했는지 설명하는 댓글을 게시해 주시겠습니까? 감사합니다. :)