จะทำอย่างไรถ้าไม่มี vold fstab วิธีเปลี่ยนหน่วยความจำภายในของ Android ด้วยการ์ดหน่วยความจำ การถ่ายโอนแอปพลิเคชัน Android ไปยังการ์ดหน่วยความจำ SD แบบเต็ม

ตามที่สัญญาไว้ในความคิดเห็นในหมายเหตุ " Deployment Manager หรือที่อื่นที่คุณสามารถปรับใช้ไฟล์ได้" ฉันขุดเพิ่มเติมเล็กน้อยในระบบไฟล์ (หรือมากกว่าใน Directory Hierarchy) พื้นฐานสำหรับบทความนี้เป็นคำถามจาก Dmitry Kuzmenko ฉันหวังว่าฉันจะสามารถตอบคำถามนี้ได้ในปริมาณที่ต้องการ มาพูดคุยกันเล็กน้อยเกี่ยวกับ Android OC ผู้ผลิตอุปกรณ์ที่ใช้ระบบปฏิบัติการนี้ และฉันจะแสดงตัวเลือกต่างๆ เพื่อรับรายการอุปกรณ์จัดเก็บข้อมูลที่พร้อมใช้งาน


ภาคต่อสำหรับ Android 4.4.* ที่นี่: Android 4.4 และการเขียนไปยังการ์ดหน่วยความจำภายนอก...

อัปเดต (17.02.14) ตามความคิดเห็น มีการเปลี่ยนแปลงในแอปพลิเคชัน
อัปเดต2 (17.02.14) ตรวจพบผลบวกที่ผิดพลาดของตัวแปรที่ 3 คุณลักษณะนี้ได้รับการแก้ไขแล้ว ปรับปรุงการค้นหาเล็กน้อย

อัปเดต (03/30/14) วิธีที่สามใช้ได้กับ Android เวอร์ชันที่ต่ำกว่า 4.3 สำหรับเวอร์ชันที่สูงกว่า 4.3 ฉันจะไม่เขียนโค้ดเพราะ ฉันไม่มีอุปกรณ์ที่ใช้ Android เวอร์ชันนี้เพื่อวิเคราะห์โครงสร้างใหม่
ปรับปรุง (21.04.14) ตรวจสอบรหัสบน Delphi XE6

อัปเดต 3 (07/15/14) อัปเดตซอร์สโค้ดพบว่าทำงานไม่ถูกต้อง (ข้อผิดพลาด AV) บนอุปกรณ์บางเครื่อง

ฉันจะพยายามอธิบายสาระสำคัญทั้งหมดโดยสังเขปเพื่อไม่ให้ข้อความ 10 หน้าออกมา

เริ่มจากพื้นฐานกันก่อน

ระบบปฏิบัติการ Android ใช้เคอร์เนล Linux บนระบบปฏิบัติการที่คล้ายกับ Unix จะมีไดเร็กทอรีรูทเพียงไดเร็กทอรีเท่านั้น และไฟล์และไดเร็กทอรีอื่น ๆ ทั้งหมดจะถูกซ้อนอยู่ในนั้น ในระบบที่คล้ายกับ UNIX ส่วนใหญ่ ไดรฟ์แบบถอดได้ แฟลชไดรฟ์ และอุปกรณ์จัดเก็บข้อมูลภายนอกอื่นๆ จะถูกเมาต์ในไดเร็กทอรี /mnt, /mount หรือ /media (ในกรณีของเราคือโฟลเดอร์ /mnt) ระบบปฏิบัติการที่เหมือน UNIX ยังอนุญาตให้ติดตั้งดิสก์โดยอัตโนมัติเมื่อระบบปฏิบัติการบู๊ต

กำหนดรายการอุปกรณ์จัดเก็บข้อมูลที่มีอยู่

ต้องบอกทันทีว่าฉันไม่พบวิธีการใน Android API ที่อนุญาตให้คุณกำหนดรายการดังกล่าว ดังนั้น สิ่งแรกที่อยู่ในใจคือการตรวจสอบเส้นทางที่เป็นไปได้ด้วยตัวคุณเอง และที่นี่ "แต่" ตัวแรกจะปรากฏขึ้น ทุกอย่างจะง่ายขึ้นถ้าไม่ใช่สำหรับผู้ผลิตอุปกรณ์ที่ยังต้องการเปลี่ยนแปลงบางอย่างใน Android และในกรณีนี้พวกเขาพยายาม ฉันทดลองและพบว่าตัวเลือกเส้นทางที่เป็นไปได้มีจำนวนค่อนข้างมากและแทบจะเป็นไปไม่ได้เลยที่จะค้นหาตัวเลือกทั้งหมด ยกเว้นเพื่อเริ่มรวบรวมฐานข้อมูลทั่วไปของตัวเลือกดังกล่าวจากเจ้าของอุปกรณ์ Android ทั้งหมด

เข้าร่วมในการทดลองของฉัน (ของฉันมีเพียงหนึ่งเดียว - SGS2 :):

  • Samsung Galaxy S Plus - Android 2.3.6
  • Samsung Galaxy S2 - Android 4.1.2
  • HTC Sensation Z710e - Android 4.0.3
  • HTC One X - Android 4.2.2
  • HTC Rhyme - Android 4.0.3

ตอนนี้เรามาดูกันว่าอุปกรณ์เหล่านี้มีเส้นทางใดบ้าง เส้นทางไปยังการ์ดภายใน (ถ้ามี) การ์ดภายนอก (ถ้ามี) และอุปกรณ์ usb (ถ้ามี) มีความสำคัญต่อเรา

อย่างที่คุณเห็น เส้นทางต่าง ๆ ทุกที่

ตัวเลือกที่ 1.

เราสร้างอาร์เรย์ของค่าที่เป็นไปได้และในลูปเราจะตรวจสอบความพร้อมใช้งานโดยใช้การตรวจสอบตามปกติสำหรับการมีอยู่ของโฟลเดอร์ ( TDirectory.Exists) เช่นเดียวกับในโฟลเดอร์ว่าง ( TDirectory.IsEmpty).

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

รายการของฉัน (อิงจาก 5 อุปกรณ์ยอดนิยม):

  • /mnt/sdcard
  • /mnt/sdcard/external_sd
  • /mnt/extSdCard
  • /mnt/usb
  • /mnt/UsbDriveA
  • /mnt/UsbDriveB
  • /mnt/UsbDriveC
  • /mnt/UsbDriveD
  • /mnt/UsbDriveE
  • /mnt/UsbDriveF

เมื่อมองหาวิธีที่คล้ายคลึงกันบนอินเทอร์เน็ต ฉันพบ 3 จุดที่เป็นไปได้เพิ่มเติม:

  • /mnt/external_sd
  • /mnt/usb_storage
  • /mnt/ภายนอก

นอกจากนี้จากDmitry Kuzmenko:

Sony Xperia V - 4.1.2

  • /mnt/sdcard
  • /mnt/ext_card
  • /mnt/usbdisk

เพิ่มเติม:
Sony Xperia Go - 4.1.2

  • /mnt/sdcard
  • /mnt/ext_card
  • /mnt/usbdisk
Samsung Galaxy S4 - 4.2.2
  • /mnt/sdcard
  • /mnt/extSdCard
  • /mnt/UsbDriveA
  • /mnt/UsbDriveB
  • /mnt/UsbDriveC
  • /mnt/UsbDriveD
  • /mnt/UsbDriveE
  • /mnt/UsbDriveF
คุณจะพบอาร์เรย์ที่เสร็จสิ้นแล้วในโค้ดด้านล่าง คุณสามารถให้ข้อมูลความคิดเห็นเกี่ยวกับเส้นทางบนอุปกรณ์ของคุณในแบบฟอร์มนี้:

ชื่ออุปกรณ์ - เวอร์ชัน Android

เส้นทางตรงไปยังหน่วยความจำภายใน

เส้นทางตรงไปยังการ์ดหน่วยความจำภายนอก

เส้นทางตรงไปยังอุปกรณ์ USB

เส้นทางทั้งหมดเริ่มต้นด้วยโฟลเดอร์ /mnt/


หรือคัดลอกและส่งไฟล์ "/etc/vold.fstab" มาที่ infocean @ gmail.com หรือในความคิดเห็น (อย่าลืมระบุรุ่นอุปกรณ์และเวอร์ชัน Android) โปรดรวมโฟลเดอร์ทั้งหมดที่อยู่ใน /mnt ไดเรกทอรี / มันสำคัญมาก

แอปพลิเคชัน:

ใช้ System.IOUtils; const pathmnt: Array of String = ("/mnt/sdcard", "/mnt/sdcard/external_sd", "/mnt/extSdCard", "/mnt/usb", "/mnt/UsbDriveA", "/mnt/UsbDriveB ", "/mnt/UsbDriveC", "/mnt/UsbDriveD", "/mnt/UsbDriveE", "/mnt/UsbDriveF", "/mnt/external_sd", "/mnt/usb_storage", "/mnt/external" , "/mnt/ext_card", "/mnt/usbdisk"); ขั้นตอน TForm1.Button1Click (ผู้ส่ง: TObject); var i: จำนวนเต็ม; เริ่ม Memo1.Lines.Clear; Memo2.Lines.Clear; สำหรับ i:= 0 ถึง Length(pathmnt) - 1 จะเริ่มต้นหาก TDirectory.Exists(pathmnt[i]) และไม่ใช่ TDirectory.IsEmpty(pathmnt[i]) จากนั้นเริ่ม Memo1.Lines.Add(pathmnt[i]); Memo2.Lines.Add("จริง"); สิ้นสุด อื่น start Memo1.Lines.Add(pathmnt[i]); Memo2.Lines.Add("เท็จ"); จบ; จบ; จบ;

ตัวเลือก #2

ตัวเลือกแรกมีทั้งข้อดีและข้อเสีย (ซึ่งหลักคือความไม่สมบูรณ์ของรายการเส้นทางที่เป็นไปได้) ดังนั้นเรามาลองแก้ปัญหานี้ด้วยวิธีที่ต่างออกไป

มีไฟล์ดังกล่าว vold.fstab", อยู่ที่นี่"/etc/"("/system/etc/") นี่เป็นหนึ่งในไฟล์คอนฟิกูเรชันในระบบที่คล้ายกับ UNIX ที่มีข้อมูลเกี่ยวกับระบบไฟล์ต่างๆ และอุปกรณ์จัดเก็บข้อมูล อธิบายว่าจะใช้ดิสก์ (พาร์ติชั่น) อย่างไรหรือจะรวมเข้ากับระบบอย่างไร

และมีไฟล์ เมาท์” อยู่ที่นี่ “/proc/” ประกอบด้วยข้อมูลเกี่ยวกับจุดเชื่อมต่อทั้งหมดที่ใช้ในอุปกรณ์ สิ่งสำคัญคือต้องเข้าใจว่าหากไม่มีการกล่าวถึงการ์ดหน่วยความจำในไฟล์นี้ แสดงว่าไม่ได้เชื่อมต่อ ซึ่งหมายความว่าไฟล์มีการอัปเดตอย่างต่อเนื่อง

เป็นขั้นเป็นตอน:

  1. การอ่านไฟล์ vold.fstab»
  2. เราตรวจสอบความพร้อมใช้งานของอุปกรณ์แต่ละเครื่องโดยการอ่านไฟล์ " เมาท์” และค้นหาสตริงที่ต้องการในนั้น

ในตัวเลือกนี้จะยังไม่มีรหัสเพราะ ด้วยเหตุผลที่ไม่ทราบสาเหตุ ฉันไม่สามารถอ่านไฟล์ "mounts" ได้ ในเรื่องนี้ ข้าพเจ้าขอเสนอทางเลือกที่สาม


ตัวเลือก #3

เรารวมตัวเลือกแรกและตัวเลือกที่สอง รายการจะถูกนำมาจากไฟล์ " vold.fstab" และตรวจสอบด้วยตัวเองโดยไม่ต้องเปิดไฟล์" เมาท์". ทำไมต้องทรมานสองไฟล์ในแต่ละครั้ง ในเมื่อคุณสามารถทำงานกับไฟล์ได้เพียงไฟล์เดียว

เป็นขั้นเป็นตอน:

  1. การอ่านไฟล์ vold.fstab»
  2. รวบรวมรายการอุปกรณ์จัดเก็บข้อมูล (เสร็จไปครึ่งงาน)
  3. ตอนนี้วนรอบรายการและตรวจสอบแต่ละเส้นทางด้วย " TDirectory.Exists" และ " TDirectory.IsEmpty»
  4. เราจัดทำรายการอุปกรณ์จัดเก็บข้อมูลที่มีอยู่จริง

อัปเดต 17.02.14:ขอบคุณ Dmitry Kuzmenko และความพยายามร่วมกัน เราพบว่าไฟล์ "/etc/vold.fstab" ใน Sony Xperia V แตกต่างจากไฟล์อื่นๆ เล็กน้อย ดังนั้นจึงมีการเปลี่ยนแปลงซอร์สโค้ดของแอปพลิเคชัน ตรวจสอบทุกอย่างแล้วใช้งานได้! :) แหล่งที่มาอัพเดททุกที่

อัปเดต2-17.02.14:ในไฟล์ "/etc/vold.fstab" บางครั้งมี (ในอุปกรณ์บางตัว) แสดงความคิดเห็นเกี่ยวกับบรรทัดที่คล้ายกับที่ฉันกำลังมองหาในโค้ดของฉัน ในการเชื่อมต่อกับสิ่งนี้ เกิดผลบวกที่ผิดพลาด ฉันแก้ไขคุณลักษณะนี้ในโค้ดเวอร์ชันใหม่แล้ว
แก้ไขการค้นหาบรรทัดที่จำเป็นด้วย ตอนนี้มันเป็นสากลมากขึ้น!

โดยทั่วไป ตอนนี้โค้ดควรจะทำงานได้ตามปกติบนอุปกรณ์ต่างๆ ลองใช้ ยกเลิกการสมัครในความคิดเห็น แนบไฟล์ "/etc/vold.fstab" ของคุณ (อย่าลืมระบุรุ่นอุปกรณ์และเวอร์ชัน Android)

อัปเดต 3 - 15.07.14:
ผู้อ่านบล็อก Sergey Yakimenko พบว่าตัวเลือกที่สามทำงานไม่ถูกต้อง (อ่านไฟล์) บนอุปกรณ์ Huawei Ascend P6และ รีลเล็กซ์ TAB-07ตามที่รายงานในความคิดเห็น

หลังจากการติดต่อส่วนตัวและการวิเคราะห์บางอย่าง ฉันพบว่าปัญหาประเภทใดที่ขัดขวางการทำงาน

ปัญหาที่พบและแก้ไข:

  1. ช่องว่างที่จุดเริ่มต้นของแต่ละบรรทัดที่พบ แก้ไขด้วย "Trim"
  2. บรรทัดที่พบใช้แท็บแทนการเว้นวรรค แก้ไขโดยการแทนที่อักขระแท็บด้วยช่องว่าง
อัปเดตรหัสแล้ว ขอบคุณมากที่ Sergey

แอปพลิเคชัน:

ใช้ System.StrUtils, System.IOUtils; ขั้นตอน TForm1.Button1Click (ผู้ส่ง: TObject); var OpenFileVold: TStringList; ผม: จำนวนเต็ม; เส้นทางชั่วคราว: TStringDynArray; เริ่ม OpenFileVold:= TStringList.Create; ลอง // อ่านไฟล์ OpenFileVold.LoadFromFile("/etc/vold.fstab"); สำหรับ i:= 0 ถึง OpenFileVold.Count - 1 จะเริ่มต้นหาก (Pos("dev_mount", OpenFileVold.Strings[i]) > 0) หรือ (Pos("fuse_mount", OpenFileVold.Strings[i]) > 0) แล้ว start // Update(15.07.14) // 1 - ลบช่องว่างที่จุดเริ่มต้นและจุดสิ้นสุดของสตริง (การกำจัด AV) // 2 - แทนที่อักขระแท็บด้วยช่องว่าง pathtemp:= SplitString(StringReplace(Trim(OpenFileVold.Strings) [i] ), #9, " ", ), " "); // ตรวจสอบอักขระตัวแรกของสตริงเพื่อให้ตรงกับอักขระ "#" หรือ "##" // เพื่อไม่ให้เกิดผลบวกปลอม (pathtemp<>"#") และ (pathtemp<>"##") จากนั้นให้เริ่มถ้า TDirectory.Exists(pathtemp) และไม่ใช่ TDirectory.IsEmpty(pathtemp) จากนั้นเริ่ม Memo1.Lines.Add(pathtemp); จบ; จบ; จบ; จบ; ในที่สุด OpenFileVold.Free; // FreeAndNil (SourceFile); จบ; จบ;

ผล:เราได้เรียนรู้วิธีรับรายการอุปกรณ์จัดเก็บข้อมูลที่พร้อมใช้งาน (ฉันจะใช้ตัวเลือกที่สาม) ข้อความ (ไม่มีโค้ดและรูปภาพ) ออกมา 3 หน้า ส่วนใหญ่ไม่มีเวลาเบื่อกัน :)

ขอขอบคุณทุกท่านที่ให้ความสนใจและการพัฒนาที่ประสบความสำเร็จ

ป.ล. ยินดีต้อนรับเพิ่มเติม
ปล2. ฉันใช้เวลามากมายในการทดลองและเปรียบเทียบ vold.fstab, mounts จากอุปกรณ์ต่างๆ...
ปล.3 ในบทความถัดไป ฉันจะแสดงวิธีกำจัดปัญหาการอัปเดตฐานข้อมูลเมื่ออัปเดตแอปพลิเคชันด้วยตนเอง

ความสามารถของอุปกรณ์สามารถขยายได้อย่างจริงจังหากคุณเปลี่ยนหน่วยความจำภายในของ Android ด้วยการ์ดหน่วยความจำ ซึ่งจะทำให้คุณสามารถติดตั้งแอปพลิเคชันอื่นๆ ได้อีกมากมายบนแท็บเล็ตหรืออุปกรณ์อื่นๆ ของคุณ แต่ข้อกำหนดหลักสำหรับการอัปเดตนี้คือ คุณมีสิทธิ์รูทบนอุปกรณ์ มาดูวิธีที่คุณสามารถใช้การ์ด SD เป็นหน่วยความจำระบบของอุปกรณ์ รวมถึงเงื่อนไขที่เกี่ยวข้องกัน

ความเสี่ยงและเงื่อนไขในการเปลี่ยนหน่วยความจำภายในของอุปกรณ์ด้วยการ์ด SD

ก่อนที่จะทำซ้ำขั้นตอนที่อธิบายไว้ด้านล่าง ผู้ใช้ควรพิจารณาประเด็นสำคัญหลายประการ:

  1. อายุการใช้งานของการ์ด SD จะลดลงอย่างมากเนื่องจากรอบการอ่าน/เขียนบ่อยครั้งเมื่อเรียกใช้แอปพลิเคชัน
  2. ความเร็วของอุปกรณ์จะลดลงอย่างเห็นได้ชัดหากคุณใช้การ์ด MicroSD ระดับต่ำ
  3. หากคุณทำผิดพลาดเมื่อแก้ไขไฟล์ระบบ โทรศัพท์อาจไม่บู๊ตในครั้งต่อไป คุณจะต้องทำการรีแฟลชใหม่

โดยทั่วไป ขั้นตอน (โดยเฉพาะสำหรับผู้ใช้ที่ไม่มีประสบการณ์) ค่อนข้างเสี่ยง ดังนั้นจึงควรดำเนินการกับอุปกรณ์รุ่นเก่าที่มีหน่วยความจำเพียงเล็กน้อยเท่านั้น

การใช้ยูทิลิตี้ Root Browser และแก้ไขไฟล์ vold.fstab

หากต้องการสลับหน่วยความจำ คุณจะต้องติดตั้ง Root Browser จาก Google Play

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


ใน Android sdcard ย่อมาจากหน่วยความจำภายในและ extsd หมายถึงภายนอกเช่นการ์ด SD โดยแทนที่บรรทัดเหล่านี้ เราได้สลับหน่วยความจำประเภทนี้จริงๆ ในบางระบบ โค้ดเหล่านี้อาจดูแตกต่างออกไป เช่น

คุณต้องแทนที่พวกเขาเช่นนี้:

หลังจากทำตามขั้นตอนที่อธิบายไว้แล้ว ให้รีสตาร์ทแกดเจ็ต ก่อนทำสิ่งนี้ ตรวจสอบให้แน่ใจว่าได้ตรวจสอบข้อผิดพลาดในโค้ดที่แก้ไขแล้ว เพื่อไม่ให้เกิดการกะพริบในอนาคต

วิธีที่สองในการเพิ่มหน่วยความจำโดยใช้ Link2SD

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

ลักษณะเฉพาะของแอปพลิเคชันที่เป็นปัญหาคือตัว MicroSD จะต้องเสียและจัดรูปแบบอย่างเหมาะสม ดังนั้น ให้คัดลอกทุกสิ่งที่มีค่าจากการ์ดของคุณไปยังคอมพิวเตอร์ของคุณ และเริ่มแบ่งไดรฟ์ออกเป็นส่วนๆ

แบ่งการ์ดอุปกรณ์ออกเป็นส่วนๆ ด้วย Recovery . แบบกำหนดเอง

อุปกรณ์ Android แต่ละเครื่องมีโหมดการกู้คืน แต่วิธีการที่อธิบายไว้ด้านล่างเหมาะสำหรับอุปกรณ์ที่ไม่ใช่โหมดมาตรฐาน แต่ใช้กับ หากคุณไม่เคยได้ยินเกี่ยวกับ CWM ให้ไปที่ตัวเลือกการแบ่งพาร์ติชันไดรฟ์ที่สอง ต่อไป เราจะบอกวิธีแก้ปัญหาหากมีรายการ Partition SD Card ในโหมดการกู้คืนอุปกรณ์ของคุณ:

การแบ่งพาร์ติชันการ์ด microSD ผ่านคอมพิวเตอร์

เชื่อมต่อการ์ดกับแล็ปท็อปหรือพีซี ในการดำเนินการนี้ คุณสามารถใช้เครื่องอ่านการ์ดหรืออุปกรณ์อื่นๆ ได้ ที่สำคัญที่สุด ควรกำหนดให้เป็นไดรฟ์ ไม่ใช่อุปกรณ์สื่อ MTP ไกลออกไป:


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

สำหรับผู้ที่ไม่เข้าใจว่าบทความนี้เกี่ยวกับอะไรจากชื่อ: สมมติว่าคุณมีหน่วยความจำภายใน Android 400 MB ซึ่งมีขนาดเล็กมาก (ประมาณ 12-20 แอปพลิเคชันที่ติดตั้ง) คุณอาจคิดว่าจะใช้และแทนที่หน่วยความจำหลักด้วย การ์ดหน่วยความจำ

ความเสี่ยงและสิ่งที่ต้องรู้

การแทนที่หน่วยความจำภายในของ Android ด้วยการ์ดหน่วยความจำจะเกิดขึ้นก็ต่อเมื่อคุณติดตั้งสิทธิ์รูท (ไม่มีรูท วิธีการนี้ใช้ไม่ได้)! สำหรับผู้ที่ไม่ทราบว่ารูทคืออะไรและจะหาได้อย่างไร:

นอกจากนี้ คุณต้องรู้โครงสร้างของระบบไฟล์ Android

การแทนที่หน่วยความจำทำได้ก็ต่อเมื่ออุปกรณ์ Android ของคุณมีไฟล์ระบบ vold.fstab ตามเส้นทาง / ระบบ / ฯลฯ หากคุณไม่มี วิธีนี้ไม่เหมาะสำหรับคุณ! ใช้วิธีการอื่น (ลิงค์ 1 ลิงค์ 2 ลิงค์ 3) นอกจากนี้ หาก Android ไม่มีหน่วยความจำของตัวเอง บทความนี้ก็ไม่เหมาะกับคุณเช่นกัน บทความนี้มีไว้สำหรับอุปกรณ์ที่มีโปรเซสเซอร์ Mediatek (MTK) หรือ Rockchip

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

ด้วยการเปลี่ยนหน่วยความจำภายในสำหรับการ์ดหน่วยความจำ ตัวหลังมีอายุการใช้งานที่สั้นมาก (เนื่องจากการอ่าน/เขียนบ่อยครั้ง) และความเร็วของ Android อาจลดลงเช่นกันหากระดับของการ์ด MicroSD ต่ำมาก

คำแนะนำในการเปลี่ยนหน่วยความจำภายในของ Android ด้วยการ์ดหน่วยความจำ

1. ติดตั้งโปรแกรมจัดการไฟล์ Root Browser

2. เรียกใช้โปรแกรมจัดการไฟล์ Root Browser และไปตามเส้นทาง:

/ระบบ/ฯลฯ/

3. มองหาไฟล์ vold.fstabและเปิดมัน (คลิกที่ไฟล์และเลือกแก้ไข)

4. ในไฟล์ vold.fstabเราเห็นสิ่งนี้:

## ฉบับ 2.0 fstab
##
# ติดตั้งอุปกรณ์ปกติ
##
##รูปแบบ: dev_mount
## label - ฉลากสำหรับปริมาณ
## mount_point - ตำแหน่งที่จะเมาต์โวลุ่ม
## part - Partition # (1 based) หรือ 'auto' สำหรับพาร์ติชั่นแรกที่ใช้งานได้
## - รายการเส้นทาง sysfs ไปยังอุปกรณ์ต้นทาง
####################################### # ติดตั้งพาร์ติชั่นแรกที่ใช้งานได้ของอุปกรณ์ที่ระบุ
#/devices/platform/awsmc.3/mmc_host สำหรับ sdio
dev_mount sdcard /mnt/sdcard อัตโนมัติ
dev_mount extsd /mnt/extsd อัตโนมัติ
/devices/platform/sunxi-mmc.0/mmc_host
dev_mount usbhost1 /mnt/usbhost1 auto /devices/platform/sw-ehci.1 /devices/platform/sw_hcd_host0 /devices/platform/sw-ehci.2 /devices/platform/sw- ohci.1 /devices/platform/sw- ohci.2

ในตัวอย่างนี้ ให้ความสนใจกับสองบรรทัดที่เน้น หากคุณอ่านโครงสร้างของระบบไฟล์ Android ก่อนหน้านี้อย่างละเอียด คุณรู้อยู่แล้วว่า /sdcardหรือ /sdcard0เป็นหน่วยความจำภายใน /extsdหรือ /external_sdcard, /sdcrad1, /sdcrad2, /external_sdนี่คือหน่วยความจำภายนอก นั่นคือ microSD

สิ่งที่คุณต้องทำคือแทนที่สองบรรทัดนี้:

dev_mount extsd /mnt/extsd อัตโนมัติ /devices/virtual/block/XXXXXX
dev_mount sdcard /mnt/sdcard อัตโนมัติ /devices/platform/XXXXXX/XXXXXXX

อีกตัวอย่างหนึ่งในอุปกรณ์อื่น:

dev_mount sdcard /ที่เก็บข้อมูล/sdcard0
dev_mount sdcard2 /ที่เก็บข้อมูล/sdcard1

เราเปลี่ยนเป็นรายการต่อไปนี้:

dev_mount sdcard / ที่เก็บข้อมูล / sdcard1 [ป้องกันอีเมล]/devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host
dev_mount sdcard2 /ที่เก็บข้อมูล/sdcard0 อัตโนมัติ /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host

บันทึกงานของคุณและรีสตาร์ท Android! หลังจากรีบูต อุปกรณ์จะมีหน่วยความจำเพิ่มขึ้น!



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

สำหรับผู้ที่ไม่เข้าใจว่าบทความนี้เกี่ยวกับอะไรจากชื่อ: สมมติว่าคุณมีหน่วยความจำภายใน Android 400 MB ซึ่งมีขนาดเล็กมาก (ประมาณ 12-20 แอปพลิเคชันที่ติดตั้ง) คุณอาจคิดว่าจะใช้และแทนที่หน่วยความจำหลักด้วย การ์ดหน่วยความจำ

ก่อนคุณเริ่ม!

คุณมี Android เวอร์ชัน 5.1 หรือใหม่กว่าหรือไม่? ยอดเยี่ยม! บางทีบนสมาร์ทโฟนของคุณคุณสามารถเพิ่มหรือ!

วิธีที่ 1

วิธีที่ 2

หากคุณไม่มีการตั้งค่าดังกล่าว จากนั้นอ่านบทความด้านล่าง!

ความเสี่ยงและสิ่งที่ต้องรู้

การแทนที่หน่วยความจำภายในของ Android ด้วยการ์ดหน่วยความจำจะเกิดขึ้นเท่านั้น พร้อมติดตั้งสิทธิ์รูท (ไม่มีรูท วิธีใช้งานไม่ได้)! สำหรับผู้ที่ไม่ทราบว่ารูทคืออะไรและจะหาได้อย่างไร:

นอกจากนี้คุณ บังคับรู้โครงสร้างระบบไฟล์ Android

การแทนที่หน่วยความจำทำได้ก็ต่อเมื่ออุปกรณ์ Android ของคุณมีไฟล์ระบบ vold.fstab ระหว่างทาง /ระบบ/ฯลฯ , หากคุณยังไม่มีวิธีนี้ น่าเสียดาย ไม่ใช่สำหรับคุณ! ใช้วิธีการอื่น (ลิงค์ 1 ลิงค์ 2 ลิงค์ 3) อีกด้วย ถ้า Android ไม่มีหน่วยความจำของตัวเองแล้วบทความนี้ ไม่ใช่สำหรับคุณ. บทความนี้มีไว้สำหรับอุปกรณ์ที่มีโปรเซสเซอร์ Mediatek (MTK) หรือ Rockchip

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

ด้วยการเปลี่ยนหน่วยความจำภายในบนการ์ดหน่วยความจำ ตัวหลังมีอายุการใช้งานที่สั้นมาก (เนื่องจากการอ่าน/เขียนบ่อยครั้ง) และความเร็วของ Android อาจลดลงเช่นกันหากคลาสต่ำมาก การ์ดไมโครเอสดี

ความสนใจ!

ก่อนที่คุณจะเริ่มทำการเปลี่ยนแปลงใด ๆ ให้ใช้โอกาสอย่างเป็นทางการในการเปลี่ยนการ์ดหน่วยความจำ -

คำแนะนำในการเปลี่ยนหน่วยความจำภายในของ Android ด้วยการ์ดหน่วยความจำ

1. ติดตั้งตัวจัดการไฟล์ Root Browser (หากคุณเลือกอันอื่น อย่าเขียนคำถาม "ฉลาด" "ฉันไม่เห็น" "ฉันไม่แก้ไข" ในความคิดเห็น)

2. เรียกใช้ตัวจัดการไฟล์ Root Browser และทำตามเส้นทาง:

/ระบบ/ฯลฯ/

3. มองหาไฟล์ vold.fstab และเปิดมัน (คลิกที่ไฟล์และเลือกแก้ไข)

4. ในไฟล์ vold.fstab ดู เกี่ยวกับภาพดังกล่าว:

## Vold 2.0 fstab ## # ติดตั้งอุปกรณ์ปกติ ## ## รูปแบบ: dev_mount

ในตัวอย่างนี้ ให้ความสนใจกับสองบรรทัดที่เน้น หากคุณอ่านโครงสร้างระบบไฟล์ Android ก่อนหน้านั้นอย่างรอบคอบ คุณรู้อยู่แล้วว่า /sdcardหรือ /sdcard0เป็นหน่วยความจำภายใน /extsdหรือ /external_sdcard, /sdcrad1, /sdcrad2, /external_sdนี่คือหน่วยความจำภายนอก นั่นคือ microSD

สิ่งที่คุณต้องทำคือแทนที่สองบรรทัดนี้:

dev_mount extsd /mnt/extsd อัตโนมัติ /devices/virtual/block/XXXXX dev_mount sdcard /mnt/sdcard อัตโนมัติ /devices/platform/XXXXX/XXXXX

อีกตัวอย่างหนึ่งในอุปกรณ์อื่น:

Dev_mount sdcard /ที่เก็บข้อมูล/sdcard0 [ป้องกันอีเมล]/devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host dev_mount sdcard2 /ที่เก็บข้อมูล/sdcard1

เราเปลี่ยนเป็นรายการต่อไปนี้:

Dev_mount sdcard / ที่เก็บข้อมูล / sdcard1 [ป้องกันอีเมล]/devices/platform/goldfish_mmc.0 /devices/platform/mtk-msdc.0/mmc_host dev_mount sdcard2 /ที่เก็บข้อมูล/sdcard0อัตโนมัติ /devices/platform/goldfish_mmc.1 /devices/platform/mtk-msdc.1/mmc_host

คุณยังมีคำถามเพิ่มเติมหรือไม่? ถามพวกเขาในความคิดเห็น บอกเราว่าคุณทำอะไรหรือในทางกลับกัน!

ต่อในหัวข้ออุปกรณ์กระพริบตามชิปเซ็ต Rockchip 2926 มาพูดถึงการเยาะเย้ยของแท็บเล็ต Prestigio นั่นคือเครื่องอ่านหลายตัวที่มีการกำหนด 5274 ข.อุปกรณ์นี้มีลักษณะและลักษณะทางเทคนิคไม่แตกต่างจากฮีโร่ตัวก่อนของวันนี้ Enot E102 มากนัก ดังนั้นคุณจะไม่พบคำอธิบายโดยละเอียดที่นี่ เช่นเคยกับ Prestigio ต้นกำเนิดอุปกรณ์ของจีนอย่างตรงไปตรงมานั้นได้รับการยกระดับอย่างเชี่ยวชาญด้วยเฟิร์มแวร์ที่ออกแบบมาอย่างดี ไม่มีอะไรฟุ่มเฟือยในนั้น และทุกสิ่งที่คุณต้องการในครั้งแรกก็ใช้งานได้ทันที นั่นคือมีลูกค้าของผู้ติดต่อ ICQ ผู้อ่านและเครื่องเล่นวิดีโอและไม่ต้องการการตั้งค่าอย่างรอบคอบหลังจากเปิดใช้งานครั้งแรก แท็บเล็ตที่ใช้ชิปเซ็ต 2926 จะกลายเป็นกระแสหลักในอีกไม่กี่เดือนข้างหน้า แทนที่ส่วนประกอบที่ล้าสมัยเช่น Allwinner A13 ในกลุ่มอุปกรณ์ Android ราคาประหยัด ข้อ จำกัด ของอุปกรณ์ราคาถูกยังคงเหมือนเดิม - หน่วยความจำ 4 GB แบ่งออกเป็นสองส่วนอย่างป่าเถื่อนและการ์ดหน่วยความจำที่ทำงานเป็นที่เก็บเนื้อหาสื่อไม่ได้ใช้สำหรับแคชของแอปพลิเคชัน เมื่อนักพัฒนาเฟิร์มแวร์จำได้ว่าขณะนี้การ์ดหน่วยความจำมีราคาถูกมากและมีความทะเยอทะยานในตอนต้นเพื่อให้แน่ใจว่าการทำงานของแท็บเล็ตโดยไม่มีการ์ดในสภาวะเหล่านี้อย่างน้อยก็มีลักษณะผิดเพี้ยน ทำไมไม่เตรียมอุปกรณ์ที่มีการ์ดอย่างน้อยสองกิกะไบต์ ปล่อยให้มันอยู่ในเฟิร์มแวร์ เช่น sdcard และไม่ใช่ external_sd ที่คดเคี้ยว โดยไม่บังคับให้ผู้ใช้ค้นหาวิธีแก้ไขความอยุติธรรมด้วยวิธีการที่แปลกใหม่

อย่างไรก็ตาม หัวข้อของความจงรักภักดีต่อผู้ใช้และการหันหน้าเข้าหาพวกเขา ไม่ใช่ที่นั่ง เป็นเรื่องที่กว้างขวางและไม่ได้อยู่ที่นี่ เราเริ่มทำงานกับผู้อ่านทำให้สะดวกขึ้นในชีวิตประจำวัน เริ่มต้นด้วยการรูท เพื่อให้ธุรกิจนี้ประสบความสำเร็จอย่างมาก ให้ดาวน์โหลดไฟล์เก็บถาวร ( https://www.dropbox.com/s/rhsvca9epfv53ld/ROOT_icood70pro.zip) แกะมันในไดรฟ์ C โดยไม่มีอักขระรัสเซียในเส้นทาง (ดังนั้นเราจึงหลีกเลี่ยงข้อผิดพลาด) ในแท็บเล็ต ให้ทำเครื่องหมายในช่อง "ไม่ทราบแหล่งที่มา" "การดีบักผ่าน usb" และเชื่อมต่อกับคอมพิวเตอร์ ในโฟลเดอร์ที่คลายการแพ็ก เราพบ Root.bat และเรียกใช้ เรากำลังรอการรีบูตแท็บเล็ตด้วยรูปลักษณ์ของ supersu ในความหลากหลายที่ติดตั้ง เราจำเป็นต้องเรียกใช้แอปพลิเคชันนี้ ตกลงที่จะอัปเดตไบนารีและรีบูตแท็บเล็ตอีกครั้ง ทุกอย่างมีสิทธิ์ของผู้ดูแลระบบ - ตอนนี้สามารถแก้ไขไฟล์ระบบ ลบไฟล์ที่ไม่จำเป็น เพิ่มอะไรก็ได้ หากอุปกรณ์ของคุณไม่ต้องการรับรูท แต่อย่างใด มีวิธีที่ 2 ยกเลิกการเลือกการดีบัก USB ในการตั้งค่าอุปกรณ์ ติดตั้ง PdaNet ( http://pdanet.co/a/), การเลือกติดตั้งไดรเวอร์อื่นๆ ติดตั้ง UnlockRoot ( http://yadi.sk/d/awamSlwP2mpgQ). ใส่เครื่องหมายถูกกลับเข้าที่ เปิด UnlockRoot แล้วกด Root หลังจากสิ้นสุดการทำงาน ให้รีสตาร์ทแท็บเล็ตและอัปเดต SuperSu

หากคุณมีการ์ดหน่วยความจำและไม่พอใจกับตำแหน่งของผู้พัฒนาเฟิร์มแวร์ คุณต้องแก้ไข vold.fstab ติดตั้ง Root Explorer เวอร์ชัน 2.21 ขึ้นไป (เวอร์ชันก่อนหน้าทำงานคดโกง 4.1.1) ยอมรับคำขออย่างรวดเร็วเพื่อให้เขาเข้าถึงได้ทุกที่ ตอนนี้ดาวน์โหลด vold.fstab ที่แก้ไขแล้ว ( http://yadi.sk/d/P-SKlRTG4t2Vu) ที่แทนที่การ์ดและส่วนหน่วยความจำภายใน โอนไปยังการ์ดหน่วยความจำ เปลี่ยนชื่อโดยลบชื่อออกจากชื่อ ค้นหาไฟล์ผ่าน Root Explorer คลิกที่ไฟล์ด้วยการแตะค้างไว้ (กด ถ้ามีคนไม่ชอบ anglicisms) แล้วคลิกคัดลอก ค้นหาไดเร็กทอรี etc. เหนือไดเร็กทอรี คุณจะพบปุ่มเมานต์ RW คลิกที่มัน ที่ด้านล่างของหน้าต่างโปรแกรม คลิก "วาง" (วาง) แท็บเล็ตจะถามว่าจะแทนที่ไฟล์ด้วยแบบกำหนดเองของคุณหรือไม่ เห็นด้วย. กดที่ไฟล์ที่ถูกแทนที่ค้างไว้เพื่อเรียกเมนูย่อย โดยเลือก "การอนุญาต" (การอนุญาต) คุณเห็นสี่เหลี่ยมจัตุรัสที่มีหน้าต่างสามบานอยู่ข้างหน้าคุณ ตั้งค่าช่องทำเครื่องหมายเหมือนกับในภาพหน้าจอและใช้การเลือก เหลือเพียงออกจากโปรแกรมรีสตาร์ทแท็บเล็ตแล้วปล่อยให้บู๊ต ขึ้นอยู่กับประเภทและคุณภาพของการ์ดหน่วยความจำ (ดีที่สุดคือคลาส 10 จากปกติไม่ใช่ผู้ผลิตที่ไม่ใช่ชื่อ) แท็บเล็ตจะบู๊ตจาก 5 นาทีถึงครึ่งชั่วโมง หากทุกอย่างเป็นไปด้วยดี คุณจะพบส่วน "หน่วยความจำ" ที่อัปเดต ซึ่งในที่สุดการ์ดจะถูกมองว่าเป็น Sdcard และแอปพลิเคชันสำหรับถ่ายโอนแคชและโปรแกรมไปยัง microSD จะเห็น

การติดตั้งการกู้คืน CWM มีความเสี่ยงสูงที่จะฆ่า bootloader - พยายามอย่าทำหากไม่มีความปรารถนาอย่างแรงกล้าที่จะทดลองหรือคุณจำเป็นต้องติดตั้งเฟิร์มแวร์แบบกำหนดเองตาม 4.2.2 ในขณะที่เขียน ไม่พบสิ่งนี้ ดังนั้นในขณะนี้การติดตั้ง CWM บน Prestigio MultiReader 5274 เป็นเพียงประโยชน์เชิงทฤษฎีเท่านั้น ดังนั้นดาวน์โหลด CWM() การติดตั้งสามารถทำได้หลายวิธี วิธีที่ถูกต้องและปลอดภัยที่สุดคือการเปลี่ยนชื่อไฟล์เก็บถาวรเป็น update.zip และตอบคำขอแท็บเล็ตให้รีบูตในเชิงบวก ตอนนี้คุณสามารถเข้าสู่การกู้คืนได้อย่างง่ายดายและสวยงามโดยกดปุ่มเพิ่มระดับเสียงและปุ่มเปิดปิดค้างไว้ เมื่อหุ่นยนต์สีเขียวปรากฏขึ้น ให้ปล่อยปุ่ม กดปุ่ม + ค้างไว้ แล้วกดปุ่มเปิดปิดหนึ่งครั้ง เมนูการกู้คืน CWM ที่เกือบทุกคนรู้จัก จะปรากฏขึ้น ซึ่งทุกอย่างพร้อมใช้งาน ตั้งแต่การติดตั้งพาร์ติชั่นไปจนถึงการสำรองข้อมูลและเฟิร์มแวร์ zen สะดวกในการรีบูตในการกู้คืนและผ่านแอปพลิเคชัน Goo Manager จากตลาด วิธีอื่นๆ ในการใช้งาน CWM ในขณะนี้มักจะทำให้อุปกรณ์เสียหาย และฉันจะไม่พูดถึงมัน พอจะพูดได้ว่ามีการติดตั้งผ่าน adb shell ซึ่งจะช่วยให้คุณค้นหาคำแนะนำโดยประมาณเกี่ยวกับวิธีการดำเนินการนี้และตำหนิผู้อื่นสำหรับอุปกรณ์ที่ไม่ทำงาน

และสุดท้ายสำหรับวันนี้ หากสิ่งนี้เกิดขึ้นและเป็นผลมาจากสถานการณ์ที่ไม่คาดฝัน (เช่นการติดตั้งการกู้คืน CWM) หรือการจัดเรียงดาวบนท้องฟ้าที่ไม่ถูกต้องแท็บเล็ตปฏิเสธที่จะทำงานเราจะพยายามคืนมันให้กับโลกของสิ่งมีชีวิตโดย กระพริบมัน ในมุมมองของการระบุตัวตนที่สมบูรณ์ของคำแนะนำการกะพริบกับผู้ป่วยรายก่อน Enot E102 โปรดอ่านเกี่ยวกับเรื่องนี้ ฉันไม่เห็นเหตุผลที่จะทำซ้ำ เนื่องจากความแตกต่างเพียงอย่างเดียวคือในไฟล์ที่คุณจะฝัง อิมเมจเฟิร์มแวร์อยู่ในเว็บไซต์ทางการ ( http://www.prestigio.com/catalogue/MultiReaders/MultiReader_5274/PER5274B#/product-support/firmware ). มีตัวโปรแกรมเองด้วย

โปรดจำไว้ว่า การทำการทดลองแบบกะพริบทุกประเภท คุณอาจสูญเสียการรับประกันโดยสมบูรณ์ และถูกทิ้งไว้โดยไม่มีอุปกรณ์ทำงานบน Android ดังนั้นความใส่ใจ ความใส่ใจ และคำเดิมอีกครั้งหนึ่ง เมื่อมองในแง่ดีนี้ ข้าพเจ้าขอลาไปเสียก่อน อีกไม่นานเราจะได้พบกันใหม่ พูดคุย ดุด่า ด่าทอเรื่องอื่น

ข้อผิดพลาด:เนื้อหาได้รับการคุ้มครอง!!