2017-12-05 7 views
0

안드로이드 장치에 연결된 SD 카드의 특정 LBA에 액세스하려고합니다. Android는 기본적으로 낮은 수준의 액세스 수준을 제공하지 않습니다. SCSI 명령을 통해 USB 카드 판독기를 통해 액세스를 시도했지만 작동하지 않았습니다. 또한 POSIX 명령을 사용하여 LBA를 직접 읽고 (CPP 기본 명령은 jni를 사용하여) 읽었지만 파일 읽기는 LBA 직접 읽기가 아니라 읽기 작업을 시도했습니다. 누구든지 똑같이 할 수있는 방법을 제안 할 수 있습니까?안드로이드 장치에서 SD 카드의 특정 LBA에 액세스 할 수 있습니까?

답변

0

블록 장치를 사용하여 Linux/Unix에서 일반적으로하는 것처럼 안드로이드의 파티션 (내가 말할 수있는 사용자 파티션)에 액세스 할 수 있다고 생각하지 않습니다. Linux에서이 방법을 달성하는 방법에 대한 자세한 내용은 link을 확인하십시오. 안드로이드에 이제

, 일반적 /저장/sdcard0 또는 /저장/sdcard1 또는 /stroage 같은 안드로이드 장치에 표시되는 파티션은// 0 또는 /저장/80FD-33DA 등을 에뮬레이트 할 수 내부 저장소의 파티션에 매핑합니다. 내부 저장 장치는 일반적으로 사용자 응용 프로그램에 액세스 할 수없는 시스템과 사용자 응용 프로그램 (사용자 응용 프로그램에서 액세스 할 수있는 시스템 용)에 대한 두 개의 파티션으로 구성됩니다. 또한 Android OS 버전 및 기기 제조업체에 따라 외부 저장 장치 SD 카드에 매핑 될 수도 있습니다.

원시 레벨 파티션에 액세스하는 또 다른 방법은 dd 명령을 사용하는 것입니다 (일부 안드로이드 버전에서는 다시 사용할 수 없음). 이것을 위해 android stackexchange article을 확인하십시오.

dd if=/dev/block/mmcblk0p7 of=/storage/sdcard0/usrdata.img 

또한 사용자 파티션을들이 나열하는 방법 아이디어를 얻을하고 관리 할뿐만 아니라 file manager apps을 확인할 수 있습니다