কনফিগারেশনের উদাহরণ

বিভিন্ন ধরনের ডিভাইসের জন্য এক্সটার্নাল স্টোরেজ কনফিগারেশনের উদাহরণ নিচে দেওয়া হল। কনফিগারেশন ফাইলের শুধুমাত্র প্রাসঙ্গিক অংশ অন্তর্ভুক্ত করা হয়েছে।

Android 6.0-এ কনফিগারেশন পরিবর্তন হওয়ার কারণে (যেমন, storage_list.xml রিসোর্স ওভারলে সরিয়ে দেওয়া), কনফিগারেশনের উদাহরণগুলিকে দুটি বিভাগে ভাগ করা হয়েছে।

Android 5.x ও তার আগের যেকোনও ভার্সন

শুধুমাত্র ফিজিক্যাল প্রাইমারি

এটি একটি ডিভাইসের সাধারণ কনফিগারেশন যাতে একটি এক্সটার্নাল স্টোরেজ ডিভাইস থাকে, এটি Nexus One-এর মতো ফিজিক্যাল এসডি কার্ড।

প্রথমে, র ফিজিক্যাল ডিভাইসকে /mnt/media_rw-এর অধীনে মাউন্ট করতে হবে, যেখানে শুধুমাত্র সিস্টেম ও FUSE ডেমোনই এটি অ্যাক্সেস করতে পারবে। তারপরে, মিডিয়া যোগ করা/সরানো হলে vold, fuse_sdcard0 পরিষেবা ম্যানেজ করবে।

fstab.hardware

[physical device node]  auto  vfat  defaults  voldmanaged=sdcard0:auto,noemulatedsd

init.hardware.rc

on init
    mkdir /mnt/media_rw/sdcard0 0700 media_rw media_rw
    mkdir /storage/sdcard0 0700 root root
    export EXTERNAL_STORAGE /storage/sdcard0
service fuse_sdcard0 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard0 /storage/sdcard0
    class late_start
    disabled

storage_list.xml

<storage
    android:mountPoint="/storage/sdcard0"
    android:storageDescription="@string/storage_sd_card"
    android:removable="true"
    android:primary="true"
    android:maxFileSize="4096" />

শুধুমাত্র এমুলেট করা প্রাইমারি

এটি একটি ডিভাইসের সাধারণ কনফিগারেশন যাতে একটি এক্সটার্নাল স্টোরেজ ডিভাইস থাকে যা Nexus 4-এর মতো ডিভাইসের ইন্টার্নাল স্টোরেজ দ্বারা ব্যাক-আপ করা হয়।

init.hardware.rc

on init
    mkdir /mnt/shell/emulated 0700 shell shell
    mkdir /storage/emulated 0555 root root
    export EXTERNAL_STORAGE /storage/emulated/legacy
    export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
    export EMULATED_STORAGE_TARGET /storage/emulated
on fs
    setprop ro.crypto.fuse_sdcard true
service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated
    class late_start

storage_list.xml

<storage
    android:storageDescription="@string/storage_internal"
    android:emulated="true"
    android:mtpReserve="100" />

এমুলেট করা প্রাথমিক, ফিজিক্যাল সেকেন্ডারি

একাধিক এক্সটার্নাল স্টোরেজ ডিভাইস সহ ডিভাইসের জন্য এটি একটি সাধারণ কনফিগারেশন, যেখানে প্রাইমারি ডিভাইসটি ডিভাইসের ইন্টার্নাল স্টোরেজ দ্বারা ব্যাক-আপ করা হয় এবং যেখানে সেকেন্ডারি ডিভাইসটি একটি ফিজিক্যাল এসডি কার্ড, যেমন Xoom।

কাঁচা ফিজিক্যাল ডিভাইসকে প্রথমে /mnt/media_rw-এর অধীনে মাউন্ট করতে হবে, যেখানে শুধুমাত্র সিস্টেম ও FUSE ডেমনই সেটি অ্যাক্সেস করতে পারবে। মিডিয়া ঢোকানো/সরানো হলে vold তখন fuse_sdcard1 পরিষেবা ম্যানেজ করবে।

fstab.hardware

[physical device node]  auto  vfat  defaults  voldmanaged=sdcard1:auto

init.hardware.rc

on init
    mkdir /mnt/shell/emulated 0700 shell shell
    mkdir /storage/emulated 0555 root root
    mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw
    mkdir /storage/sdcard1 0700 root root
    export EXTERNAL_STORAGE /storage/emulated/legacy
    export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
    export EMULATED_STORAGE_TARGET /storage/emulated
    export SECONDARY_STORAGE /storage/sdcard1
on fs
    setprop ro.crypto.fuse_sdcard true
service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated
    class late_start
service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1
    class late_start
    disabled

storage_list.xml

<storage
    android:storageDescription="@string/storage_internal"
    android:emulated="true"
    android:mtpReserve="100" />
<storage
    android:mountPoint="/storage/sdcard1"
    android:storageDescription="@string/storage_sd_card"
    android:removable="true"
    android:maxFileSize="4096" />

Android 6.0

শুধুমাত্র ফিজিক্যাল প্রাইমারি

এটি হল একটি ডিভাইসের সাধারণ কনফিগারেশন যাতে একটি এক্সটার্নাল স্টোরেজ ডিভাইস থাকে, এটি হল একটি ফিজিক্যাল এসডি কার্ড, যেমন আসল Android One. সেকেন্ডারি শেয়ার করা স্টোরেজ নেই এবং ডিভাইসটি মাল্টি-ইউজার সুবিধা সাপোর্ট করে না।

fstab.device

/devices/platform/mtk-msdc.1/mmc_host*         auto        auto       defaults
voldmanaged=sdcard0:auto,encryptable=userdata,noemulatedsd

init.device.rc

on init
    # By default, primary storage is physical
    setprop ro.vold.primary_physical 1

শুধুমাত্র এমুলেট করা প্রাইমারি

এটি একটি ডিভাইসের সাধারণ কনফিগারেশন যাতে একটি এক্সটার্নাল স্টোরেজ ডিভাইস থাকে যা Nexus 6-এর মতো ডিভাইসের ইন্টার্নাল স্টোরেজ দ্বারা ব্যাক-আপ করা হয়।

  • প্রাইমারি শেয়ার করা স্টোরেজ (/sdcard) ইন্টার্নাল স্টোরেজের উপরে এমুলেট করা হয়।
  • কোনও সেকেন্ডারি এসডি কার্ড স্টোরেজ নেই।
  • USB OTG স্টোরেজ ডিভাইস কাজ করে।
  • একাধিক ব্যবহারকারীকে কাজ করতে দেয়।

fstab.device

/devices/*/xhci-hcd.0.auto/usb*             auto            auto    defaults
                                                    voldmanaged=usb:auto

এমুলেট করা প্রাথমিক, ফিজিক্যাল সেকেন্ডারি

একাধিক এক্সটার্নাল স্টোরেজ ডিভাইস সহ ডিভাইসের জন্য এটি একটি সাধারণ কনফিগারেশন, যেখানে প্রাথমিক ডিভাইসটি ডিভাইসের ইন্টার্নাল স্টোরেজ দ্বারা ব্যাক-আপ করা হয়, এবং যেখানে সেকেন্ডারি ডিভাইসটি Xoom-এর মতো একটি ফিজিক্যাল এসডি কার্ড।

  • প্রাইমারি শেয়ার করা স্টোরেজ (/sdcard) ইন্টার্নাল স্টোরেজের উপরে এমুলেট করা হয়।
  • সেকেন্ডারি স্টোরেজ হল একটি ফিজিক্যাল এসডি কার্ড স্লট যা গ্রহণ করা যেতে পারে।
  • একাধিক ব্যবহারকারীকে কাজ করতে দেয়।

fstab.device

/devices/platform/mtk-msdc.1/mmc_host*           auto      auto     defaults
voldmanaged=sdcard1:auto,encryptable=userdata