표시되는 이유는 무엇입니까 액세스 거부하는 데이터는 폴더에 사용하는 경우 adb?
문제
내가 연결되어 내 라이브 장치를 사용하 adb 고 다음 명령을 실행하십시오.
C:\>adb -s HT829GZ52000 shell
$ ls
ls
sqlite_stmt_journals
cache
sdcard
etc
system
sys
sbin
proc
logo.rle
init.trout.rc
init.rc
init.goldfish.rc
init
default.prop
data
root
dev
$ cd data
cd data
$ ls
ls
opendir failed, Permission denied
을 보고 놀랐는 접근이 거부되었습니다.어떻게 볼 수 없습니다 분위기가 디렉토리를 사용하여 명령행이 같은가?
나는 어떻게 루트 액세스 권한에서 내 휴대폰?
다른 팁
Debuggable Application의 API 레벨 8 (Android 2.2)에서 시작하여 (릴리스 빌드가 요청되지 않는 한 항상 Android Studio가 제작 한 것) 쉘을 사용할 수 있습니다. run-as
명령 또는 명령 또는 실행 파일을 특정 사용자/응용 프로그램으로 실행하거나 uid 응용 프로그램의 액세스에 액세스 할 수 있습니다 데이터 예배 규칙서.
YourApp의 디렉토리 내용을 나열합니다.
run-as com.yourapp ls -l /data/data/com.yourapp
UID로 전환하십시오 com.yourapp 그리고 해당 UID를 사용하여 모든 추가 명령을 실행하십시오 (전화 할 때까지 exit
):
run-as com.yourapp
cd /data/data/com.yourapp
ls -l
exit
참고 1: 이있다 알려진 문제 일부 HTC 욕망 전화로. 비표준 소유자/권한으로 인해 /data/data
예배 규칙서, run-as
명령은 해당 전화기에서 실행되지 않습니다.
노트 2: @avio의 의견에 지적 된 바와 같이 :run-as
이 플랫폼에서는 Samsung Galaxy S 폰이 모든 버전 (7 ~ 10.1)에서 CyanogenMod를 실행하는 문제가 있습니다. /data/data
Symlink입니다 /datadata
. 문제를 해결하는 한 가지 방법은 Symlink를 실제 디렉토리로 바꾸는 것입니다 (불행히도 일반적으로 루트 액세스가 필요합니다).
우리가 시작하기 전에, 당신은 당신 뿌리 전화?하지 않을 경우,저는 좋는 시간을 만들 수 있습니다.99%의 자습서는 이러한 작업을 수행하는 데 도움이 될 필요는 당신이 당신의 휴대 전화(난 b/c 가 소요 시간에 대한 방법을 검색을 할 필요없이 휴대 전화가..를 찾을 수 없..)또한 당신이 그것에 대하여 생각하는 경우,귀하의 아이폰 또는 뿌리를 이렇게 같은 작업입니다.그래서 그것은 완전히 합리적이다.더 많은 응원에 대한 끝에서의 대답이다.
명령행에서 유형:
adb shell
이것은 당신을 당신의 안드로이드 쉘이 명령 라인(당신은 다음과 같은 내용이 표시될 것입니다: shell@android:/ $
이제 유형:
shell@android:/ $run-as com.domain.yourapp
이해 당신을 데이터로 직접 디렉토리 com.domain.yourapp
:
shell@android:/data/data/com.domain.yourapp $
지 않는 경우(즉,오류 메시지가 표시되는 경우)그 다음 당신은 아마 없는 휴대 전화,또는 당신은 사용하지 않은 루트 사용자 권한이 있습니다.를 사용하는 루트 사용자 권한,유형 su
에 adb 는 명령 라인,어떻게 볼 오류 메시지가 표시되는 경우,당신은 휴대 전화되지 않은 뿌리를 내리고 있습니다.그렇지 않은 경우에,루트는 그것이 첫째로 다음이 계속 이러한다.
거기에서 입력할 수 있습니다 ls
당신은 모든 디렉토리에를 포함하는 dbs:
shell@android:/data/data/com.domain.yourapp $ ls
cache
databases
lib
shared_prefs
후에 사용할 수 있는 sqlite3 를 찾아 디베이스..당신이 설치되어 있지 않은(당신은 그것을 찾을 수 있습니를 입력하여 sqlite3
, 는 경우에,당신 command not found
다음 설치해야 합니다.를 설치하 sqlite 지침을 따르십시오 기.
에 대한 응원: 는 경우 뿌리를 둔 당신의 전화기 전에,그리고 당신이 그것에 대해 걱정하고있어 조이는 휴대 전화,나는 당신을 말할 수 있는 완전한 자신감을 걱정할 필요가 없습니다.가 있 톤의 빠르고 쉽게 전화를 응원하는 튜토리얼에 대한 거의 모든 새로운 옛 모델,거기에 고 있는 루트도 귀하의 휴대 전화가 있는 경우 mac (내가 뿌리 내 s3 내 mac).
$ ADB 쉘
$ cd /data
$ ls
Opendir가 실패했고 허가가 거부되었습니다
당신은 이것을해야합니다 :
$ adb shell
$ cd /data
shell@android:/data $ run-as com.your.package
shell@android:/data/data/com.your.package $ ls
확인!
뿌리를 둔 Samsung Galaxy S.에서 작동하려고 할 때도 비슷한 문제가있었습니다.
> adb root
"프로덕션 빌드에서 루트로 실행할 수 없다"는 메시지가 실패합니다. 다음은 루트가 될 수있는 간단한 방법입니다.
이전 대신에 다음 두 명령을 발행합니다.
> adb shell
$ su
첫 번째 명령 후, 프롬프트가 위와 같이 '>'에서 '$'로 변경되면 ADB 쉘 환경에 들어갔다는 것을 의미합니다. 그 후 두 번째 명령을 발행 한 후 프롬프트가 '#'로 변경되면 이제 루트임을 의미합니다. 이제 루트로서, 당신은 당신의 장치로 원하는 것을 할 수 있습니다.
'안전한'쉘로 다시 전환하려면 문제
# exit
프롬프트 '$'가 다시 나타나는 것을 알 수 있습니다. 즉, Root가 아닌 ADB 쉘에 사용자로서 ADB 쉘에 있다는 것을 알 수 있습니다.
나는 이것에 대해서도 많은 문제가 있었다. 여전히 권한과 루트 실행을 완전히 이해하지 못하지만 이것은/data/data/[패키지 이름] /databases/my_db.db에서 데이터베이스 파일을 복사하는 데 도움이되었습니다 (이전 답변 중 하나). 달리기 쉘 루트, 또는 Su 어떤 이유로 쉘에서는 작동하지 않았으며 DB 파일을 복사하지도 않았으며 (디렉토리로 이동할 수 없었습니다) sqlite3.
그래서 이것은 효과가있었습니다! DOS 명령 프롬프트에서 :
C:\Program Files\Android\android-sdk\platform-tools>adb shell
1|shell@android:/ $ run-as de.vogella.android.locationapi.maps
run-as de.vogella.android.locationapi.maps
1|shell@android:/data/data/de.vogella.android.locationapi.maps $ cd /data
cd /data
shell@android:/data $ cd data
cd data
shell@android:/data/data $ cd de.vogella.android.locationapi.maps
cd de.vogella.android.locationapi.maps
shell@android:/data/data/de.vogella.android.locationapi.maps $ cd databases
cd databases
shell@android:/data/data/de.vogella.android.locationapi.maps/databases $ ls
ls
bus_timetable_lines.db
bus_timetable_lines.db-journal
shell@android:/data/data/de.vogella.android.locationapi.maps/databases $ cat bus
_timetable_lines.db > /sdcard/db_copy.db
bus_timetable_lines.db > /sdcard/db_copy.db <
shell@android:/data/data/de.vogella.android.locationapi.maps/databases $exit ^
exit
shell@android:/ $ exit
exit
C:\Program Files\Android\android-sdk\platform-tools>
이제 sdcard 디렉토리로 이동하여 파일 DB_COPY.DB를 받으십시오. 그조차 숨겨져 있었지만 이메일을 보냈습니다. Windows로 돌아가서 SQLITE 데이터베이스 브라우저로 DB 파일을 열 수있었습니다. :)
다음은 루트 액세스를 얻는 두 단계입니다.
- 안드로이드 장치는 루팅되어야합니다.
- ADB 쉘에서 SU를 입력하면 안드로이드 장치가 y/n을 자랑합니다. 당신은 허용을 선택합니다.
생산 빌드는 /데이터 /앱을 입력 할 수 없습니다
drwxrwx--- system cache 1970-01-01 08:00 cache
drwxrwxr-x root system 1970-01-01 08:00 mnt
drwxrwx--x system system 1970-01-01 08:15 data
운영하려면 올바른 소유자에 대한 변경이 필요할 수 있습니다.
문제는 최신 CMS의 개발 옵션에 ADB 루트에 액세스 할 수 있어야한다는 것일 수 있습니다. 여기에 내가 한 일이 있습니다.
ABC@ABC-L655 : ~ $ sudo adb 킬-서버
ABC@ABC-L655 : ~ $ sudo adb root start-server * 데몬이 실행되지 않습니다. 지금 포트 5037 *에서 시작하여 성공적으로 시작되었습니다 * 시스템 설정에 따라 루트 액세스가 비활성화됩니다 - 설정에서 활성화 -> 개발 옵션
개발 옵션을 변경 한 후 ...
abc@abc-L655:~$ sudo adb kill-server
abc@abc-L655:~$ sudo adb root start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
restarting adbd as root
abc@abc-L655:~$ adb shell
root@android:/ # ls /data/ .... good to go..
응용 프로그램 패키지를 알고 있다면 가능합니다 cd
그 폴더에 직접 ..
예를 들어 cd data/data/com.yourapp
이것은 당신을 디렉토리로 떨어 뜨릴 것입니다 read/writable
따라서 필요에 따라 파일을 변경할 수 있습니다. 폴더가 동일하기 때문에 emulator
,이를 사용하여 폴더 경로를 얻을 수 있습니다.
당신이 당신을보고 싶다면 DB & 테이블 그런 다음 가장 중요한 방법은 사용하는 것입니다 Stetho
. 사용하는 모든 Android 개발자를위한 멋진 도구 SQLite
Buit by Facobook developed
.
Steps to use the tool
- 응용 프로그램의 Gradle 파일 (모듈 : App)에 아래 종속을 추가하십시오.
'compile'com.facebook.steto : Stetho : 1.4.2 '
- activity oncreate () 메소드에 아래 코드 줄 추가
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Stetho.initializeWithDefaults(this); setContentView(R.layout.activity_main); }
이제 응용 프로그램을 구축하고 앱이 실행될 때 URL에서 Chrome을 열어 앱 데이터베이스를 탐색 할 수 있습니다.
chrome://inspect/#devices
동일 한 스크린 샷은 아래 _
Chromeinspact
당신의 DB
이것이 모두에게 도움이되기를 바랍니다! :)
루팅없이 다음 CMD 스크린 샷을 통해 파일에 액세스 할 수 있습니다.
사용자에 따라 Platform-Tools 폴더에서 CMD를 사용하여 ADB를 시작하십시오.
cd C:\Users\YourUserName\AppData\Local\Android\sdk\platform-tools
다른 폴더에있을 수 있습니다. 설치 한 위치에 따라 다릅니다.
작업 장치를 표시합니다.
adb devices
응답 OS는 명령입니다
List of devices attached 0123456789ABCDEF device
명령을 작성하십시오
adb -s 0123456789ABCDEF shell "su"
그것은 열립니다
root@theDeviceName:/ #
4. 파일에 접근하고 모든 파일을 나열하십시오
ls
그리고 데이터 폴더와 같은 다른 곳으로의 So-On Chang 디렉토리
cd data/data
장치의 쉘 디렉토리에있을 때. 그냥 실행
su - root
그런 다음 데이터/ 폴더에 액세스 할 수 있어야합니다.