( 이미지는 없습니다 )
얼마전 P11 이 업데이트가 한번 된 상태에서 계속 특정 앱들이 업데이트가 안되는 증세가 발생 했습니다.
일단 저의 경우는 외장 sd 카드를 ext4 로 내장메모리 처럼 포맷해서 쓰는 Adoptable mode로 ( 통합형 저장소 ) 쓰고 있었다는 점 입니다.
남은 실제 용량은 각각 내장 40GB 정도, 외장 60GB 정도 ... 용량이 없을리가 없었습니다.
그리고 문득 몇가지 테스트 해 보다 보니, 특정 디렉터리가 삭제 권한이 없다는 걸 발견 ... 이래서 용량이 없다는 거였구나 - 를 발견 했습니다.
원인분석
한시간 정도 원인을 알아 본 바, P11 의 업데이트 패키지를 수행 한 다음 내부 디렉터리 중 /sdard/Android 가 남아 있어서 발생 하는 문제 인걸 발견 했습니다 ... ( 실제 파일 탐색기 등에서는 /emulated/0/ 로 나옵니다 )
Lenovo 가 linux 를 모르는 사람들이 제품을 만들어서 생기는 문제인지 뭔지 모르겠는데 ... 내부에 symlink 로 /sdcard/Android 가 설정되거나 해야 하는데 여기에 실제 Android 디렉터리가 남아 있으니, sd 카드 영역에 데이터를 쓰지 못해 '외장 메모리 용량이 부족하단' 이런 메시지와 오류가 발생 하는 것 이었습니다.
어떻게 해결 하는가?
일단 adb 를 수행 할 수 있어야 합니다.
adb 나 Qualcomm QPST 내에 있는 드라이버 등은 인터넷 검색을 통해 받으셔야 합니다.
일단 저는 취미로 안드로이드 앱과 리버싱 등을 하기 때문에 이미 있는 것이라 따로 정보를 남기진 못했습니다.
간단한 방법을 차례로 써 보면 ...
- 디버깅 모드 활성: 설정 > 시스템 > 태블릿 정보 > 빌드 번호 연타 ( 커널 버전 위에 있습니다 )
- 패턴이나 암호 입력
- 개발자가 되었다면 이전으로 이동,
- 개발자 옵션 진입
- 아래로 스크롤 하면 "USB 디버깅" 이 있고 이걸 컴
- USB 연결 하면 PC 에서 Qualcomm QPST 설치되어 있을 경우 드라이버 인식
- (있는 분에 한해) MSYS2 보다는 그냥 Windows command ( cmd ) 실행 권장.
- macOS 일 경우 그냥 아무 shell 이나 실행.
- (Windows 사용자에 한해) adb 가 있는 위치로 이동
- adb devices 를 입력 하면 P11 이 연결 되어 있을 경우 SN 이 뜨면서 장치가 보임
- 다음을 입력 : adb shell mv /sdcard/Android /sdcard/Error1
- 이러면 맛이 가 있는 Android 디렉터리가 바뀌면서 내부에서 Android 가 재생성 됨 ( symlink 가 맞을 겁니다 )
그리고 앱스토에서 설치 안되던 앱들을 설치 해 봅니다.
귀신같이 잘 됩니다 ....
- 다시 설정>개발자 옵션 들어 가셔서 이제 개발자 옵션을 끄도록 합니다.
끝 입니다.
사족
아마 lenovo 에서 제공하는 update packet 내부에서 shell script 마지막이나 어딘가에서 장치가 sd카드가 adaptable mode 일 경우는 마운트 되어 있는 위치 /sdcard 내에서 Android 를 삭제하거나 해야 하는 것을 처리 안한것으로 보입니다. 이런점은 QA 가 제대로 동작하고 있다면 얼마든지 발견할수 있었을텐데, 아마 내부에서 이런 부분에 대해 관리가 안되는 것으로 보입니다.
root 권한이 없어서 /sdcard/Android 삭제는 안되지만 mv 로 이름을 바꾸면 바로 복구 될 수 있는 기능이라 다행이긴 합니다만 ..
앞으로도 이런 문제가 또 안생길리는 없는지라 발견하는대로 원인을 차아 올려 해결법을 찾아 보도록 하겠습니다.
용량 부족으로 인해서 앱의 업데이트가 계속 거부되고 있습니다. 내부 저장공간도 100GB나 남아있는데 말이죠.
이런 경우에는 어떻게 해야 하는지 알수 있을까요?
저렴한 맛에 샀다가 머리만 아프게 되네요.
업데이트는 어디에 써 지는지 모르겠는데, 제 생각엔 /sdcard/Android/obb 쪽에 써야 하는데 쓰기가 안되니 오류가 나는게 아닐까? 란 생각이 듭니다.
메모리가 없어도 안되는거면 시스템에 뭔가 있지 않을까 합니다.