using the internal memory as a virtual sdcard - Milestone 2 Android Development

I managed to break my micro sd card in half today and I wasn't able to pickup a class 10 or 6 replacement locally so I thought I could use some of the 6gb of internal memory as a virtual filesystem to get me out of trouble.
So, after quickly looking at the android docs and the supported busybox commands I created a 2gb sdcard.img in /data and mounted to /sdcard. I copied some files to it with astro filemanager and fired up raging thunder 2 and it went ahead and downloaded the game data to /sdcard/ and worked correctly.
But, a few apps won't recognise it as an sdcard (Motorola SD card and phone storage settings applet) as well as things like PlayPro (states I have no sdcard present). I thought perhaps I could modify the /etc/vold.fstab file to auto mount the sdcard.img I created using vi but I'm a bit clueless as to what I should change on the dev_mount /sdcard line to get it automounted at boot and hopefully fool the rest of the apps into thinking it is a physical sdcard.
Can anyone possibly point me in the right direction? Not sure how to invoke cmd mode in vi using the milestone qwerty either but I'll keep digging.
What I did (roughly), maybe I'm going about it wrong but any advice would be appreciated.
1. rooted device
2. installed the free terminal app from the market
3. fired up the terminal shell
4. su
5. dd if/dev/zero of=/data/sdcard.img bs=1024 count=1 seek=2000000
6. busybox mkfs.vfat /data/sdcard.img (didn't seem to support -F 32)
7. busybox mount -o loop /data/sdcard.img /sdcard/

+ 1 for this, it would be great to can use internal storage for user data

Why do you let this nice post die.. so "flibbulator" found anything more out?.. I'd like to know more.. like if you got it to work with Music Players and Video players??

Try to mount /data/sdcard.img to /mnt/sdcard (/sdcard is a link to /mnt/sdcard)
or try "export EXTERNAL_STORAGE /sdcard"
I made in a different way: created a 4GB storage.img in /data and mounted it in /sdcard/storage, so internal storage is finally usable for user data
the problem was to set mount point on boot, I can't find a way to execute a script on boot (you can't permanently modify init.rc)

flibbulator said:
What I did (roughly), maybe I'm going about it wrong but any advice would be appreciated.
1. rooted device
2. installed the free terminal app from the market
3. fired up the terminal shell
4. su
5. dd if/dev/zero of=/data/sdcard.img bs=1024 count=1 seek=2000000
6. busybox mkfs.vfat /data/sdcard.img (didn't seem to support -F 32)
7. busybox mount -o loop /data/sdcard.img /sdcard/
Click to expand...
Click to collapse
I have actually tried this on my Droid2Global, and I get the error "unknown operand if/dev/zero" I feel like I am missing the point or do not fully understanding how to use the "dd" command?

the correct syntax is:
dd if=/dev/zero of=/data/sdcard.img bs=1024 count=4194340
4194340 --> 4GB

patton82 said:
the correct syntax is:
dd if=/dev/zero of=/data/sdcard.img bs=1024 count=4194340
4194340 --> 4GB
Click to expand...
Click to collapse
Thank you bro.
Quick question I keep getting these errors. I do have a folder in "/" named "sdcard-int"
Better Terminal Emulator Pro
/ # busybox mount -o loop /data/sdcard.img /sdcard-int/
mount: can't setup loop device: No such file or directory
/ # busybox mount -o /data/sdcard.img /sdcard-int
mount: can't read /etc/fstab: No such file or directory
/ #
Sent from my DROID2 GLOBAL using Tapatalk

you can't place anything in root folder, /sdcard is a link to /mnt/sdcard and is created by init.rc (you can't edit init.rc, it's provided by boot.img, so need to extract from boot.img and repack)
I made in this way but I have to manually execute a script or a command from terminal after every boot to mount storage.img
mkdir /sdcard/storage
su
dd if=/dev/zero of=/data/storage.img bs=1024 count=4194340
busybox mkfs.vfat /data.storage.img
mount -o loop -t vfat /data/storage.img /sdcard/storage

Will be lost anything after reboot when use this storage?
Sent from my MotoA953 using XDA App

all the stuff in img file will not be lost, as long as you put it in /data/
on the contrary the mount point must be restored after reboot

patton82 said:
you can't place anything in root folder, /sdcard is a link to /mnt/sdcard and is created by init.rc (you can't edit init.rc, it's provided by boot.img, so need to extract from boot.img and repack)
I made in this way but I have to manually execute a script or a command from terminal after every boot to mount storage.img
mkdir /sdcard/storage
su
dd if=/dev/zero of=/data/storage.img bs=1024 count=4194340
busybox mkfs.vfat /data.storage.img
mount -o loop -t vfat /data/storage.img /sdcard/storage
Click to expand...
Click to collapse
Thank you, I will use the Thank you button when I login via PC.
I still get the same error, I know that I'm doing something incorrectly or maybe I don't understand "mount" comment correctly?
/ $ su
/ # mkdir /sdcard/storage
/ # dd if=/dev/zero of=/data/storage.img bs=1024 count=41943404194340+0 recordsn
4194340+0 records out
4295004160 bytes (4.0GB) copied, 339.823883 seconds, 12.1MB/s
/ # busybox mkfs.vfat /data/storage.img
/ # mount -o loop -t vfat /data/storage.img /sdcard/storage
mount: can't setup loop device: No such file or directory
/ #
I am using my sdcard also, I'm not too sure if that makes any difference?
Sent from my DROID2 GLOBAL using Tapatalk

Better terminal pro uses BASH shell, I presume
try to switch to android shell, in preferences
or to use terminal emulator (free) from market

Okay, I tried Android Terminal Emulator, and this is a new error.
export PATH=/data/local/bin:$PATH
$ $ su
# mount -o loop -t vfat /data/storage.img /sdcard/storage
ioctl LOOP_SET_FD failed: Device or resource busy
#
Not too sure where to go now. I thank you again for all your help, and time.
Sent from my DROID2 GLOBAL using Tapatalk

resource busy, you have to reboot the phone
I use Gscript lite, add a script with the string
mount -o loop -t vfat /data/storage.img /sdcard/storage
and create a shortcut to homescreen, so when I reboot, I can mount the img file in one click

Cool mod for my ROM. Could I take it??

sure, they are simple shell commands
the best would be to do what happen with Samsung Galaxy S: internal storage mounted as sdcard and physical sdcard mounted in a folder /sdcard/sd
storage.img is 3-4 times faster than my peak 8GB class 6

There is an application "Autostart" in the market, which can automatially execute a script with root after boot up.

I up because I'm now also interested in making profit of the huge internal storage. I'd like to put my wikipedia data from wikidroyd to the internal storage. Hopefully I'm skilled enough to follow the given steps...I doubt that though

fKngFtd said:
Okay, I tried Android Terminal Emulator, and this is a new error.
export PATH=/data/local/bin:$PATH
$ $ su
# mount -o loop -t vfat /data/storage.img /sdcard/storage
ioctl LOOP_SET_FD failed: Device or resource busy
#
Not too sure where to go now. I thank you again for all your help, and time.
Click to expand...
Click to collapse
Guys, I need your help! I have exactly. The same problem:
Every time I try to mount my storage.img I get
Ioctl LOOP_SET_FD failed: Device or resource busy.
I rebooted several times and also tried to mount smaller images (first I tried 3gb then I tried 1mb).
Any solution?
Edit: I solved it myself. I always forgot to punch in busybox before the command. Now it worked for me!!

I do have a question now. With help of Gscript I made a shortcut to mount the storage.img to my sdcard. But my pc wont recognise the sdcard as long as the image is mounted. What is the command to unmount the partition so I wouldnt have to reboot my phone before connecting it to the pc...?
Any help is much appreciated! Thx
(Something like busybox unmount -o loop -t vfat...?)
Sent from my MotoA953 using XDA App

Related

please help me move my apps to sd card

i know theres a thread but i'm confuse about what to install and run to transfer my apps to my sd card.
my sd card is already partitioned to 6gb fat32 and 2gb ext2 and its rooted with jf1.41 as well.
please give me a specific instructions cuz im a noob when it comes to adb shell sdk cmd or whatever computer words.
thanks in advance!
Well i'm a noob as well can't seam to finish the last step myself but i'll try my best.
Just a wild gues u r running Windows right?
yeah im using windows xp but it has vista transformation pack if that will make a difference.
Ok.
Have u got "modified mountd & init.zip (685 Bytes, 475 views)" wich is an attachement at the bottom of http://forum.xda-developers.com/showthread.php?t=468959 ???
Download this small zip from http://modmygphone.com/wiki/index.php/Setting_up_ADB . Unzip the files to a desktop and copy it to system folder after that follow this link http://www.computerhope.com/issues/ch000549.htm.
let me know when u r done???
But remember i am also a big time noob but just trying to help as much as i can when no one else will so if i get some thing wrong don't get angry with me just let me know what i told u that was wrong and that way we can help each other out and correct one n other.
Zionator said:
But remember i am also a big time noob but just trying to help as much as i can when no one else will so if i get some thing wrong don't get angry with me just let me know what i told u that was wrong and that way we can help each other out and correct one n other.
Click to expand...
Click to collapse
if you copy the modified mount.conf and init.rc files to the SD card at the root then this would be the way in "Terminal":
$su
#busybox cp -a /sdcard/mount.conf /system/etc/mount.conf
#busybox cp -a /sdcard/init.rc /system/init.rc
#mkdir /system/sd
now that the modified files are there you MUST reboot .. this is all done after you have root and after you have done the double partitions on your SD card .. once you reboot you should go back to the "Terminal" to make sure everything's good
$su
#busybox df -h
if you don't see a line like this:
/dev/mmcblk0p2 1.5G 94.4M 1.3G 7% /system/sd
then something didn't mount properly .. so if you DO see this line now you can continue:
#busybox cp -a /data/app /system/sd
#rm -r /data/app
#ln -s /system/sd/app /data/app
#busybox cp -a /data/app-private /system/sd
#rm -r /data/app-private
#ln -s /system/sd/app-private /data/app-private
now the apps are all on the EXT2 partition of the MicroSD .. happy downloading
I don't know what i have done wrong but eveything i try i keep getting errors and u have been more then help full but i am proberly to stupid to do it my self and i know i can do it if only i could find a video toturial from youtube or so but can't find any so i am stuck here.
But thank you very much for all ur help i would never have gotten to the last step with out ur help.
So now my only option is a help video or remote pc help if that is possible.
Ps. xda should make u a Moderator or Admin cause u r very help full and u know what u r talking about.
Zionator said:
I don't know what i have done wrong but eveything i try i keep getting errors and u have been more then help full but i am proberly to stupid to do it my self and i know i can do it if only i could find a video toturial from youtube or so but can't find any so i am stuck here.
But thank you very much for all ur help i would never have gotten to the last step with out ur help.
So now my only option is a help video or remote pc help if that is possible.
Ps. xda should make u a Moderator or Admin cause u r very help full and u know what u r talking about.
Click to expand...
Click to collapse
it's a nice thought .. not really sure i'd want to hold that kind of responsibility tho .. i think it'd be like calling me "Mr. President" when i drive the local garbage truck .. these guys are doing great here .. i'm just glad to lend a hand and hope it helps out
Hey guys just thought i'd chime in.
Firstly just to clarify are you using adb from your windows system or are you trying to do this all on the terminal app because these commands are issued to terminal after replacing both mount.conf and init.rc as described above
$su
#busybox df -h
as above you should see a line "/dev/SOMETHING" "size data" "/system/sd"
if you don't see this line then there's most likely a problem with your card format, did you make sure you had fat32 first then ext2 in that order on the card, fat32 must be first. i find it helps to check if camera can use the sdcard, if it can't, reformat, unmount and check camera again.
Assuming you've gotten this right so far
#busybox cp -a /data/app /system/sd
#rm -r /data/app
#ln -s /system/sd/app /data/app
#busybox cp -a /data/app-private /system/sd
#rm -r /data/app-private
#ln -s /system/sd/app-private /data/app-private
and hopefully your apps should all work, but not appear as downloaded in the market (don't worry this'll change if you reinstall them from the market)
if you're using adb from windows to try the above the commands will be slightly different:
Procedure:
***********************************************************
- this can be skipped if you've already replaced the mountd.conf and init.rc
adb remount
adb shell mkdir /system/sd
adb shell ls /system
adb push LOCATION OF FILE/mountd.conf system/etc/mountd.conf
adb push LOCATION OF FILE/init.rc system/init.rc
(LOCATION OF FILE = the folder you have the modified files)
adb shell
reboot
***********************************************************
If you've skipped ahead
adb remount
adb shell
busybox df -h
as above you should see a line "/dev/SOMETHING" "size data" "/system/sd"
Again if this line doesn't exist you've missed something, go back
busybox cp -a /data/app/ /system/sd
rm -r /data/app/
ln -s /system/sd/app /data/app
busybox cp -a /data/app-private /system/sd/app-private
rm -r /data/app-private
ln -s /system/sd/app-private /data/app-private
reboot
and hopefully your apps will all work and again, not appear in market.
If this doesn't help please advise what error messages you are getting and exactly where everythings going wrong, maybe we can get you back on track.
just reformated the card from fat 16 to fat 32 as u said hope it works now lol.
And thanks for the help.
Keep u posted.
C:\Users\Illuminator\Desktop>adb shell
# busybox df -h
busybox df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 48.4M 0 48.4M 0% /dev
tmpfs 4.0M 0 4.0M 0% /sqlite_stmt_journals
/dev/block/mtdblock3 67.5M 67.5M 0 100% /system
/dev/block/loop0 1.4M 1.4M 0 100% /system/modules
/dev/block/loop1 3.1M 3.1M 0 100% /system/xbin
/dev/block/mtdblock5 74.8M 44.6M 30.1M 60% /data
/dev/block/mtdblock4 67.5M 1.3M 66.2M 2% /cache
/dev/block/mmcblk0p1 1.3G 4.0K 1.3G 0% /sdcard
#
--------------------------------------------------------------
# busybox cp -a /data/app/ /system/sd
busybox cp -a /data/app/ /system/sd
cp: write error: No space left on device
cp: write error: No space left on device
cp: write error: No space left on device
The list goes on and on. puha need a smoke.
But thanks for help.
why does it say "No space left on device"???
C:\Users\Illuminator\Desktop\G2>adb push C:\Users\Illuminator\Desktop\G2\/mountd
.conf /system/etc/mountd.conf
failed to copy 'C:\Users\Illuminator\Desktop\G2\/mountd.conf' to '/system/etc/mo
untd.conf': No space left on device
Ok might be fine but better safe than sorry your last line says:
/dev/block/mmcblk0p1 1.3G 4.0K 1.3G 0% /sdcard
That means that you're sdcard in fat32 format is only 1.3gbs in size is that correct? I assume this means you're using the sdcard that came free with the phone (2gb) if your card is larger say an 4 or an 8 something has gone wrong, but if this is correct lets move on.
cool so your sdcard is now partitioned fat32 -1.3gb followed by 0.7gb ext2
better safe than sorry redownload http://forum.xda-developers.com/attachment.php?attachmentid=139735&d=1230107855 the files and place them (the 2 files, not the folder) in the same folder as adb (do not mount your usb card)
>adb remount
>adb push mountd.conf system/etc/mountd.conf
>adb push init.rc system/init.rc
>adb shell
#mkdir /system/sd
#ls /system
(make sure a folder called sd exist)
#reboot
When your android reboots
>adb remount
>adb shell
#busybox df -h
Cross fingers, pray, beg, bargain and look for the line
"/dev/SOMETHING" "size data" "/system/sd"
in case this doesn't work i'm going to pm you my email, we can chat on google messenger and try and get this sorted
Quick question are you remembering to "adb remount" when you attach the phone - if you don't the phone wont be writable, which may explain the no space issue here:
C:\Users\Illuminator\Desktop\G2>adb push C:\Users\Illuminator\Desktop\G2\/mountd
.conf /system/etc/mountd.conf
failed to copy 'C:\Users\Illuminator\Desktop\G2\/mountd.conf' to '/system/etc/mo
untd.conf': No space left on device
*********but here you are trying to write to a location that doesn't exist, unless you see the magic line ending system/sd you cannot proceed
# busybox cp -a /data/app/ /system/sd
busybox cp -a /data/app/ /system/sd
cp: write error: No space left on device
cp: write error: No space left on device
Jesus this is killing me!!! yesterday i got all the way to step.12
And yes the sd came with the phone sdcard in fat32 -1.3gb followed by 0.7gb ext2 - yes that's correct.
And in case u where woundering then yes my phone is rooted wich was a pice of pie compered to this lol.
---------------------------------------------------------------------
C:\Users\Illuminator\Desktop>adb remount
remount succeeded
C:\Users\Illuminator\Desktop>adb push mountd.conf system/etc/mountd.conf
failed to copy 'mountd.conf' to 'system/etc/mountd.conf': No space left on devic
e
C:\Users\Illuminator\Desktop>adb push C:\Users\Illuminator\Desktop\/mountd.conf
system/etc/mountd.conf
failed to copy 'C:\Users\Illuminator\Desktop\/mountd.conf' to 'system/etc/mountd
.conf': No space left on device
C:\Users\Illuminator\Desktop>
You're not kidding i've done this 5 times (on 3 phones - updates) never had this much trouble!
do you have the same problems if you sit the files on your sdcard and do the following? if so as much as it sucks to lose your data i would strongly suggest doing a wipe before hand (reboot phone holding home and at prompt alt + w)
>adb shell
#busybox cp -a /sdcard/mount.conf /system/etc/mount.conf
#busybox cp -a /sdcard/init.rc /system/init.rc
#mkdir /system/sd
C:\Users\Illuminator\Desktop>adb shell mkdir /system/sd
mkdir failed for /system/sd, File exists
fantastic, well that's something! how about the other two did both copy successfully? and if so does the magic line appear after reboot?
faithnolonger said:
fantastic, well that's something! how about the other two did both copy successfully? and if so does the magic line appear after reboot?
Click to expand...
Click to collapse
Just restarting the phone but for some reason all the app are copyed to the fat32 part of the sdcard lol.
oh no for some odd reason the sdcard is not working no more???
--------------------------------------------------------------------
# busybox df -h
busybox df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 48.4M 0 48.4M 0% /dev
tmpfs 4.0M 0 4.0M 0% /sqlite_stmt_journals
/dev/block/mtdblock3 67.5M 67.5M 0 100% /system
/dev/block/loop0 1.4M 1.4M 0 100% /system/modules
/dev/block/loop1 3.1M 3.1M 0 100% /system/xbin
/dev/block/mtdblock5 74.8M 44.6M 30.1M 60% /data
/dev/block/mtdblock4 67.5M 1.3M 66.2M 2% /cache
#
------------------------------------------------------------------------
Just wiped the system on the phone and reinstalling the JFv1.31
wow that's not right your apps should not be there:S
ok maybe time to go to real time chat i've got my android next to me, i've pm'd you my email address, you can message me over IM
Ok thanks i am ready in chat mode hehe.
when i type any of the adb command stuff i keep getting error: device not found. i don't know what to do next.

Sometimes impossible to mount system partition ?

How to explain that it is impossible to mount the system partition in recovery ? Should I format my sd card to correct that ?
the /system/ files do not reside in your sd card. They are stored in your phone. Are able to boot up your phone at all? If so you can mount it via a terminal app. You might also need busybox installed. At the terminal type the following
$ su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock1 /system

[Q] Can't mount /system as r/w

Have an HTC hero with CM7 stable. Been trying to modify sysctl.conf to increase the speed a little (if thats possible, CM7 is fast). I've used the command in ./adb shell and terminal emulator:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
When I type mount it displays /system as a r/w partition but I still can't edit the sysctl.conf file. When I do try to edit, the shell says that the directory doesn't exist (/ect/sysctl.conf).
Even with simpler commands like "adb pull /system/ect/sysctl.conf /" still come back as directory doesn't exist.
What am I doing wrong? Ultimately if I can want to get the sysctl file to my PC to edit and place back on the phone.
Have you tried using something like Root Explorer? While learning & knowing ADB comes in handy, I find most things are easier through Root Explorer. You can just copy the file to your SD card, then to your computer.
EDIT: On second look, you have /system/ect... instead of /system/etc...
I also believe it should be mtdblock4 instead of mtdblock3, but I could be wrong. I'm not good with this kind of stuff.
Type in mount to see what device is currently mounted as /system...I would just double check
Sent from my Droid using XDA App
This command should also work:
Code:
mount -w -o remount /system /system
I typed mount in cmd. Says that /system is in mtdblock3. I will try root explorer and see if it fixes my woes. Thanks.

[How to] get full ubuntu and your favorite desktop in webtop

Ok, Today I will show how to fully unlock the webtop feature in the Atrix 2, so that you can use your favorite Linux apps and desktop, to be more productive while using webtop.
This will be in several posts to make this easier to read and understand.
There are several requirements I will list here, first:
1) A way to use webtop - The HD, or lapdock, or have completed the webtop mod for the HDMI connection Here
2) This is most important, and if you completed 1, then you most likely have done it, root your Atrix 2
3) A USB SDcard reader. I have the Sandisk imagemagick, but any one you like will do
4) Be able to ADB from your computer to your phone
5) Not afraid of a little command line work
Partition Instructions:
Depending upon your operating system, free software is available so that you can partition and format your device without losing all the data on it.
You will need to get one of the apps / iso images below, I recommend the live iso with gparted on it, just because I am a UNIX/ Linux guy by trade and choice, and this is what I use.
Linux gparted live iso image:
http://gparted.sourceforge.net/livecd.php
Windows MiniTool Partition Wizard:
http://www.partitionwizard.com/free-partition-manager.html
You must create a parition on your SDcard for webtop, as this is is a full Operating System and takes a good bit of space. I made mine around 8GB on my 32GB card, and for the purpose of showing you here, I created a 4GB partition on a spare 16GB card I have. 1GB is the minimum, because that is what is already being used on the Atrix2 and I think it is about 80% full or so.
The partition you create MUST be a primary partition and formated to ext3.
For Windows here are some screen shots from another board that may help, with instructions:
This is what the MiniTool Partition Wizard screen looks like when I have an 8 GB SD card inserted. As you can see, there's currently one single FAT32 partition present.
http://forum.xda-developers.com/attachment.php?attachmentid=651143&d=1310342755
When you right click on the partition, you'll see a Move/Resize option. That's the one you want to select for non-destructive partitioning.
http://forum.xda-developers.com/attachment.php?attachmentid=651144&d=1310342755
At that point, you can select how large you want your partition to be. You want to make sure that the "Unallocated Space Before" stays at 0.00 MB, so that the new partition will be the second one. In my case, I've opted to create a 4 GB partition as the second partition.
http://forum.xda-developers.com/attachment.php?attachmentid=651145&d=1310342755
Once that has been set up, right click on the Unallocated space, then select Create.
http://forum.xda-developers.com/attachment.php?attachmentid=651146&d=1310342766
We're not worried about the warning that Windows throws up, particularly since we know we'll be creating a partition that Windows can't read anyways. So just hit Yes.
http://forum.xda-developers.com/attachment.php?attachmentid=651147&d=1310342766
Create the second partition at the maximum size with the following settings:
Create As: Primary
File System: Ext3
http://forum.xda-developers.com/attachment.php?attachmentid=651148&d=1310342766
After that's done, click on the Apply Changes button.
http://forum.xda-developers.com/attachment.php?attachmentid=651149&d=1310342766
And now you're done! Put the card back into your Atrix2
Now for gparted:
If you are familiar with Linux and know how to use gparted, just resize your FAT32 partition to whatever size you want, then create a partition at least 1GB in size (I recommend 4GB), and make it an EXT3.
Now for the rest that are using the iso here is some info and screen prints:
Launch gparted:
Here is a screen print of my desktop with gparted running:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Now in the upper right corner there is a little drop down that has something like /dev/sda in it, change this to your SDcard, mine was /dev/sdc.
Next right click on the partition in the middle of the screen, it should be surrounded in green, then click Resize/Move:
Then when the next screen comes up, drag the arrow from the left to the middle of the screen to resize the partition, to the size you want, this is in MegaBytes:
Now will have one partition that is ready to resize, and it should look like this, you will click on the "Apply all Operations button":
Then a little window with the percentage will show up and tell you when it is complete, just click the close button when it finishes.
Next you will right click on the unallocated part of the SDcard and click new:
Then you will tell it how big in new size box, I let it do the whole thing at 4GB, then select ext3 in the File system drop down menu:
Then after you click add in the last screen, you will click the "Apply all Operations button" Again:
Now it will show the percentage window again, and when it is complete, click the close button.
Done! Now it should look like this:
Put your SDcard back into your phone now.
Next will be how to copy over some patches and a script that will do a lot more, and a manual way for the brave.
Ok, so now that we are partitioned we can do some real fun stuff, and by fun stuff I mean command line.
I would make sure you are plugged into a power source when you are doing this part, becuase the script will run for a very long time, it is copying 1GB of data to your SDcard, and installing a patch that includes another 100 or so MB of needed programs.
Go get this tarball
IT IS VERY IMPORTANT THAT YOU COPY THIS INTO /data/local ON YOUR PHONE
Copy this to your system with:
adb push webtop_unlock.tar /data/local
Now connect to your phone with ADB
adb shell
su
cd /data/local
tar -xvf webtop_unlock.tar
chmod 755 setup_webtop.sh
sh ./setup_webtop.sh
This will do a whole lot of things, like copy the webtop install to your SDcard, then patch it, so that you can run synaptic and a termial and disable the FACLs and MACLs that Motorola has implemented, so that it is not locked down anymore.
***Note: I only had a chance to run and test this script once, so if it is an issue please let me know nicely in a post here, or PM me, but please copy any errors or get a screen print if you can, so that I know what to fix. Please don't post a reply with it did not work, give me as much info as you can.
After your phone reboots ADB into it again, and do this:
su
mount -o remount, rw /
**take note that you must run the "mount -o remount, rw /" command anytime you reboot your phone because any programs you get thru apt-get or synaptic will error out during installation
Now that you have most of what you need Do this:
Connect to webtop with whatever method you like, HD dock, or lapdock, or TV (you most likely have to have a bluetooth keyboard mouse to use your TV).
Then when the webtop session starts:
Ctrl+Alt+T
When the Terminal launches type this at the command line and hit return
sudo apt-get update
From here, you can run "gksu synaptic" and use the password "test" to start installing various different programs and packages that are normally available on Ubuntu.
Dependencies
Take caution when modding Webtop because there are some dependencies that will break Webtop if they are upgraded such as anything ending in a .mot or anything resembling that.
Credits
Please thank [mbm] for fixing what Motorola took out, without him, none of this would be possible without his patch.
Sogarth for being the pioneer of Webtop hacking.
Now that you can get into synaptic, go find a desktop you like and install it.
I use gnome and I like it, but here is a list of KNOWN working apps, I am sure there are many more, just know some will not work at all.
Working Programs:
OpenOffice
XFCE4
Xchat
LxTerminal
Transmission
lxpanel
rdesktop
VLC Player (Video is choppy)
Gnome-Panel
Evolution Email
Chrome-Browser
Now that you have a desktop you want to run, lets set it up to start for you instead of that launcher at the bottom of the screen now.
After installing your DE of choice thru apt-get or synaptic, navigate on your phone with Root File Explorer to /osh/usr/local/bin/ and open the file "start-oshwt-2.sh" in the text editor and you will be presented with something that looks like this:
#! /bin/sh
### BEGIN INIT INFO
# Provides: start_lxde2.sh
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description: started by adas user at login
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
. /lib/lsb/init-functions
export `fbcp_dsba`
log_action_msg "Will now start OSHWT 2 scripts"
sfalv -i "/usr/lib/gvfs/gvfs-gdu-volume-monitor"
# start OSHWT 2 scripts
sfalv -i "awn-autostart"
sfalv -i "webtop-panel"
sfalv -i "webtop-wallpaper"
sfalv -i "evbridge"
webtop-wallpaper &
evbridge &
sfalv -i "window_switcher"
system-config-printer-applet >/dev/null 2>/dev/null &
sr-test avahi_start &
# IKXWEBTOP-5690 workaround.
# xkb is broken in 10.10 in that each time a keyboard is connected
# the layout of all other keyboards become the layout of
# the last connected keyboard.
# There is an xorg.conf.d rule that forces all keyboards to
# layout 'us(android)' but for some reason it is not working for
# evfwd. Here we force xkb to work with 'us(android)' so evfwd
# is assigned the right layout.
setxkbmap 'us(android)'
Note:
I highlighted the section you are interested in in Blue.
The sfalv -i "awn-autostart" command might also bin the file /osh/usr/local/bin/start-oshwt-1.sh
From here, if you comment out the sfalv -i "awn-autostart", then add to the script sfalv -i "xfdesktop" and sfalv -i "xfce4-panel" if you installed xfce4 or whatever Desktop environment you installed. If you followed this, your script should look like this:
#! /bin/sh
### BEGIN INIT INFO
# Provides: start_lxde2.sh
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description: started by adas user at login
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
. /lib/lsb/init-functions
export `fbcp_dsba`
log_action_msg "Will now start OSHWT 2 scripts"
sfalv -i "/usr/lib/gvfs/gvfs-gdu-volume-monitor"
# start OSHWT 2 scripts
#sfalv -i "awn-autostart"
sfalv -i "webtop-panel"
sfalv -i "xfdesktop"
sfalv -i "xfce4-panel"
#sfalv -i "webtop-wallpaper"
#sfalv -i "evbridge"
webtop-wallpaper &
evbridge &
sfalv -i "window_switcher"
system-config-printer-applet >/dev/null 2>/dev/null &
sr-test avahi_start &
# IKXWEBTOP-5690 workaround.
# xkb is broken in 10.10 in that each time a keyboard is connected
# the layout of all other keyboards become the layout of
# the last connected keyboard.
# There is an xorg.conf.d rule that forces all keyboards to
# layout 'us(android)' but for some reason it is not working for
# evfwd. Here we force xkb to work with 'us(android)' so evfwd
# is assigned the right layout.
setxkbmap 'us(android)'
Hiya Jim! Thanks for posting this!
Question:
So with this it says you have to have a bluetooth keyboard and mouse for use with a TV. Did they disable the onscreen keyboard and mouse then?
voodoomurphy said:
Hiya Jim! Thanks for posting this!
Question:
So with this it says you have to have a bluetooth keyboard and mouse for use with a TV. Did they disable the onscreen keyboard and mouse then?
Click to expand...
Click to collapse
If you use the webtop patch for connecting to a tv, I THINK you can still use the touch screen on the phone for keyboard and mouse, but I will be real honest, I have not tried it, since I have the HD dock and I have used a lapdock or two to play with.
Jim,
I gparted my **** the other day and made a 4 gig partition called Linux, but when I ran the script I got this:
done. Sit back this will all take a while. ==========================================================
Finding the partition you setup and formatted to ext3....
Copying the scripts that will mount the osh partition on your sdcard at every boot.
Copied mountosh into place
stat: cannot stat '/tmp/osh': No such file or directory
Mounting your sdcard linux partition so that we can copy over the wetop install to it
link_image[1964]: 10279 could not load needed library 'liblog.so' for '/system/bin/mount' (link_image[1964]: 10279 could not load needed library 'libgcc_s.so.1' for 'liblog.so' (load_library[1106]: Library 'libgcc_s.so.1' not found))CANNOT LINK EXECUTABLE
[: 45881: unknown operand
Your SD card did not mount properly; Please send the log to the author of this script
[email protected]:/data/local# Chris-Murphys-MacBook-Pro:~ chrismurphy$
and now the web top will not load to my TV. I am using the hdmi hack for that. Thoughts?
voodoomurphy said:
Jim,
I gparted my **** the other day and made a 4 gig partition called Linux, but when I ran the script I got this:
done. Sit back this will all take a while. ==========================================================
Finding the partition you setup and formatted to ext3....
Copying the scripts that will mount the osh partition on your sdcard at every boot.
Copied mountosh into place
stat: cannot stat '/tmp/osh': No such file or directory
Mounting your sdcard linux partition so that we can copy over the wetop install to it
link_image[1964]: 10279 could not load needed library 'liblog.so' for '/system/bin/mount' (link_image[1964]: 10279 could not load needed library 'libgcc_s.so.1' for 'liblog.so' (load_library[1106]: Library 'libgcc_s.so.1' not found))CANNOT LINK EXECUTABLE
[: 45881: unknown operand
Your SD card did not mount properly; Please send the log to the author of this script
[email protected]:/data/local# Chris-Murphys-MacBook-Pro:~ chrismurphy$
and now the web top will not load to my TV. I am using the hdmi hack for that. Thoughts?
Click to expand...
Click to collapse
ok adb in and remove the files you used.
Code:
adb shell
cd /data/local
rm setup_webtop.sh
rm mountosh
rm mountosh1
rm unlock_webtop.tar
rm webtop_setup.log
mount -o remount, rw /system
cd /system/bin
rm mountosh
mv mountosh.orig mountosh
cd /data/local
mount -o remount, rw /system
End Code
Then go download the tarball again from the link in the OP (I made a slight change in the script that should fix the error about stating the /tmp/osh directory), and do the instructions in OP again.
jimbridgman said:
ok adb in and remove the files you used.
Code:
adb shell
cd /data/local
rm setup_webtop.sh
rm mountosh
rm mountosh1
rm unlock_webtop.tar
rm webtop_setup.log
mount -o remount, rw /system
cd /system/bin
rm mountosh
mv mountosh.orig mountosh
cd /data/local
mount -o remount, rw /system
End Code
Then go download the tarball again from the link in the OP (I made a slight change in the script that should fix the error about stating the /tmp/osh directory), and do the instructions in OP again.
Click to expand...
Click to collapse
ok so when I tried to rm mountosh it gave me permissions denied.
EDIT** Ahh, I needed to be su after going into dab
Edit***: Jim When I try to run the webtop SH file I get this:
[email protected]:/data/local# sh ./setup_webtop.sh
./setup_webtop.sh: 116: Syntax error: "}" unexpected (expecting "fi")
[email protected]:/data/local#
voodoomurphy said:
ok so when I tried to rm mountosh it gave me permissions denied.
EDIT** Ahh, I needed to be su after going into dab
Edit***: Jim When I try to run the webtop SH file I get this:
[email protected]:/data/local# sh ./setup_webtop.sh
./setup_webtop.sh: 116: Syntax error: "}" unexpected (expecting "fi")
[email protected]:/data/local#
Click to expand...
Click to collapse
Ok, I found the issue, I forgot to close out a new if loop I had to add to fix the last issue.
I have updated it, go re download and remove the files in /data/local
check to make sure that there is not a /system/mountosh.orig,
if there is, move it back to mountosh, and remove the mountosh script ONLY if there is a mountosh.orig. I am guessing that there is not one since this most likely did not run at all.
P.S. I can't test it, since I don't have my replacement phone yet, they did not have any in stock at the repair center, so Motorola had to send me a new one on Sat. I should have it tomorrow or Wed. at the latest, I will have to do all of these things again, and I can test it then is depth a little more. Otherwise if you don't mind Being the guinea pig I will fix any issues ASAP.
jimbridgman said:
Ok, I found the issue, I forgot to close out a new if loop I had to add to fix the last issue.
I have updated it, go re download and remove the files in /data/local
check to make sure that there is not a /system/mountosh.orig,
if there is, move it back to mountosh, and remove the mountosh script ONLY if there is a mountosh.orig. I am guessing that there is not one since this most likely did not run at all.
P.S. I can't test it, since I don't have my replacement phone yet, they did not have any in stock at the repair center, so Motorola had to send me a new one on Sat. I should have it tomorrow or Wed. at the latest, I will have to do all of these things again, and I can test it then is depth a little more. Otherwise if you don't mind Being the guinea pig I will fix any issues ASAP.
Click to expand...
Click to collapse
Well Now I get this when I try to open the sh file:
[email protected]:/data/local# sh ./setup_webtop.sh
.: Can't open /osh/upath.sh
[email protected]:/data/local#
I'll Keep trying as long as you think it's fixable. Last thing I want is to lose my web top entirely.
EDIT**: Right now when I connect my phone to my monitor I get a moving Motorola logo like it's a screen saver.
voodoomurphy said:
Well Now I get this when I try to open the sh file:
[email protected]:/data/local# sh ./setup_webtop.sh
.: Can't open /osh/upath.sh
[email protected]:/data/local#
I'll Keep trying as long as you think it's fixable. Last thing I want is to lose my web top entirely.
EDIT**: Right now when I connect my phone to my monitor I get a moving Motorola logo like it's a screen saver.
Click to expand...
Click to collapse
It is fixable! I used to be a system admin, (before I switched to consulting and system architecture) and you can always fix it until it no longer boots.
when you ran the script, did fully run and did you see files being copied, and did it reboot your phone?
ok, now I need you to run a few commands and collect some data. post the output here, after you get it.
Code:
adb shell
su
/system/bin/fdisk -l /dev/block/mmcblk0 | grep -i linux
busybox df -h
ls -l /system/mountosh
ls -l /system/mountosh.orig
cd /osh
cd /osh/etc
ls -l
End Code
I am suspecting that the script somehow applied the patch, and the FACLs and MACLs are still in place.
If things look good, then we will try and move tomoyo out of the way.
jimbridgman said:
It is fixable! I used to be a system admin, (before I switched to consulting and system architecture) and you can always fix it until it no longer boots.
when you ran the script, did fully run and did you see files being copied, and did it reboot your phone?
ok, now I need you to run a few commands and collect some data. post the output here, after you get it.
Code:
adb shell
su
/system/bin/fdisk -l /dev/block/mmcblk0 | grep -i linux
busybox df -h
ls -l /system/mountosh
ls -l /system/mountosh.orig
cd /osh
cd /osh/etc
ls -l
End Code
I am suspecting that the script somehow applied the patch, and the FACLs and MACLs are still in place.
If things look good, then we will try and move tomoyo out of the way.
Click to expand...
Click to collapse
files did copy, but then it all errored out. BTW I went back in and followed your instructions for the partitioning.
here's what I have from the code you asked for:
Chris-Murphys-MacBook-Pro:~ chrismurphy$ adb shell
[email protected]:/$ su
[email protected]:/# /system/bin/fdisk -l /dev/block/mmcblk0 | grep -i linux
/dev/block/mmcblk0p2 33 192864 6170624 83 Linux
[email protected]:/# busybox df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 464.7M 76.0K 464.6M 0% /dev
tmpfs 464.7M 0 464.7M 0% /mnt/asec
tmpfs 464.7M 0 464.7M 0% /mnt/obb
/dev/block/system 477.5M 329.2M 148.3M 69% /system
/dev/block/userdata 4.5G 457.2M 4.1G 10% /data
/dev/block/cache 688.6M 16.7M 671.9M 2% /cache
/dev/block/pds 3.9M 1.1M 2.8M 28% /pds
/dev/block/preinstall
274.7M 23.5M 251.3M 9% /preinstall
/dev/block/vold/179:1
23.8G 4.0G 19.8G 17% /mnt/sdcard
/dev/block/vold/179:1
23.8G 4.0G 19.8G 17% /mnt/secure/asec
df: /mnt/sdcard/.android_secure: Invalid cross-device link
/mnt/sdcard 23.8G 4.0G 19.8G 17% /mnt/sdcard
/dev/block/dm-0 3.0M 1.8M 1.2M 60% /mnt/asec/com.ea.worms_na-1
[email protected]:/# ls -l /system/mountosh
/system/mountosh: No such file or directory
[email protected]:/# ls -l /system/mountosh.orig
/system/mountosh.orig: No such file or directory
[email protected]:/# cd /osh
[email protected]:/osh# cd /osh/etc
cd: can't cd to /osh/etc
[email protected]:/osh# ls -l
[email protected]:/osh# ls
[email protected]:/osh#
voodoomurphy said:
files did copy, but then it all errored out. BTW I went back in and followed your instructions for the partitioning.
here's what I have from the code you asked for:
Chris-Murphys-MacBook-Pro:~ chrismurphy$ adb shell
[email protected]:/$ su
[email protected]:/# /system/bin/fdisk -l /dev/block/mmcblk0 | grep -i linux
/dev/block/mmcblk0p2 33 192864 6170624 83 Linux
[email protected]son:/# busybox df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 464.7M 76.0K 464.6M 0% /dev
tmpfs 464.7M 0 464.7M 0% /mnt/asec
tmpfs 464.7M 0 464.7M 0% /mnt/obb
/dev/block/system 477.5M 329.2M 148.3M 69% /system
/dev/block/userdata 4.5G 457.2M 4.1G 10% /data
/dev/block/cache 688.6M 16.7M 671.9M 2% /cache
/dev/block/pds 3.9M 1.1M 2.8M 28% /pds
/dev/block/preinstall
274.7M 23.5M 251.3M 9% /preinstall
/dev/block/vold/179:1
23.8G 4.0G 19.8G 17% /mnt/sdcard
/dev/block/vold/179:1
23.8G 4.0G 19.8G 17% /mnt/secure/asec
df: /mnt/sdcard/.android_secure: Invalid cross-device link
/mnt/sdcard 23.8G 4.0G 19.8G 17% /mnt/sdcard
/dev/block/dm-0 3.0M 1.8M 1.2M 60% /mnt/asec/com.ea.worms_na-1
[email protected]:/# ls -l /system/mountosh
/system/mountosh: No such file or directory
[email protected]:/# ls -l /system/mountosh.orig
/system/mountosh.orig: No such file or directory
[email protected]:/# cd /osh
[email protected]:/osh# cd /osh/etc
cd: can't cd to /osh/etc
[email protected]:/osh# ls -l
[email protected]:/osh# ls
[email protected]:/osh#
Click to expand...
Click to collapse
Ok, I see one issue, I think I miss-typed on location in those commands...
Run this for me.
Code:
adb shell
su
ls -l /system/bin/mountosh
ls -l /system/bin/mountosh.orig
End Code
show that to me...
It looks like /osh just is not mounted or the mountosh script is missing... That is easy to fix, at worst case if it is not there, that I can get for you when I get my replacement today or tomorrow.
jimbridgman said:
You are missing the script to mount the /osh parition completely that is why everything is not working. That means that right now, Android can't see anything on that partition, either the one you created or the one that ships with the phone.
About the best thing I can do right now is to have you hang tight until I have my replacement in hand and I can get a copy of the original mountosh file for you, so that the /osh parition will mount up again, that is a very easy fix for all this. Once I have that for you I will give you instructions on what to do to get you back up and running.
I was hoping that is all it was.
It looks like when you were cleaning up after one of the script runs you removed the mountosh.orig instead of moving it back to mountosh.
Click to expand...
Click to collapse
crap. User error strikes again. No Worries Jim, I will wait patiently. I wish there was a way to restore the whole phone to stock including the OSH info. Resetting up my phone prefs is damned easy. lol
voodoomurphy said:
crap. User error strikes again. No Worries Jim, I will wait patiently. I wish there was a way to restore the whole phone to stock including the OSH info. Resetting up my phone prefs is damned easy. lol
Click to expand...
Click to collapse
Wait I edited my post after you read it... I misread, re read.... oh well, here, twas my issue..
Ok, I see one issue, I think I miss-typed on location in those commands...
Run this for me.
Code:
adb shell
su
ls -l /system/bin/mountosh
ls -l /system/bin/mountosh.orig
End Code
show that to me...
It looks like /osh just is not mounted or the mountosh script is missing... That is easy to fix, at worst case if it is not there, that I can get for you when I get my replacement today or tomorrow.
jimbridgman said:
Wait I edited my post after you read it... I misread, re read.... oh well, here, twas my issue..
Ok, I see one issue, I think I miss-typed on location in those commands...
Run this for me.
Code:
adb shell
su
ls -l /system/bin/mountosh
ls -l /system/bin/mountosh.orig
End Code
show that to me...
It looks like /osh just is not mounted or the mountosh script is missing... That is easy to fix, at worst case if it is not there, that I can get for you when I get my replacement today or tomorrow.
Click to expand...
Click to collapse
[email protected]:/# ls -l /system/mountosh
/system/mountosh: No such file or directory
[email protected]:/# ls -l /system/mountosh.orig
/system/mountosh.orig: No such file or directory
[email protected]:/#
here's an LS of the directory:
[email protected]:/# ls
cdrom
misc
pds
config
cache
sdcard-ext
sdcard
acct
tmp
preinstall
osh
mnt
vendor
d
etc
ueventd.rc
ueventd.mapphone_umts.rc
ueventd.mapphone_cdma.rc
ueventd.goldfish.rc
system
sys
sbin
proc
init_prep_keypad.sh
init.rc
init.mapphone_umts.rc
init.mapphone_cdma.rc
init.goldfish.rc
init
default.prop
data
bin
root
dev
[email protected]:/#
voodoomurphy said:
[email protected]:/# ls -l /system/mountosh
/system/mountosh: No such file or directory
[email protected]:/# ls -l /system/mountosh.orig
/system/mountosh.orig: No such file or directory
[email protected]:/#
here's an LS of the directory:
[email protected]:/# ls
cdrom
misc
pds
config
cache
sdcard-ext
sdcard
acct
tmp
preinstall
osh
mnt
vendor
d
etc
ueventd.rc
ueventd.mapphone_umts.rc
ueventd.mapphone_cdma.rc
ueventd.goldfish.rc
system
sys
sbin
proc
init_prep_keypad.sh
init.rc
init.mapphone_umts.rc
init.mapphone_cdma.rc
init.goldfish.rc
init
default.prop
data
bin
root
dev
[email protected]:/#
Click to expand...
Click to collapse
I did the same thing.... take a look again.
it is....
Code:
adb shell
su
ls -l /system/bin/mountosh
ls -l /system/bin/mountosh.orig
End Code
I typed it wrong the first time....
jimbridgman said:
I did the same thing.... take a look again.
it is....
Code:
adb shell
su
ls -l /system/bin/mountosh
ls -l /system/bin/mountosh.orig
End Code
I typed it wrong the first time....
Click to expand...
Click to collapse
[email protected]:/# ls -l /system/bin/mountosh
/system/bin/mountosh: No such file or directory
[email protected]:/# ls -l /system/bin/mountosh.orig
/system/bin/mountosh.orig: No such file or directory
[email protected]:/#
voodoomurphy said:
[email protected]:/# ls -l /system/bin/mountosh
/system/bin/mountosh: No such file or directory
[email protected]:/# ls -l /system/bin/mountosh.orig
/system/bin/mountosh.orig: No such file or directory
[email protected]:/#
Click to expand...
Click to collapse
Ok, so then they really are not there... So, Sit tight I will get the original mountosh that they ship on my replacement, and get it uploaded for you, then you can run the script again... that is why all the errors happened, since /osh was not mounted, from the original ( do alot of tests for it to be there in my script), and it could not mount since the script that does this was not there, nor the one I hacked to mount our partition over the default one.

[Q] How to mount with bind/rbind under ICS

I want to make a script which will allow me to mount (mount bind) one folder to another folder.
I need this way to work with my navigation and to switch maps folder.
When I try with adb shell this commands - everything is fine:
Code:
mount -o rbind /mnt/sdcard/Sygic/Maps.NT /mnt/sdcard/Sygic/Maps
Next I made a script:
Code:
#!/system/bin/sh
#umount -l /sdcard/Sygic/Maps
mount -rw -o rbind /mnt/sdcard/Sygic/Maps.NT /mnt/sdcard/Sygic/Maps
am start -a com.sygic.aura -n com.sygic.aura/com.sygic.aura.SygicNaviActivity
exit 0
That point forward started problems - can't start this script, never mind if it's on SDCard or /system/app or where else (perm. rw-r-r-)
After that tried SManger - won't work neither like executable as root or script as root
Last try was to make brand new script within SManger, made it simplest like only one row:
Code:
mount -o rbind /mnt/sdcard/Sygic/Maps.NT /mnt/sdcard/Sygic/Maps
or
Code:
/sbin/mount -o rbind /sdcard/Sygic/Maps.NT /sdcard/Sygic/Maps
but w/o success
I need help, how to make this mount within script, will prefer SM Widget to start one or another mount.
Need advice, thanks to anyone !

Categories

Resources