SD 카드에서 부팅하도록 Android 부팅 순서를 수정하는 방법은 무엇입니까?

SD 카드에서 부팅하도록 Android 부팅 순서를 수정하는 방법은 무엇입니까?

SD 카드에서 Android를 부팅하는 방법을 연구하고 있습니다. 지침이 포함된 게시물은 다음과 같습니다.

승리!

sdbag의 기본 zip(4.3)을 얻어 컴퓨터에 추출했습니다. unmkbootimg를 사용하여 ROM의 boot.img에서 initramfs.gz 및 kernel.gz를 추출했습니다. initramfs의 압축을 풀고 cpio를 종료한 다음 /dev/block/mmcblk1p1(/data의 경우), p2(/system의 경우) 및 p3(/cache의 경우)를 참조하도록 macallan.fstab을 수정했습니다. 또한 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 시스템에 제어권을 전달하는 것입니다.

initrd를 사용하여 Linux 시스템을 부팅하는 것이 반드시 필요한 것은 아니지만 드라이버 로드, 파일 시스템 준비 등을 수행할 수 있으므로 더 쉬워집니다. TF701t용 기본 ROM(모든 Android 장치에서 사용할 수 있는 ROM은 아닐지라도 대부분의 경우)은 initrd를 사용하여 /system, /data 및 기타 필요한 파티션을 마운트합니다. 방금 내부 SD 대신 외부 SD에서 설치하라고 지시했습니다.

무선 분할이 어떻게 작동하는지 모르겠습니다. 파티션의 원시 펌웨어 이미지인가요, 아니면 펌웨어 바이너리가 있는 ext4(또는 기타) 파일 시스템인가요? 후자의 경우 initrd가 안드로이드에 제어권을 넘기기 전에 라디오 펌웨어와 기타 모든 작업을 설치했음을 의미할 수 있으므로 이를 외부 카드의 파티션으로 변경할 수 있음을 의미할 수 있습니다.

나는 잘 이해하지 못하며 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에서 부팅할 수 있다면 사용한 방법과 장비에 대해 설명하는 댓글을 남겨주세요. 감사합니다. :)

관련 정보