OSDN Git Service

generic_x86: support internal storage
authorChih-Wei Huang <cwhuang@linux.org.tw>
Sun, 5 Feb 2012 17:08:47 +0000 (01:08 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Sun, 5 Feb 2012 17:08:47 +0000 (01:08 +0800)
/mnt/sdcard is mounted to /data/media automatically via fuse
filesystem. External storage mountpoint is moved to /mnt/USB.

generic_x86/device.mk
generic_x86/init.rc
generic_x86/init.sh
generic_x86/overlays/frameworks/base/core/res/res/xml/storage_list.xml [new file with mode: 0644]
generic_x86/overlays/frameworks/base/packages/SettingsProvider/res/values/defaults.xml [new file with mode: 0644]

index afefb47..6200a9c 100644 (file)
@@ -53,6 +53,8 @@ PRODUCT_TAGS += dalvik.gc.type-precise
 
 PRODUCT_CHARACTERISTICS := tablet
 
+DEVICE_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlays
+
 # Get the touchscreen calibration tool
 $(call inherit-product-if-exists,external/tslib/tslib.mk)
 
index 4e34c6e..3e49b98 100644 (file)
@@ -35,6 +35,7 @@ loglevel 3
 # create mountpoints
     mkdir /mnt 0775 root system
     mkdir /mnt/sdcard 0000 system system
+    mkdir /mnt/USB 0000 system system
 
 # Create cgroup mount point for cpu accounting
     mkdir /acct
@@ -180,6 +181,10 @@ on post-fs-data
     # create directory for DRM plug-ins
     mkdir /data/drm 0774 drm drm
 
+    # we will remap this as /mnt/sdcard with the sdcard fuse tool
+    mkdir /data/media 0775 media_rw media_rw
+    chown media_rw media_rw /data/media
+
     # If there is no fs-post-data action in the init.<device>.rc file, you
     # must uncomment this line, otherwise encrypted filesystems
     # won't work.
@@ -533,6 +538,10 @@ service userinit /system/bin/sh /system/etc/init.sh
     oneshot
     disabled
 
+service sdcard /system/bin/sdcard /data/media 1023 1023
+    class late_start
+    disabled
+
 service logcat /system/bin/logcat -v time -f /data/log.txt
     disabled
     oneshot
index 6fcc831..4d4c2e8 100644 (file)
@@ -13,5 +13,16 @@ alsa_amixer set Master 100
 alsa_amixer set Headphone 100
 alsa_amixer set Speaker 100
 
+# import cmdline variables
+for c in `cat /proc/cmdline`; do
+       case $c in
+               *=*)
+                       eval $c
+                       ;;
+       esac
+done
+
+[ -z "$SDCARD" -o "$SDCARD" = "internal" ] && start sdcard
+
 # disable cursor blinking
 echo -e '\033[?17;0;0c' > /dev/tty0
diff --git a/generic_x86/overlays/frameworks/base/core/res/res/xml/storage_list.xml b/generic_x86/overlays/frameworks/base/core/res/res/xml/storage_list.xml
new file mode 100644 (file)
index 0000000..cbb167d
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2012, The Android-x86 Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License")
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- The <device> element should contain one or more <storage> elements.
+     Exactly one of these should have the attribute primary="true".
+     This storage will be the primary external storage and should have mountPoint="/mnt/sdcard".
+     Each storage should have both a mountPoint and storageDescription attribute.
+     The following attributes are optional:
+
+        primary:    (boolean) this storage is the primary external storage
+        removable:  (boolean) this is removable storage (for example, a real SD card)
+        emulated:   (boolean) the storage is emulated via the FUSE sdcard daemon
+        mtpReserve: (integer) number of megabytes of storage MTP should reserve for free storage
+                     (used for emulated storage that is shared with system's data partition)
+
+      A storage should not have both emulated and removable set to true
+-->
+
+<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- removable is not set in nosdcard product -->
+    <storage android:mountPoint="/mnt/sdcard"
+             android:storageDescription="@string/storage_internal"
+             android:primary="true"
+             android:removable="false"
+             android:emulated="true"
+             android:mtpReserve="100"/>
+    <storage android:mountPoint="/mnt/USB"
+             android:storageDescription="@string/storage_usb"
+             android:primary="false"
+             android:removable="true" />
+</StorageList>
diff --git a/generic_x86/overlays/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/generic_x86/overlays/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
new file mode 100644 (file)
index 0000000..29449f1
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2012, The Android-x86 Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources>
+    <integer name="def_screen_off_timeout">1800000</integer>
+</resources>