จะเข้าถึงโฟลเดอร์ data / data ในอุปกรณ์ Android ได้อย่างไร?


316

ฉันกำลังพัฒนาแอพและฉันรู้ฐานข้อมูลของฉัน *.dbจะปรากฏขึ้นdata/data/com.****.***

ฉันสามารถเข้าถึงไฟล์นี้จาก AVD ใน Eclipse ด้วยความช่วยเหลือของ sqlite manager

แต่ฉันไม่สามารถเข้าถึงไฟล์นี้ในโทรศัพท์ Android ของฉัน
ฉัน google มันและมันบอกว่าฉันต้องรูทโทรศัพท์ของฉันที่จะทำ แต่ฉันไม่ต้องการที่จะทำ (โทรศัพท์ใหม่ปัญหาการรับประกันและปัญหาด้านความปลอดภัย)

ดังนั้นนี่คือคำถามของฉัน: ฉันจะเข้าถึงdata/data/.....ไดเรกทอรีของฉันในโทรศัพท์ Android ของฉันได้อย่างไร " โดยไม่ต้องรูทมันอย่างไร"?

ฉันจะเปลี่ยนการอนุญาตผู้ใช้สำหรับไดเรกทอรีdata/data.....โดยไม่ทำการรูทได้หรือไม่


1
คุณมีไฟล์ database.db หรือไม่?
Amit Prajapati

ฉันใช้ฐานข้อมูล - "openOrCreateDatabase (.... )"
Naveen Prince P

5
คุณจะต้องทำการรูทเครื่องก่อนอย่างแน่นอน จากนั้นคุณจะต้องมีแอปตัวจัดการไฟล์ที่มีความสามารถซึ่งคุณสามารถใช้ได้ ตัวจัดการไฟล์ ASTRO เป็นที่นิยม แต่ไม่รองรับการเข้าถึงรูทดังนั้นจึงไม่มีประโยชน์สำหรับผู้ใช้ระดับสูง คุณควรใช้ ES File Explorer หรือ File Expert ได้ ฉันเพิ่งมีปัญหาในการดู / data / data หรือโฟลเดอร์อื่น ๆ ที่มีการป้องกันด้วย ES File Explorer และได้ละทิ้งไปแล้วและตอนนี้ฉันกำลังใช้ File Expert ทั้งคู่ต้องการให้คุณเข้าสู่การตั้งค่าและเปิดใช้งานตัวเลือก root explorer (และบางครั้งก็เมานต์ระบบไฟล์เป็นแบบเขียนได้) ดังนั้นคุณต้องทำก่อน
กลั้ว

นี่ไม่ใช่การเขียนโปรแกรมคำถามหรือคำตอบที่เกี่ยวข้อง
SkyWalker

คำตอบ:


375

การเข้าถึงไฟล์โดยตรงบนโทรศัพท์ของคุณเป็นเรื่องยาก แต่คุณอาจจะสามารถคัดลอกไฟล์เหล่านั้นไปยังคอมพิวเตอร์ที่คุณสามารถทำสิ่งที่คุณต้องการได้ หากไม่มีการรูทคุณมี 2 ตัวเลือก:

  1. หากแอปพลิเคชันนั้นสามารถ debuggable ได้คุณสามารถใช้run-asคำสั่งใน adb shell

    adb shell
    run-as com.your.packagename 
    cp /data/data/com.your.packagename/
  2. หรือคุณสามารถใช้ฟังก์ชั่นสำรองของ Android

    adb backup -noapk com.your.packagename

    ตอนนี้คุณจะได้รับแจ้งให้ 'ปลดล็อคอุปกรณ์ของคุณและยืนยันการดำเนินการสำรองข้อมูล' เป็นการดีที่สุดที่จะไม่ให้รหัสผ่านมิฉะนั้นจะเป็นการยากที่จะอ่านข้อมูล เพียงคลิกที่ 'สำรองข้อมูลของฉัน' ไฟล์ 'backup.ab' ที่ได้รับในคอมพิวเตอร์ของคุณมีข้อมูลแอปพลิเคชันทั้งหมดในรูปแบบการสำรองข้อมูล android โดยทั่วไปเป็นไฟล์ tar บีบอัด หน้านี้อธิบายวิธีที่คุณสามารถใช้คำสั่ง zlib ของ OpenSSL เพื่อคลายการบีบอัด คุณสามารถใช้ adb restore backup.dbคำสั่งเพื่อคืนค่าการสำรองข้อมูล


15
adb backup -f \location\on\local\drive -noapk app.package.nameทำงานให้ฉันโดยไม่รูท
theblang

24
ใช้คำสั่งนี้เพื่อคลายการบีบอัดไฟล์สำรองของคุณ:dd if=backup.ab bs=24 skip=1|openssl zlib -d > backup.tar
Hooman

11
ในตัวเลือกที่ 1 ฉันจะบอกคำสั่ง cp เพื่อบันทึกลงในแล็ปท็อปของฉันได้อย่างไร หากคุณให้ตัวอย่างของ Win ฉันต้องการทราบเช่นกันและจะแปลมัน ขอบคุณ
เจอราร์ด

10
สำคัญ: การรันadb backup -noapk com.your.packagenameจะบันทึกไฟล์ ab ในไดเรกทอรีปัจจุบันดังนั้นตรวจสอบให้แน่ใจว่าคุณได้สำรวจไดเรกทอรีที่ถูกต้อง (เช่นcd Desktop..)
Menelaos Kotsollaris

6
โปรดทราบว่าวิธีการสำรองข้อมูลจะให้การสำรองข้อมูลที่ว่างเปล่าหากแอปของคุณปิดใช้งานการสำรองข้อมูลผ่านandroid:allowBackup="false"รายการ
Tom

130

หากคุณใช้ Android Studio 3.0 หรือใหม่กว่าให้ทำตามขั้นตอนเหล่านี้

  1. คลิกดู > เครื่องมือของ Windows > อุปกรณ์ File Explorer
  2. ขยาย/ data / data / [ชื่อแพ็คเกจ]โหนด

คุณสามารถขยายแพ็คเกจที่รันในโหมดดีบักบนอุปกรณ์ที่ไม่ได้รูทเท่านั้น

ขั้นตอนใน Android Studio 3.0


1
ฉันไม่เห็นอะไรเลยในท่าเรือนี้ และบอกฉันว่าไม่มีอะไรแสดง คุณรู้ปัญหาอะไรบ้าง
Mahdi Azadbar

1
ใช้งานได้เฉพาะในโหมดดีบั๊กไม่ใช่สำหรับรีลีสบิวด์
itinance

ขอบคุณที่แสดงวิธีการ no-pita เพื่อค้นหาในระบบไฟล์!
Lensflare

ฉันดูเหมือนจะไม่มีตัวเลือกในเวอร์ชัน3.0.1มันมีการย้ายหรือไม่
เข้ารหัส

1
นี่มันเจ๋งมาก. หวังว่าฉันจะรู้เรื่องนี้สักครู่แล้ว
checkmate711

59

คุณสามารถลองดึง db โดยใช้แอพ root explorer และหากวิธีนี้ใช้ไม่ได้ผลคุณสามารถลอง:

  1. เปิด cmd
  2. เปลี่ยนไดเรกทอรีของคุณและไปที่ 'เครื่องมือแพลตฟอร์ม'
  3. ประเภท ' adb shell'
  4. su
  5. กด 'อนุญาต' บนอุปกรณ์
  6. chmod 777 /data /data/data /data/data/com.application.package /data/data/com.application.package/*
  7. เปิดมุมมอง DDMS ใน Eclipse และจากนั้นเปิด 'FileExplorer' เพื่อรับไฟล์ที่คุณต้องการ

หลังจากนี้คุณจะสามารถเรียกดูไฟล์บนอุปกรณ์ที่รูทได้


2
ฉันคิดว่าแอปสำรวจรากทำงานได้เฉพาะกับโทรศัพท์ที่รูตแล้วเท่านั้น ฉันจะลองวิธีที่ 2
Naveen Prince P

5
ไม่สามารถ chmod / data: ไม่อนุญาตให้ใช้งาน
bofredo

@bofredo ฉันคิดว่าเป็นเพราะโทรศัพท์ของคุณไม่ได้ถูกรูท คุณควรรูทโทรศัพท์ของคุณแล้วลองทำสิ่งนี้
Sheraz Ahmad Khilji

1
@mahemadhi ใช่คุณอาจต้องเรียกใช้คำสั่งนี้ด้วยตนเองสำหรับทุกไดเรกทอรีเนื่องจากไดเรกทอรีทั้งหมดมีสิทธิ์ที่เป็นส่วนตัว
Sheraz Ahmad Khilji

1
@VivekChavda yup พวกเขาต้องใช้โทรศัพท์รูท
Sheraz Ahmad Khilji

21

หากต้องการทำสิ่งใด ๆ ข้างต้น (เช่นการเข้าถึงโฟลเดอร์ที่ได้รับการป้องกันจากภายในโทรศัพท์ของคุณเอง) คุณยังคงต้องการรูท (ซึ่งรวมถึงการเปลี่ยนการอนุญาตการเมาท์ในโฟลเดอร์ / data และเข้าถึง)

หากไม่มีรูทการเข้าถึง/dataโดยตรงเพื่ออ่านยกเว้นจากภายในแอปพลิเคชันของคุณด้วยรหัสเป็นไปไม่ได้ ดังนั้นคุณสามารถลองคัดลอกไฟล์นั้นไปยัง sdcard หรือที่อื่นที่เข้าถึงได้จากนั้นคุณควรจะสามารถเข้าถึงได้ตามปกติ

การรูทจะไม่ทำให้การรับประกันของคุณเป็นโมฆะหากคุณมีอุปกรณ์สำหรับนักพัฒนา ฉันขอโทษไม่มีทางอื่น AFAIK


ฉันไม่ได้ใช้อุปกรณ์สำหรับนักพัฒนา Mine is Xperia U
Naveen Prince P

ฉันจะแก้ไขการอนุญาตให้ผู้ใช้ของโฟลเดอร์ข้อมูลด้วยคำสั่ง chmode ได้อย่างไร?
Naveen Prince P

พาร์ติชันทั้งหมดถูกเมาท์เป็นแบบอ่านอย่างเดียว ฉันจะบอกว่าทางออกที่ดีที่สุดของคุณจะเป็นไปadb pullตามที่ระบุไว้ในคำตอบด้านล่าง
Anirudh Ramanathan

ฉันเป็นไปได้ถ้าแอปพลิเคชั่นอนุญาต ไดเรกทอรีทั้งหมดมีสิทธิ์ x สำหรับทุกคน (แต่ไม่มี r สำหรับทุกคนดังนั้นคุณต้องรู้เส้นทาง) ยิ่งกว่านั้นขึ้นอยู่กับว่าแอพพลิเคชั่นทำให้โลกไฟล์เข้าถึงได้หรือไม่ ไฟล์บางไฟล์ส่วนใหญ่ไม่ใช่
Jan Hudec

ก่อนอื่นคุณบอกว่าเป็นไปไม่ได้ที่จะอ่านจากนั้นคุณแนะนำให้คัดลอกไฟล์ที่อื่น แต่จะคัดลอกไฟล์โดยไม่อ่านในตอนแรกได้อย่างไร ฉันคิดว่าคำตอบของรถนี้
จนถึง

13

วิธีที่ง่ายที่สุด (เพียงแค่ขั้นตอนเดียว) ในการดึงไฟล์จากโฟลเดอร์แอปพลิเคชั่นที่ debuggable (สมมติว่า/data/data/package.name/databases/file) บนอุปกรณ์ Android 5.0+ ที่ไม่ได้ทำการรูทโดยใช้คำสั่งนี้:

adb exec-out run-as package.name cat databases/file > file

12
  1. เปิดพรอมต์คำสั่งของคุณ
  2. เปลี่ยนไดเรกทอรีเป็น E: \ Android \ adt-bundle-windows-x86_64-20140702 \ adt-bundle-windows-x86_64-20140702 \ sdk \ platform-tools
  3. ป้อนคำสั่งด้านล่าง
  4. adb -d shell
  5. run-as com.your.packagename cat databases/database.db > /sdcard/database.db
  6. เปลี่ยนไดเรกทอรีเป็นcd /sdcardเพื่อให้แน่ใจdatabase.dbมี
  7. adb pull /sdcard/database.db หรือเพียงแค่คุณสามารถคัดลอก database.db จากอุปกรณ์

ทำงานได้สมบูรณ์แบบสำหรับฉัน ขอบคุณ! แต่ในกรณีของฉันชื่อไฟล์ฐานข้อมูลไม่มีนามสกุล. db
technik


5

ฉันมีปัญหาเดียวกันอีกครั้ง ไม่มีวิธีการเข้าถึงไฟล์โดยตรงภายในอุปกรณ์ android ยกเว้น adb shell หรืออุปกรณ์การรูท

ข้างๆนี่คือ 02 ทางเลือก:

1)

 public void exportDatabse(String databaseName)
   {
     try {
        File sd = Environment.getExternalStorageDirectory();
        File data = Environment.getDataDirectory();

        if (sd.canWrite()) {
            String currentDBPath = "//data//"+getPackageName()+"//databases//"+databaseName+"";
            String backupDBPath = "backupname.db";
            File currentDB = new File(data, currentDBPath);
            File backupDB = new File(sd, backupDBPath);

            if (currentDB.exists()) {
                FileChannel src = new FileInputStream(currentDB).getChannel();
                FileChannel dst = new FileOutputStream(backupDB).getChannel();
                dst.transferFrom(src, 0, src.size());
                src.close();
                dst.close();
            }
        }
    } catch (Exception e) {

    }
}

2) ลองทำสิ่งนี้: https://github.com/sanathp/DatabaseManager_For_Android


5

เพื่อสำรองจาก Android ไปยังเดสก์ท็อป

เปิดบรรทัดคำสั่ง cmd และเรียกใช้สิ่งนี้: adb backup -f C: \ Intel \ xxx.ab -noapk your.app.package your.app.packageอย่าใส่รหัสผ่านและคลิกที่สำรองข้อมูลของฉัน ตรวจสอบให้แน่ใจว่าไม่บันทึกบนไดรฟ์ C รูท คุณอาจถูกปฏิเสธ นี่คือเหตุผลที่ฉันบันทึกใน C: \ Intel

เพื่อแยกไฟล์ * .ab

  1. ไปที่นี่และดาวน์โหลด: https://sourceforge.net/projects/adbextractor/
  2. แตกไฟล์ที่ดาวน์โหลดมาและไปที่โฟลเดอร์ที่คุณแตกไฟล์ไว้
  3. รันด้วยชื่อไฟล์ของคุณเอง: java -jar abe.jar แกะไฟล์ c: \ Intel \ xxx.ab c: \ Intel \ xxx.tar

1
นี่เป็นคำตอบที่ดีมากขอบคุณ ทำงานสำหรับฉันในการแยกการสำรองข้อมูลแอปเดียวที่สร้างขึ้นบนอุปกรณ์ Xiaomi (พร้อมด้วย. bak ส่วนขยาย) ไม่จำเป็นต้องทำการรูท
ภาษารัสเซีย

4

บนรากอุปกรณ์วิธีที่ถูกต้องคือ:

Open cmd
Change your directory and go into 'Platform tools'
Type 'adb shell'
su
Press 'Allow' on device
chmod 777 /data /data/data /data/data/*
Open DDMS view in Eclipse/IntelliJ and from there open 'FileExplorer' to get your desired file

โซลูชันดั้งเดิมทำงานได้ แต่ chmod จะส่งคืนไดเรกทอรีที่ไม่รู้จัก การเปลี่ยนคำสั่ง chmod เป็น / data / data / * ให้การเข้าถึงโฟลเดอร์ย่อยทั้งหมดในไดเรกทอรีข้อมูลจาก DDMS ใน Intellij ฉันถือว่าโซลูชันเดียวกันนั้นเป็นจริงสำหรับ Eclipse DDMS

อัปเดต ดังนั้นสิ่งที่ฉันได้พบนั้นแปลก ฉันใช้ Nexus 6 โดยใช้ DDMS ใน IntelliJ (การตรวจสอบอุปกรณ์ Android) ฉันได้สร้างแอพเริ่มต้นเล็ก ๆ แอปดังกล่าวบันทึกข้อมูลลงในไฟล์. csv ใน data / data / com.example.myapp / files

เมื่อฉันเริ่มเข้าถึงไฟล์นี้ใน Nexus 6 เป็นครั้งแรกฉันพบว่าฉันต้องรูทอุปกรณ์ .. ฉันสามารถเห็นโฟลเดอร์ข้อมูลได้ แต่การพยายามเปิดมันจะไม่ทำงาน ตามที่กล่าวถึงทางออนไลน์ในที่อื่น ๆ การขยาย + จะหายไปจากนั้นจะปรากฏขึ้นอีกไม่นานหลังจากนั้น (หมายเหตุมีคำตอบทางเว็บที่อ้างว่าอนุญาตให้เข้าถึงโฟลเดอร์เหล่านี้ได้โดยไม่ต้องรูทฉันไม่พบพวกเขาจนกระทั่งสายเกินไป ไม่แน่ใจว่าฉันไม่ต้องการรูทหรือไม่ ((ฉันสามารถทำได้ด้วยตนเองมากกว่าพึ่งพาแอพหรือพร้อมรับคำสั่งเพื่อให้โซลูชันของฉัน))) ฉันรูท 6 และลอง DDMS อีกครั้ง

ณ จุดนี้มันแสดงให้ฉันเห็นโฟลเดอร์ข้อมูลและฉันสามารถขยายโฟลเดอร์และดู com ไดเรกทอรี แต่ฉันไม่สามารถเปิดได้เลย นั่นคือเมื่อฉันค้นพบทางออกข้างต้น คำแนะนำเบื้องต้นจะไม่ทำงานในส่วนนี้:

chmod 777 /data /data/data /data/data/com.application.pacakage /data/data/com.application.pacakage/*

นั่นคือเมื่อฉันลองวิธีแก้ปัญหาที่ฉันโพสต์:

chmod 777 /data /data/data /data/data/*

วิธีแก้ปัญหานั้นดูเหมือนว่าจะใช้ได้ แต่ในบางโฟลเดอร์เท่านั้น ตอนนี้ฉันสามารถขยายโฟลเดอร์ myapp ของฉันได้ แต่ไม่สามารถขยายไดเรกทอรีไฟล์ได้

ณ จุดนี้ฉันเล่นไปสักพักแล้วคิดว่าทำไมไม่ลองในไดเรกทอรีที่ฉันต้องการแทนที่จะลองใช้สัญลักษณ์ตัวแทนเหล่านี้

chmod 777 /data /data/data /data/data/com.example.myapp/*

ติดตามโดย:

chmod 777 /data /data/data /data/data/com.example.myapp/files

คำสั่งเหล่านี้ทำให้ฉันสามารถขยายและดูไฟล์ในไดเรกทอรีของแอพของฉันเพื่อยืนยันว่า. csv กำลังถูกบันทึกอย่างถูกต้อง

หวังว่านี่จะช่วยใครซักคน ฉันต่อสู้กับสิ่งนี้เป็นเวลาหลายชั่วโมง!

(เพื่อรวมกับเรื่องนี้ตาดเพิ่มเติมแปลกพอสิทธิ์ไม่ได้ผ่านไปยังไฟล์. csv ที่ส่งผ่านไปยังไดเรกทอรีไฟล์สิทธิ์ในไดเรกทอรีไฟล์ของฉันอ่าน drwxrwxrwx และสิทธิ์ในการใช้ไฟล์ log.csv ของฉันอ่าน -rw-rw --- - .. เพียงแค่ fyi)


2

คุณสามารถดาวน์โหลดไฟล์ sigle เช่นนั้น:

adb exec-out run-as debuggable.app.package.name cat files/file.mp4 > file.mp4

ก่อนที่คุณจะดาวน์โหลดคุณอาจไม่ได้ดูโครงสร้างไฟล์ใน App-Directory ของคุณ สำหรับขั้นตอนต่อไปนี้THelperสังเกตได้จาก:

adb shell
run-as com.your.packagename 
cd files
ls -als .

Android-Studioวิธีที่Shahidulกล่าวถึง ( https://stackoverflow.com/a/44089388/1256697 ) นอกจากนี้ยังทำงาน สำหรับผู้ที่ไม่เห็นDeviceFile Explorerตัวเลือกในเมนู: อย่าลืมเปิด / android-Directory ใน Android Studio เช่นการตอบสนองพื้นเมืองผู้ใช้มีนี้ภายในของโครงการโฟลเดอร์ขวาที่ระดับเดียวกับ / iOS ไดเรกทอรี


1

หนึ่งในวิธีที่ง่ายคือการสร้างฐานข้อมูลของคุณบนการ์ด SD เนื่องจากคุณไม่สามารถเข้าถึงโฟลเดอร์ข้อมูลของโทรศัพท์ในหน่วยความจำภายในยกเว้นว่าคุณรูทโทรศัพท์ เหตุใดจึงไม่เพียงสร้างฐานข้อมูลของคุณบนการ์ด SD

นอกจากนี้หากคุณต้องการคุณสามารถเขียนรหัสการคัดลอกไฟล์เพื่อคัดลอกไฟล์ฐานข้อมูลที่มีอยู่ (จากหน่วยความจำภายใน) ไปยังหน่วยความจำภายนอกโดยไม่ต้องใช้รูทใด ๆ


ทำอย่างไร? ฉันจะสร้าง db ใน sdcard ได้อย่างไร
Naveen Prince P

วิธีนี้จะช่วยคุณในการสร้างฐานข้อมูลบนการ์ด SD เพียงระบุเส้นทางของการFileชี้ไปที่การ์ด SD และคุณก็พร้อมที่จะไป
waqaslam

1

อาจเป็นการเข้าถึงโฟลเดอร์นี้คุณต้องมีสิทธิ์ระดับผู้ดูแล

ดังนั้นคุณมีสองตัวเลือก: -

  1. รูทอุปกรณ์ของคุณและลองเข้าถึงโฟลเดอร์นี้
  2. ใช้โปรแกรมจำลอง

ps: หากคุณใช้ตัวเลือกใด ๆ จากสองตัวเลือกข้างต้นคุณสามารถเข้าถึงโฟลเดอร์นี้ได้โดยทำตามขั้นตอนเหล่านี้

เปิดมุมมอง DDMS -> อุปกรณ์ของคุณ -> (เลือก File Explorer จากตัวเลือกหน้าต่างด้านขวา) เลือกแพ็คเกจ -> ข้อมูล -> ข้อมูล -> ชื่อแพ็คเกจ -> ไฟล์

และจากนั้นคุณสามารถดึงไฟล์ขึ้นมา


1

adb backupไม่ทำงานสำหรับฉันดังนั้นนี่คือสิ่งที่ฉันทำ (Xiaomi Redmi Note 4X, Android 6.0): การแปลงไฟล์สำรองข้อมูล (.bak ในกรณีของฉัน) เป็น tar (ทำซ้ำจากคำตอบเดิม): "
1. ไปที่การตั้งค่า> การตั้งค่าเพิ่มเติม> สำรองข้อมูลและการตั้งค่า> การสำรองข้อมูลท้องถิ่น
2. แตะ 'สำรอง' ที่ด้านล่างของหน้าจอ
3. ยกเลิกการเลือกเครื่องหมายถูก 'ระบบ' และ 'แอป'
4. แตะปุ่มเปิดเผยรายละเอียดทางด้านขวาของเซลล์ 'แอพ' เพื่อไปยังหน้าจอการเลือกแอพ
5. เลือกแอพที่ต้องการแล้วแตะตกลง
6. หลังจากการสำรองข้อมูลเสร็จสมบูรณ์ไฟล์ที่แท้จริงจะต้องอยู่อย่างใด เหมืองแร่อาจจะพบได้ที่/ MIUI / สำรอง / AllBackup / _FOLDER_NAMED_AFTER_BACKUP_CREATION_DATE_
7. จากนั้นฉันก็ทำตามขั้นตอนจากคำตอบนี้โดยRonTLV

a) ไปที่นี่และดาวน์โหลด: https://sourceforge.net/projects/adbextractor/
b) แยกไฟล์ที่ดาวน์โหลดมาและ นำทางไปยังโฟลเดอร์ที่คุณแตกออก
c) เรียกใช้ด้วยชื่อไฟล์ของคุณเอง: java -jar abe.jar แกะออก c: \ Intel \ xxx.ab c: \ Intel \ xxx.tar
"


0

คุณสามารถคัดลอกไฟล์ db นี้ไปยังที่อื่นใน eclipse explorer (เช่น sdcard หรือ PC) และคุณสามารถใช้ sqlite เพื่อเข้าถึงและอัปเดตไฟล์ db นี้


0

คำถามคือ: วิธีการเข้าถึงข้อมูลข้อมูลโฟลเดอร์ในอุปกรณ์ Android?


หากอุปกรณ์ Android เป็น Bluestacks * Root Browser APK แสดงข้อมูล / data / ..


ลองดาวน์โหลดรูทเบราว์เซอร์จาก https://apkpure.com/root-browser/com.jrummy.root.browserfree


หากไฟล์นั้นเป็นไฟล์ข้อความคุณต้องคลิกที่ "Open as", "Text file", "Open as", "RB Text Editor"


0

คุณยังสามารถลองคัดลอกไฟล์ไปยังโฟลเดอร์ SD Card ซึ่งเป็นโฟลเดอร์สาธารณะจากนั้นคุณสามารถคัดลอกไฟล์ไปยังพีซีที่คุณสามารถใช้ sqlite เพื่อเข้าถึงได้

นี่คือรหัสบางส่วนที่คุณสามารถใช้เพื่อคัดลอกไฟล์จากข้อมูล / ข้อมูลไปยังโฟลเดอร์ที่เก็บข้อมูลสาธารณะ:

private void copyFile(final Context context) {
    try {
        File sd = Environment.getExternalStorageDirectory();
        File data = Environment.getDataDirectory();

        if (sd.canWrite()) {
            String currentDBPath =
                    context.getDatabasePath(DATABASE_NAME).getAbsolutePath();

            String backupDBPath = "data.db";

            File currentDB = new File(currentDBPath);
            File backupDB = new File(sd, backupDBPath);

            if (currentDB.exists()) {
                FileChannel src = new FileInputStream(currentDB).getChannel();
                FileChannel dst = new FileOutputStream(backupDB).getChannel();
                dst.transferFrom(src, 0, src.size());
                src.close();
                dst.close();
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Manifest:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />

การดำเนินการทั้งหมดสำหรับไฟล์คัดลอกไม่สามารถเข้าถึงได้หากไฟล์ไม่แชร์อ่านการอนุญาตแก่ผู้อื่น
Steve Luck

0

ฐานข้อมูล SQLlite จัดเก็บไว้ในโทรศัพท์ของผู้ใช้และอยู่ภายใต้เส้นทาง:

/Data/Data/com.companyname.AppName/File/

คุณมี 2 ตัวเลือกที่นี่:

  1. คุณสามารถรูทโทรศัพท์ของคุณเพื่อให้สามารถเข้าถึงเพื่อดูไฟล์ db3 hidding ของคุณ
  2. นี่ไม่ใช่ทางออก แต่เป็นวิธีแก้ไข ทำไมไม่เพียงสร้างหน้าทดสอบที่แสดงตารางฐานข้อมูลของคุณโดยใช้ 'เลือก' statment
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.