ADB에서 스토리지 디렉토리를 어떻게 확인할 수 있습니까?


9

ADB를 사용하여 외부 저장소 디렉토리를 결정하는 방법이 있습니까 (Android API 호출과 동일 Environment.getExternalStorageDirectory())?

답변:


13

adb shell echo $EXTERNAL_STORAGE. 모든 크레딧은 Flow로 가서 실험하고 찾도록 유도했습니다.

당연히 cd $EXTERNAL_STORAGEadb 쉘 세션 동안 또는 터미널 에뮬레이터에서 필요할 수있는 모든 것을 사용할 수 있습니다 .


2
좋은 팀워크 :) +1
Flow

2
아주 좋아요! 감사! 그러나 쉘에 따라 $를 이스케이프해야 할 수도 있습니다. 예 : adb shell echo \ $ EXTERNAL_STORAGE
notlesh

흠, 내 삼성 생동감이 나에게 $ EXTERNAL_STORAGE의 값이 Environment.getExternalStorageDirectory ()와 다른 값을 준다는 것이 밝혀졌습니다. 이것은 내가이 전화에서 발견 한 첫 번째 불쾌한 버그가 아닙니다.
notlesh

@stephelton 실망 스러워요. 어느 것이 틀렸습니까? $ EXTERNAL_STORAGE가 맞습니다 /mnt/sdcard/external_sd/.
Matthew 읽기

6

나는 이것이 가능하다고 생각하지 않습니다. 마태 복음 참조

그러나 Environment.getExternalStorageDirectory()외부 저장소 디렉토리를 반환하는 방법을 잠그겠습니다 . 간단히 살펴보면 android/os/Environment.java이 모든 방법이 정적 상수 File 멤버을 반환한다는 것을 알 수 EXTERNAL_STORAGE_DIRECTORY있습니다. 이 상수는

private static final File EXTERNAL_STORAGE_DIRECTORY
        = getDirectory("EXTERNAL_STORAGE", "/sdcard");

어떤 전화 getDirectory()

static File getDirectory(String variableName, String defaultPath) {
    String path = System.getenv(variableName);
    return path == null ? new File(defaultPath) : new File(path);
}

따라서 외부 스토리지 디렉토리는 Java System 환경 변수 (또는 사전 정의 된 기본값)와 다릅니다. 이 추적을 더 따라갈 수 있습니다. 외부 저장소 디렉토리는 파일 시스템의 일부 구성 파일에서 하드 코딩 된 경로 일 수 있습니다. 또는 adb내가 모르는 것을 통해 이러한 환경 변수를 읽을 수있는 방법이 있습니다 .


2
이 정보 +1을 사용하여 adb 명령을 알아 냈습니다.
Matthew 읽기
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.