Related
I've developed a kernel and base linux system suitable for installation on the HTC Herald / T-Mobile Wing series of phones. This image is for installation of a root filesystem directly to an SD storage card (no need for a root FS image). Several things don't work so far -- this is early development. But it's enough to play with. My hope is that we can use development on this as a jumping point for getting Google Android to run on the wing.
UPDATE (2/10/09):
I've added a Resources section to collect the useful information and links that have been posted here and in the other thread. I've also updated the known issues section for Android to reflect what I've discovered so far.
UPDATE (2/9/09):
I've got an updated kernel config and images for starting Android now! Android will now pull up the boot animation and begin startup. It still does not complete startup, but at least we know we've got the right stuff in the kernel now!
I've added instructions at the bottom for installing these and using them with an already set up linux system (per the first set of instructions).
UPDATE (2/7/09):
Here's some extra files you can grab if you're interested in development: (The patches don't apply cleanly yet against the linwizard kernel)
Kernel .config file I've used (against the linwizard 2.6.25 kernel): http://dl.getdropbox.com/u/198699/linux_wing/wing_config
Android diffs (between SDK android kernel and kernel.org 2.6.27 kernel): http://dl.getdropbox.com/u/198699/linux_wing/android-2.6.27.patch
Contents
Part 1: Linux Base System Installation Instructions
Part 2: Android Installation Instructions
Resources
Part 1: Linux Base System Installation Instructions:
The below instructions assume you have access to Linux and can read/write to your SD storage card.
To start out with, here's what you'll need:
Haret + default.txt + kernel (.zip, 1.4mb)
Root filesystem contents (.tar.gz, 13.1mb)
1. Repartition your SD card.
For this, you'll need to use something like Partition Magic or some other suitable partitioner (in Linux, you can use gparted to resize your Windows partition.) I recommend the following layout:
Partition 1: Primary, FAT16 or FAT32 containing your original Windows files (any size of your choosing)
Partition 2: Primary, Linux Swap, 128mb
Partition 3: Primary, EXT3, >=64mbMy linux partition is 650mb with a 1.2gb Windows partition and 128mb swap -- adjust to preference.2. Format the swap and linux partitions.
In linux, run the following: (I assume your SD card is /dev/sdb -- adjust if different)
Code:
# sudo mkswap /dev/sdb2
# sudo mkfs.ext3 /dev/sdb3
I'm assuming the layout in step 1 as well.
3. Mount the new Linux partition.
Run the following:
Code:
# sudo mount /dev/sdb3 /mnt
4. Copy the base linux system into the new Linux partition.
Save the root filesystem .tar.gz file from above to somewhere (I'll assume $HOME). Then run:
Code:
# cd /mnt
# sudo tar -xzvf $HOME/rootfs.tar.gz
# cd ..
5. Unmount the linux partition.
Run the following command:
Code:
# sudo umount /mnt
6. Mount the windows partition and copy the Haret executable + kernel.
I'll again assume you saved the "haret+kernel.zip" file to $HOME. Run the following:
Code:
# sudo mount /dev/sdb1 /mnt
# cd /mnt
# mkdir linux
# cd linux
# sudo unzip $HOME/haret+kernel.zip
# cd /
# sudo umount /mnt
At this stage, your Linux base system and kernel should be installed. All that's left is to remove your SD card and re-insert it into your phone, start up HaRET and enjoy.
7. Log in
Once you're booted into Linux, you can log in with:
Username: root
Password: wing
Plug in a USB cord to log in on your laptop. If your laptop runs linux, you'll need to make sure that the usb0 network interface has the right address:
Code:
# sudo ifconfig usb0 10.100.0.2 up
The phone's address will be 10.100.0.1. You should be able to SSH or telnet in to the phone and mess around. Run "startx" to bring up X and such.
What's Working
Minimal X server capable of landscape and portrait video modes (KDrive, using the framebuffer (omapfb))
Touch screen support + calibration software (TSC2046 driver + tslib)
Console keyboard (some characters are difficult / impossible to type due to the limited key layout and driver)
USB gadget support for connecting with my laptop (I can SSH / telnet into the phone, or ssh/telnet from the phone into my laptop)
Full access to the SD card (even the Windows FAT side -- mmci-omap driver)
Known Issues
Bluetooth -- haven't been able to get a working driver, or anything to even recognize that it exists
WLAN -- same as bluetooth
GPRS / Phone -- same. There appears to be a GSM device, but I haven't been able to do anything with it.
Most of the extra buttons don't fire any events
LEDs for the most part don't work
Battery and power stats aren't available, as well as power management
No control of the backlight or display power
Sound not functional -- don't have any drivers / software compiled for sound, so I don't know if this would work or not
No real time clock (RTC) functionality
Part 2: Android Installation Instructions:
For these instructions, the recommended procedure is to copy the files you'll need to the Windows side of your SD card and install using the Linux boot system. Make sure you follow the instructions for getting a Linxu base system installed first before following this.
First off, grab the following files (Required)
Android patched kernel for the wing (same as the below kernel, but with android patches): http://dl.getdropbox.com/u/198699/android/zImage2
Android root filesystem, compiled for the wing: http://dl.getdropbox.com/u/198699/android/root.tar.gz
Android /system partition, compiled for the wing: http://dl.getdropbox.com/u/198699/android/system.tar.gz
Script for starting Android: http://dl.getdropbox.com/u/198699/android/start_android
You can also grab the kernel config file if you're interested in building the kernel (I'll have the android patch set available soon) (Optional):
Kernel .config file for the modified kernel: http://dl.getdropbox.com/u/198699/android/kernel_config
1. Copy all files to your wing
From Windows Mobile, download the 4 required files above and place them on your storage card:
root.tar.gz -- Place in /Storage Card/
system.tar.gz -- Place in /Storage Card/
zImage2 -- Place in /Storage Card/linux (overwrite the file that's already there, or re-name the original first)
start_android -- Place in /Storage Card/
2. Install Android
Run HaRET.exe to start Linux. It should boot the new kernel (you most likely won't notice a difference). Once in Linux, run the following commands (you can do it directly with the wing keyboard, or you may elect to use SSH (see instructions above) -- SSH is easer in my opinion):
Code:
# cd ../..
# mkdir android
# cd android
# tar -xzf ../mnt/windows/root.tar.gz
# tar -xzf ../mnt/windows/system.tar.gz
# cp ../mnt/windows/start_android ../bin
# chmod 775 ../bin/start_android
If using the Wing's keyboard, you'll need to use the following key mapping:
'/' --> 'Tab'
'-' --> 'Alt + x'
'_' --> 'Alt + c' (I think -- it's Alt + one of the letter keys)
Numbers -> 'Alt + <top row>'
3. Start Android
At this point, android is now installed and ready to run. Simply execute the following command to start Android:
Code:
# start_android
After a few seconds, you should see the Android startup animation appear.Known Issues
The omapfb driver currently in use does not support page flipping, preventing the Android GUI from being displayed
Resources
WMStorage -- turn your wing into a USB SD card reader (Kudos to Kuff!): http://forum.xda-developers.com/showpost.php?p=3263023&postcount=5
Wing Service Manual (kudos to drmidnight!): http://forum.xda-developers.com/showpost.php?p=3291171&postcount=132
Google Andriod for Herald and Tmobile Wing -- the thread that started it all: http://forum.xda-developers.com/showthread.php?t=398830
Enjoy
If this is based on the linwizard kernel, have you seen the Android kernel that the linwizard crew ported over to the Wizard? It's incomplete, but it might be a good starting point for a an Android Port. When I have time tomorrow, I might try installing this.
Hmm, I actually haven't tried that. My image is based on the Polaris development tree, using htcwizard_defconfig. I added some extra drivers, like the touchscreen and SD drivers from there.
Looks like their download of the android kernel is down, unfortunately.
Hey guy, I can and will help you!
A winrar is you!
I don't know how to work with GSM module, but sound drivers should compile OK
Can't find your SD-card in the partitioning program?
As mostly your sd-card is not seen as a "drive" in Windows and in Linux, you can use the "WM5Storage"-tool to do so.
The .cab is attached. Just install it on you device, reboot and start the program without the device being attached to you computer.
Uncheck "Read-Only" and "Removable Class" en tap "Active".
Now you can connect your device (with the sd-card in it) and go on partitioning.
Hi Guys!
I'm surprised. This is the first image and way thats works on my german herald.
My linux experience is very limited. But i want help to let run Android on herald.
What are the next steps?
Morning, I will try to set up android filesystem.
Thank's a lot,
expone
Glad to hear it works for you!
I've managed to get an earlier version of Android to at least begin to start (I get the red-eye moving back and forth), but nothing happens after that.
My guess is that the video is working based on the ability to get the red-eye, but that either some other driver isn't working, or there's not enough free memory.
The image I used was a modified linwizard kernel (not the one I have here), plus a root filesystem that contained Android as an ext2 fs. I never tried with a swap partition enabled.
If we can get our hands on a copy of the android root filesystem in a form that we can mount with this image, perhaps there's a chance of running it. I saw a link somewhere about someone getting this method to work on a different phone (they copied an android root filesystem image to SD card and mounted it from linux, then started android). I'll have to dig around a bit to find it again. Expone, good luck!
Another thing is that we need lots of drivers. If we can get our hands on a spec sheet of the herald listing all the chipsets used, that might give us what we need to start getting this to work. More than likely we'll need to port (or even write) some drivers from different platforms though, as none of the drivers I compiled into this kernel seem to work for things like bluetooth and wifi. Those are probably secondary to getting android to run though -- more for getting it useful.
Just my thoughts.
darkstar62 said:
Glad to hear it works for you!
I've managed to get an earlier version of Android to at least begin to start (I get the red-eye moving back and forth), but nothing happens after that.
My guess is that the video is working based on the ability to get the red-eye, but that either some other driver isn't working, or there's not enough free memory.
The image I used was a modified linwizard kernel (not the one I have here), plus a root filesystem that contained Android as an ext2 fs. I never tried with a swap partition enabled.
If we can get our hands on a copy of the android root filesystem in a form that we can mount with this image, perhaps there's a chance of running it. I saw a link somewhere about someone getting this method to work on a different phone (they copied an android root filesystem image to SD card and mounted it from linux, then started android). I'll have to dig around a bit to find it again. Expone, good luck!
Another thing is that we need lots of drivers. If we can get our hands on a spec sheet of the herald listing all the chipsets used, that might give us what we need to start getting this to work. More than likely we'll need to port (or even write) some drivers from different platforms though, as none of the drivers I compiled into this kernel seem to work for things like bluetooth and wifi. Those are probably secondary to getting android to run though -- more for getting it useful.
Just my thoughts.
Click to expand...
Click to collapse
I saw someone with an Elfin who had a similar issue but it turns out that it just took 20 minutes for android to boot.
The full source code of Android is available online.
You're right about the drivers, though. We'll probably have to write some of our own.
Can you provide your android images?
One Idea:
Is it possible to merge this two file systems of android and this Linux File system? We get the working driver from this system and get software of android system.
What problems might occur?
@darkstar62:
Can you get me some tips where I can find the image?
You can find the android source code here:
http://source.android.com/
If you have a cross-compiling toolchain, you can build it up. As far as binary images go, I don't have one yet for the wing that works -- I'll be working over the next few days or so to get one compiled for the arch and installed.
I found instructions here for getting an earlier version of Android to run off SD card:
http://wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget
All the porting sites I've found talk about pulling the Android /system and /data partitions from the emulator. I don't think that's necessary though (especially with the Android source code out now). Browsing around, I think I may need a different toolchain compiler -- not sure mine supports EABI (see here: http://elinux.org/Android_on_OMAP#Compiler)
Hopefully tonight or tomorrow I'll be able to get my toolchain working and build a kernel. I'm going to attempt to compile Android's kernel source with their patches using bits and pieces from my kernel configuration (the one for the kernel in the howto). With any luck all will be well. Then the real fun in building Android begins.
Also, to whet your appetite, someone managed to get Android running on a phone not too dissimilar from the wing -- OMAP730 processor @ 200mHz, 64mb of RAM, SD card:
http://ohawatch.blogspot.com/2008/02/android-running-on-omap-730-200mhz.html
Also, TI showed android on our processor, the OMAP850 200mHz CPU:
http://forum.xda-developers.com/showthread.php?t=400905
So with a bit of luck I think we'll have a rather nice Android platform on our phones.
I was together with a colleague ever compiled a kernel. We had the ARM GNU / Linux compiler used.
Myself, I need more time to get more information about this topic.
Where will we discuss in the future? In this topic or in the other?
I would say, since this thread is really meant for using an installable Linux image that we keep Android-related discussion on the other thread (since that's what its topic is).
On the other hand, having all the images in one place at the front of this forum with installation instructions makes it very accessible. Perhaps we should rename this thread to something like:
"HOWTO: Multi-Boot Linux, Android and WM6 on T-Mobile Wing / HTC Herald (in work)"
I hate to turn this thread into a spin-off from the other one though...
Anyone have any thoughts?
darkstar62 said:
I would say, since this thread is really meant for using an installable Linux image that we keep Android-related discussion on the other thread (since that's what its topic is).
On the other hand, having all the images in one place at the front of this forum with installation instructions makes it very accessible. Perhaps we should rename this thread to something like:
"HOWTO: Multi-Boot Linux, Android and WM6 on T-Mobile Wing / HTC Herald (in work)"
I hate to turn this thread into a spin-off from the other one though...
Anyone have any thoughts?
Click to expand...
Click to collapse
I believe this a real good since i have little to no time to work on it.
All because of school. UGH!
I'm just glad I inspired you guys in making this happen.
So I will indeed keep the other thread open cause i would have time working on porting android to the wing in a month.
@darkstar62:
Is it possible that you provide me your kernel sources and make-project-file?
So I could even work...
The sources I've been working from come from the linwizard project:
http://linwizard.sourceforge.net
I used a git clone from their instructions using the polaris branch. It's a 2.6.25 kernel (the latest Android is based on 2.6.27...) so we'll have to either port the Android patches from 27 to 25 or port all the linwizard drivers to the android 27 kernel.
I'll post the .config file I'm using when I get home (it's on my desktop there).
A cursory look seems to indicate that it'll be easier to port the android patches to the linwizard kernel, since there's a lot less code involed (and most of the patches apply cleanly against it -- some conflicts need to be resolved though).
I got the patches by git cloning the android source code and diffing their kernel source against the kernel.org kernel of the same version. I'll post that diff when I get home too.
I've got an Android filesystem image compiled for the phone, and it seems to work (I can run the binaries from it using our working kernel -- just can't boot without the patches). So, assuming we get a working kernel, running Android should be a slam-dunk.
More to follow. If things start getting more involved, I'll probably start a sourceforge project for all this so we have some place to put all this information.
As promised, here's the .config and android patches:
Config: (rename to .config): http://dl.getdropbox.com/u/198699/linux_wing/wing_config
Android patches (against kernel.org 2.6.27): http://dl.getdropbox.com/u/198699/linux_wing/android-2.6.27.patch
I've updated the top post as well. The patches don't cleanly apply against the 2.6.25 kernel yet. Hopefully I'll be able to get that working soon.
Good luck.
Unfortunately, I don't have time, nor the crazy Linux experience to be of any help...
But I am way excited and can't wait to see what you can pull off...
Another step in the right direction -- The modified Android kernel boots, and Android will now try and start.
For some reason or another it won't complete starting -- I'm going to install some debugging tools later to try and figure out what else we need (if we're missing something). I've also noticed that Android isn't taking advantage of the swap space we have, so there may be an Android mod needed to allow that -- not sure how much it will help at this point though.
I've updated the top post with instructions on how to install the new kernel and android images to play with on your phone.
Enjoy!
I have a rooted G1. I didnt see a swap partition when I run the mount command. Let me know if you need anythhing else. I'll do my best to help out.
Yeah, not surprised. The G1 has a lot more memory than the Wing (128mb vs. 64mb if I'm not mistaken) so I doubt there'd be a need for one.
My hope was that if memory was tight for running on Android, adding a swap partition would give it some more breathing room. I guess Android wasn't designed that way though.
I am trying to work with haykuro to get apps on sd for his cupcake roms, but I ran into a problem. They replaced mountd with vold, and there is no known documentation on how to format the config file. This does not seem to be the same vold that is used on SUN or other unix operating systems. If anyone has any useful info, please share it with me so I can look into this further.
Maybe this will get you started...
*EDIT* didnt read your post correctly... Didnt see that it was not related to the Sun version.
Darkrift,
Maybe the vold.conf in the android system is similar to the vold.conf in my Solaris 10 Sparc Server.....
Code:
> > For Solaris 8, you have to fake a change on the vold.conf
> > configuration file, otherwise the HUP signal is ignored:
> >
> > touch /etc/vold.conf
> > + pkill −HUP vold
>
> I stopped vold & commented out the one /etc/vold.conf line:
> # use rmdisk drive /dev/rdsk/c*s2 dev_rmdisk.so rmdisk%d
If you want vold to automatically mount an usb mass
storage device on a reboot (or a re−start of vold, or the above
mentioned touch / SIGHUP sequence), you have to make sure to remove
the comment character from the "use rmdisk" line in /etc/vold.conf.
Study some of the Sun Solaris docs I have listed below and maybe you will find the right recipe you are looking for...
Sun Solaris USB Flash Drive Mount Command
Solaris 10 - System Administration Guide - Devices and File Systems
Hope this helps...
I'm on Gtalk as AndroidSamurai if you have any questions.
While I'm at it, this is the command to mount a floppy in Solaris...
Code:
mount -f pcfs /dev/diskette /mnt
/mnt is the mount point
Here is what is currently in the file:
Code:
## vold configuration file for Sapphire
volume_sdcard {
## This is the direct uevent device path to the SD slot on the device
media_path /devices/platform/msm_sdcc.2/mmc_host/mmc1
emu_media_path /devices/platform/goldfish_mmc.0/mmc_host/mmc0
media_type mmc
mount_point /sdcard
ums_path /devices/platform/usb_mass_storage/lun0
}
I tried adding:
Code:
volume_apps {
## This is the direct uevent device path to the SD slot on the device
media_path /dev/block/mmcblk0p2
media_type mmc
mount_point /system/sd
}
with no luck. And yes, I tried doing the media_path in the same format as the first one, which also did nothing.
Would the "mount_point" not be "/sdcard"?
I cannot work the terminal on my G1 bc of the keymapping error preventing me from using "/"...
Would it not be:
Code:
media_path /dev/block/mmcblk0p1
seeing that a fat partition(vfat) would be "p0" ?
Have you tried looking at "vold/mmc.c and vold/mmc.h" ?
Also try looking at the following:
Code:
vold/volmgr_ext3.c
vold/volmgr_ext3.h
vold/volmgr_vfat.c
vold/volmgr_vfat.h
If you would please e-mail me the vold.conf in a zip archive so I can play around with it a little...
Sorry, my resources are a little bare at the current time due to a surge knocking out all my equipment.
Email Me
or find me on GTalk under androidsamurai.....
No, i am trying to add apps to sd, which go in /system/sd/app. this would mount my second partition (ext2) /system/sd
Let me also state that the top part is working. that is what loads the sdcard to /sdcard. what I am trying to do is load the second partition to /system/sd by adding a *second* block to the file, which is not working.
Hi Darkrift,
I don't have a second partition on my sd card nor have I installed any of the cupcake builds so I can't test my thoughts myself but thought I'd share them with you...
Have you tried browsing to the directory referenced by the original vold.conf? I was just wondering how this structure compares to a device using a partitioned sd card? Maybe a comparison would give us some clues as to how the new volume manager works.
Mine looks like this:
sys/devices/platform/msm_sdcc.2/mmc_host:mmc1/mmc1:d516
With no other similarly name directories below the msm_sdcc.2 level.
Why don't we use Fat32 partition as extra memory? why can't we run application from a Fat32 partition?
#1 FAT32 doesn't support case-sensitivity, and that is enabled on the internal FS's
#2 extfs is way better than FAT
#2 FAT sucks
@wellsie: I think the problem is the name I am giving it "volume_apps {
" but if i change it to volume_sdcard { like the first one, it adds those config options to teh top block. Also I have tried adding all different versions of the media path (in /dev, in /system/devices and more) with no luck.
@funbacon: Joushou's ideas make sense, but neither of those are the reason. Each application installed on the G1 has an owner, group and set permissions. That is part of the "sandbox" that keeps apps from accessing each others files. Fat has no permissions, so an app on fat would not be able to have the needed permissions to be used.
Oh yeah, permissions aswell
I have been too long in unix, so i just expect that to be there
But i believe that fits under the "FAT sucks" category
I agree with that one
C'mon. I know someone has gotta have some ideas or maybe know how to browse the source and figure stuff out more than I could. I tried checking out the source but its fairly foreign to me. I know a little scripting, but not much as far as coding goes. I really would like to help get apps-to-sd working in cupcake but this is a major stumbling block for that.
I just want to say that even i am not proficient on this type of stuff i voluntere to test whatever setup you come up with.
I really apreciate your work on this as this is the only reason I have not moved to haykuros or anybodys cupcake build.
So thanks tanks to every body for pitching in.
oh by the way, If you set it up i will donate to the cause!!!!!
I'll try and look at the code over the weekend...family time comes first though so it may have to wait until next week when I'm at work ;-)
I think the main problem is the naming convention for a new "block". sdcard is already in use, and adding a second one just adds to the first one. I think there might be "sdcard2" or something else that it is expecting. I tried just naming it whatever I wanted hoping that would work but it didnt seem to.
im with carlos im not a good with all that code stuff, but im down to test whatever u come out with,
also for i heard haykuyo is coming out with a fix for the physical keyboard soon
If you are speaking about "Keyboard Fix" in the terms of the Keyboard Mapping being messed up, then chack out the first post of the Sapphire/Magic G1 Port thread... Keyboard mapping has been fixed.
I honestly cannot believe that Google hasn't had any hits on the android site about this problem yet...
Instead of partitioning, maybe we can try this other method for apps to sdcard.
http://forum.xda-developers.com/showpost.php?p=3402719&postcount=683
http://forum.xda-developers.com/showpost.php?p=3402947&postcount=687
This method creates an ext2 filesystem object as a file under the fat32 filesystem so there would be no need to partition.
I'm doing my taxes today, but if I get a chance to play around with it, I'll try to implement this tomorrow. Looks pretty straightforward.
well, nobody would know about this problem unless they are breaking the rules. A, having a rom which we should not have, and B, making changes to the OS and "hacking" it to read apps somewhere its not supposed to. Android should not have 2 partitions, so this is not something they would even answer.
Hello all-
I have a dual booting pocket-size (well, largish pocket- about the size of a 2.5" portable drive) media player called the HDX Bone.
Here's a link a to a place where I've begun to collect info on the device:
NOTE: I am adding spaces to the links below because I am too new to add live links to a post.
h t t p : / / minimodding.c o m/tiki-index.php?page=HDX%20Bone
(info here is one firmware release out of date- android 2.1 is now out for it)
&
Here's a link to the forum where I have mostly been figuring out how the bone works:
h t t p : / / minimodding.c o m/tiki-view_forum.php?forumId=44
(oh and for completeness here's hdx's own forum:
h t t p : / / w w w.hdx1080.c o m/forum/viewforum.php?f=36&sid=f3c932441675e25a26e25c14db6fe431 )
But here's the pertinent details:
It uses a Telechips Soc TCC8900
It is an arm1176jzf.
It has 128mb ddr2 ram x 2 (256mb total)
It has 256mb nand flash.
You can install 2.5" harddrive- and must have an internal harddrive if you want to boot android.
It has an ethernet port, a usb out port, hdmi, & composite.
It dual boots.
The default bootup "voir/v012" is a linux bootup with a media-playing gui overlay:
uname -a
Linux (none) 2.6.28 #827 Wed May 26 16:14:12 CST 2010 armv6l GNU/Linux
The android bootup was 1.6- but last week they released 2.1 for it.
uname -a
Linux localhost 2.6.29 #169 Fri Jul 16 20:36:50 CST 2010 armv6l GNU/Linux
Here's the latest 2.1 firmware install files, archived:
h t t p : / / w w w .hdx1080.c o m/bone/firmware/HDXV012_android_20100719-102014.rar
When you chose to install android 2.1, it:
activates the initial boot process to ask you if you'd like to boot into android
repartitions your internal harddrive:
/dev/sda2 281.0M 90.5M 176.1M 34% /media/sda2
/dev/sda3 265.8M 40.5M 211.6M 16% /media/sda3
dev/sda2 is the core android system.
dev/sda3 is the data partition for android 2.1. it gets mounted on /data.
the sdcard is just an unwritable directory by default.
The boot process, as near as I can fathom it, works like this:
tccboot.rom (telechips bootloader) loads-
if you do nothing, linux.rom is loaded and the voir/v012 is selected.
OR you can use the remote control to select android.
If so, linux_hdx_android.rom loads and eventually hands off to the install on the harddrive.
ANYWAY, I am starting this thread for one reason right now: the device won't let me install certain applications. And other applications it installs, but they won't open/forceclose.
I think this is tied to:
the system is mounted as read-only to begin with.
and the sdcard is not a writable partition.
I have tried:
making the system rw at start through the init.rc
mounting an extra ext3 harddrive partition in the /sdcard through the init.rc
(hasn't helped)
All the applications that fail/forceclose mention on screen when opened:
android.process.media
Apps that fail this way include:
Facebook
Music
Meridian Media Player
Two other applications open, but won't work:
streamfurious- initiates process to stream, but then quits.
slacker radio - login fails, though credentials supplied are correct.
The application installation procedure is to put apk's in /data/app- then at bootup, it adds those applications to the system.
I have also telnetted in, remounted the system as read-write and copied apk files to the /system/app/
Some applications appear right away in the application drawer this way- others do not. I don't know why this is.
Apps that won't show up include:
Superuser
Better Terminal Emulator
(BTW, UniversalAndroot does show up and shows the device to be "rooted")
Anyway, I have telnet access. Busybox is installed.
Help/insight/advice?
How applications get installed- and how they get rejected- is a mystery to me.
Why I am getting these media playback related failures is also troubling.
And if this is a really bad place to ask these questions, because this device is not a phone, or because this has already been answered 1000 million times, or whatever, please let me know.
Thanks in advance for your help.
-wigout
O lord,
mods on high, please move my thread to:
Android Software and Hacking General
sorry.
-wigout
logcat shows:
Caused by: java.lang.IllegalArgumentException: There is no external volume Id : -1
for all the failed programs....
Now if I only knew how one might fix such a thing...
-wigout
So when I unmount the sdcard (my ext3 partition), I get some functionality back.
I can open the Music program, though it won't play anything because it can't find anything.
I can open the Meridian Media Player and browse to the extra partition mounted elsewhere (I am fine with that as a solution, though it doesn't fit in with the purpose of the sdcard in the Android OS). I successfully played a movie back this way.
So, is the lack of a:
/data/data/com.android.providers.media/databases/external-####.db
that was causing the sdcard/partition media related errors?
How can I properly implement an after the fact sdcard? It seems at minimum I need a volume id number like a proper sdcard would have.... though how do I garner one from a partition?
Anyway, thanks for listening.
-wigout
So....
Can you generate an external-####-sd.db after boot up? on the commandline?
Or am I on the wrong track here?
Busybox and DNS
Hey wigout,
I'm interested in getting the sdcard mount writable too in android 2.1 on the hdx bone. I followed your instructions for telnet and latest busybox, but would like to get busybox's wget working so I can dl directly to the hdx. Busybox's ping/telnet/wget/you name it all complain of a bad address, while the native ping resolves domain names into ip addresses just fine (of course so does the browser in android...)
Any luck getting busybox to look up a dns server?
HEN
sdcard problems
I worked around my dns issue but not in an elegant way. Next step was the /sdcard dir... symlinked it to /data/sdcard (file flags writeable) but no luck. Google specs say that the directory can be a symlink to writeable storage, but:
"Device implementations MUST enforce as documented the android.permission.WRITE_EXTERNAL_STORAGE permission on this shared storage. Shared storage MUST otherwise be writable by any application that obtains that permission. "
Somewhere in android guts this permission needs to bet set. You may have figured that out.
btw got Connectbot working -- it's a great ssh client app.
HEN
vold.conf?
Looking at this now... Perhaps telling it that the sdcard device is a hard drive?
volume_sdcard {
## This is the direct uevent device path to the SD slot on the device
media_path /devices/platform/tcc-mmc0.0/mmc_host/mmc0
media_type mmc
mount_point /sdcard
ums_path /devices/platform/usb_mass_storage/lun0
#for_mtp ums_path /devices/platform/dwc_otg.0/gadget/gadget-lun0
Hello wigout/HEN201,
I just ordered an HDX-Bone and thinking of having my own busybox build + Qt and a mix of QML/OpenGL to redo the movie browsing interface.
Would you be interested in participating ?
latest bone android 101224 support wifi and 3G now!!
Any updates on this?
HELP !
I need "Total Binary" dump of the HDX Bone.
It can be dumped from FWDN V7 utility - menu "Binary" - "Generate Total Binary by Device" - then "Start"
Before this you should install drivers and enter device in recovery mode.
To enter to recovery mode short "JS1" pins on board and connect usb to PC
Hi,
**
Based on the init script explained in this thread, i've developed a application that allows to plug and unplug folders like device disks.
**
*** This application is in BETA stage ***
*** and requires root privileges ***
Many devices have two storage units (internal and external).
Most programs (games, GPS, etc) do not check this and work with internal storage memory.
This is useful for all users, some of whom prefer to store their data in external memory (removable).
In some cases (not all) can be made for a particular application to work on external memory rather than internal, but this is not always possible, especially because the external memory does not support unix soft-links.
To avoid this, I developed an application that can be mapped to internal memory (in fact in any directory on the device) a directory that is in the external memory (or elsewhere), which allows to solve the problem.
With this application you can access from any location to the data are physically located in another directory and query, modify and even delete them.
In addition, the application detects when you connect the terminal to another computer (PC, laptop, etc) and rolls back the operation to avoid problems. When the connection ends, the links are restored automatically.
INSTRUCTIONS
Start the application and allow to get root privileges
Click the menu key and click preferences menuitem to enable/disable mount on boot, then click back to go the main screen
Click the menu key and click Edit menuitem to edit mountpoints
In the edit mountpoints screen click the menu key in order to activate menu, that shows two options: delete all (deletes all added mountpoints) and insert new.
The insert new mountpoint screen allows to create a new mountpoint.
In the edit mountpoints screen, the defined mountpoints have their own contextual menu, that allows to delete, mount and unmount a mountpoint.
In the edit mountpoints screen, each mountpoint is represented by a icon (grayed or yellow) that indicates if the mountpoint is active (yellow) or inactive (grayed).
Also, i shows the source and target folders and a checkbox that indicates if the mountpoint is automounted on boot (if you've enabled in preferences screen).
********** UPDATE ***********
*** SOURCE CODE RELEASED ***
At this moment I have no time to update this app.
I have uploaded to GitHub and published the source code in GPL.
I agre if any people, can solve the app issues.
https://github.com/RYO-Software/Folders-Plug.git
Nice, that's what I'm waiting for.
FoldersPlug 1.0.0-beta1 is attached to first post.
I agree to you very much if you test it and report issues (if any ).
added instructions in first post.
I have two phones, Milestone 2 and SGSII. Today I tested on Milestone first but without success. The phone has 8GB build in Flash and 32GB add on SDCard. I tried to link from 'external' SDHC to the build in 8GB, but it doesn't work. The Phone uses the build in 8GB to store the installed apps, this could be the problem.
I tried some directories for the links, but the mount function fails. After some FC's and dead loops I'm now unable to copy manually files to the internal Storage.
Next tests will be on the SGSII, but I don't expect problems due to the easier environment.
Leni26 said:
I have two phones, Milestone 2 and SGSII. Today I tested on Milestone first but without success. The phone has 8GB build in Flash and 32GB add on SDCard. I tried to link from 'external' SDHC to the build in 8GB, but it doesn't work. The Phone uses the build in 8GB to store the installed apps, this could be the problem.
I tried some directories for the links, but the mount function fails. After some FC's and dead loops I'm now unable to copy manually files to the internal Storage.
Next tests will be on the SGSII, but I don't expect problems due to the easier environment.
Click to expand...
Click to collapse
hi.
if you have time i agree to you if you send to me a logcat
thx
I hope this is what you need ... I am not really familiar with all the development stuff
http://mueli.de/Android/2012-02-21_23-38-59.log
Leni26 said:
I hope this is what you need ... I am not really familiar with all the development stuff
http://mueli.de/Android/2012-02-21_23-38-59.log
Click to expand...
Click to collapse
hi,
first of all: thank's for your time
second: i have located the error
seems to me that your "mount" command don't supports my parameters.
you can exec "mount -h" in a terminal emulator or via adb and tell me the results?
thank's
D/23:37:55.393 FoldersPlug(13141)
SuperuserCommandsExecutor: [unknown option -- -mount: invalid option --]
Click to expand...
Click to collapse
Do I need no more options for the mount command like in Linux with device file and other options?
Leni26 said:
Do I need no more options for the mount command like in Linux with device file and other options?
Click to expand...
Click to collapse
hi,
you need a special modifier in order to mount non block devices.
you have busybox intstalled?
please, exec "mount -h" and send me the result
Newest busybox is installed.
I got an invalid option -h error, logcat needs more time ...
Hi
I can confirm the same output of mount cmd as above on my galaxy p6800.
Is the --bind switch used or how does it work have read the script in the link you reffered to but surely you must have made some changes
/Calle
using p6200 - galaxy tab+
internal storage is known as sdcard and external being name as extStorages
edan1979 said:
using p6200 - galaxy tab+
internal storage is known as sdcard and external being name as extStorages
Click to expand...
Click to collapse
the names are not relevant in the. process
theligu said:
Hi
I can confirm the same output of mount cmd as above on my galaxy p6800.
Is the --bind switch used or how does it work have read the script in the link you reffered to but surely you must have made some changes
/Calle
Click to expand...
Click to collapse
basically --bind with a amount of logic to configure and auto unmount/mount
Leni26 said:
Newest busybox is installed.
I got an invalid option -h error, logcat needs more time ...
Click to expand...
Click to collapse
please let me known if "mount --bind" shows a error.
in fact a error was triggered if you don't add the source and
target folders, but I'm interested on parameters error
This command works for me with the "-o bind", no errors
# mount -o bind /mnt/sdcard/extStorages/SdCard/LINKS/Download /mnt/sdcard/Download
updated apk in op post.
beta2 is working fine even in the emulator
Perfect works like a charm
Sorry for being late, now it's working on the Milestone II. But what I want to do will not work properly. The file system I want to use as storage is used by the system. Even if I change to rw, some of the target folder will be deleted and the files are gone.
There are a lot of different combinations I have to test further more.
Is there any way to include an option to change the file system (which holds the target 'mount point') rw as long as the mount is active?
Leni26 said:
Sorry for being late, now it's working on the Milestone II. But what I want to do will not work properly. The file system I want to use as storage is used by the system. Even if I change to rw, some of the target folder will be deleted and the files are gone.
There are a lot of different combinations I have to test further more.
Is there any way to include an option to change the file system (which holds the target 'mount point') rw as long as the mount is active?
Click to expand...
Click to collapse
hi,
please, print the mountpoint propierties (source and target) in order to clarify.
thx
wow, this is such super useful tool. =)
Hey all, This is my first post on the forum, so I thought I'd make it a guide.
I've run into a few roadblocks with installing some development tools like python and stuff, so I figured I'd try and make a filesystem image to hold all of it, what with Android preventing executables on your SD card from actually executing. You should NOT try and use this for freeing up space by moving apps to it. That just breaks things.
Things to know
A mount point is where you access the contents of a filesystem through.
A filesystem is basically a virtual disk.
I'm not responsible for your phone melting into a pool of acid or anything else you want to blame me for. You executed the commands, not me.
If there's been guides for this already, I didn't find them.
Playing with your system files is dangerous. Be careful
Playing with filesystems is even MORE dangerous. Don't do it unless you know what's going on.
Reversing and then combining two words in a sentence, then calling it a bit more dangerous is incredibly dangerous and can kill you. Don't do it.
As I said earlier: This is not intended to free up internal storage on your phone. It is intended to create extra space to put command-line executables.
This was created for those of us who have older phones that don't have a whole lot of internal storage. (Like the Milestone) This should also work on anything that meets the requirements listed below. I use it on a Motorola Milestone A853 running CyanogenMod 7.2.4f UMTS/SHOLES, and it took some tweaking, but it worked. Commands you put into your shell are marked with `bolded text and surrounded by back-ticks. Leave the back-ticks out. (`)`
Requirements! (obtained using `which <command name>` or a specified command)
Free space on your mSD
losetup (configuring loop devices)
mknod (creating loop devices)
mount (mounting filesystems)
mkdir (making directories)
su (root access)
umount (unmounting)
mke2fs (formatting)
Linux filesystem support (`cat /proc/filesystems | grep ext`)
Here we go!
This assumes you are going to use an ext4-formatted filesystem image mounted on /data/development/, with the image located at /mnt/sdcard/development.img. You WILL need to determine your phone's supported ext<num> filesystems using `cat /proc/filesystems | grep ext`. Choose the highest-numbered one.
Create the mountpoint, the image, and then format the image to ext4.
`mkdir /data/development/``dd if=/dev/zero of=/mnt/sdcard/development.img count=409600 bs=1024``mke2fs -l /mnt/sdcard/development.img -b 1024 -t ext4`
Create the block device, set it to point at the image, then mount it.
`mknod /dev/block/loop250 b 7 250``losetup /dev/block/loop250 /mnt/sdcard/development.img``mount -t ext4 /dev/block/loop250 /data/development`
Test it to see if it works.
`touch /data/development/testfile;ls /data/development/`
Use it.
Unmounting (/!\ For connecting to a computer to avoid corruption /!\)
`umount /mnt/sdcard/development.img``losetup -d /dev/block/loop250`
Well, that's all I've got. Suggestions and corrections, as well as good feedback are appreciated.
Some PAQs (Possibly Asked Questions)
Q: I'm getting some errors. Here they are: pastebin.com/some-errors
A: Great, I'll see what I did wrong, and if it's something on your end, I'll try and help you out.
Q: It dun werk
A: Tell me the errors instead of complaining about them. Just saying that does not help me and wastes my time and bandwidth.
Q: "No space left on device"; "Operation not permitted"; "No such file or directory"
A: SD card full; not root (or SD card is full, or something broke); Mount point doesn't exist or (if 'mount' returns that and the point exists) something not cool happened.
Usage guide on Non-Android devices
Some interesting bits of information for use on computers:
There's probably not an easy way to read/write/mount EXT2 filesystems on a Windows machine, so if you have a solution that's stable, go for it.
Linux computers definitely should support this, and I'm not sure about OSX computers, but in theory would work if you had the right things installed. iPhones ... well I have no idea what you'd do with it there.
Linux:
On the device:
THIS PART IS EXTREMELY IMPORTANT, NOT DOING THIS WILL RESULT IN BROKEN FILESYSTEMS!
`umount /mnt/sdcard/development.img`
`losetup -d /dev/block/loop250`Plug your phone into your computer, making sure that the computer mounts it and reads it as removable media, and that the image is present.
On the computer: (Path of your user folder, and the mount point at which your device's SD is mounted can and very likely will vary from distribution to distribution. Check your paths.)
`mkdir /home/user/android-devtools/`
`mount -o loop /media/user/android-sd/development.img /home/user/android-devtools/`Now, you can change things within the image as you normally would a file or folder. Be warned, sometimes doing this can create conflicts in the file permissions, so running the right commands on the phone to change the permissions as root (use `chmod` for the permissions) can save you boatloads of trouble getting things to work, or editing files.
Mac OSX might or might not be the same, but seeing as I haven't picked up an Apple computer since maybe 5 years ago, let alone attempted filesystem management, I just don't know.