I did not use g_mass_storage because I found that the kernel would crash when unloading this module. I used the Android gadget and I recommend this gadget because it can be used with one more gadgets at the same time.
You are right. I will upload the full sources during my spare time. The following are the core codes :
if [ -b "/dev/mmcblk0p2" ]; then
echo "$_disk" > /sys/class/android_usb/f_mass_storage/lun1/file
echo "$_disk2" > /sys/class/android_usb/f_mass_storage/lun2/file
else
echo "0" > /sys/class/android_usb/f_mass_storage/lun2/ro
echo "0" > /sys/class/android_usb/f_mass_storage/lun2/removable
echo "/dev/mmcblk0" > /sys/class/android_usb/f_mass_storage/lun2/file
fi
echo "USBoot" > /sys/class/android_usb/android0/iManufacturer
echo "USBootPi" > /sys/class/android_usb/android0/iProduct
echo "f833" > /sys/class/android_usb/android0/idVendor
echo "0001" > /sys/class/android_usb/android0/idProduct
echo "mass_storage" > /sys/class/android_usb/android0/functions
echo "2" > /sys/bus/platform/devices/sunxi_usb_udc/otg_role
echo "1" > /sys/class/android_usb/android0/enable