[PROJECT] /cache as RAM - Milestone XT720 Android Development

Well i had an idea since we don't use the /cache partition, well i don't i was thinking we could use it as RAM.
Any ideas are welcome

LOL no ideas huh.....
Me either.... i wont give up tho i know for sure there is a way...

Hi
If you want a challenge try to get senors working on cm7.
Sent from my XT720 using XDA Premium App

how would that effect the ability to download market apps if its not available?

mchlbenner said:
Hi
If you want a challenge try to get senors working on cm7.
Sent from my XT720 using XDA Premium App
Click to expand...
Click to collapse
Its built on Korean right... lol i haven't even looked at it yet.... i would really like to get a fully 100% kick ass pure android working first.....
Call it a learning experience.
Because everything i know i learned here watching guys like Mz and KhP.
i need to get this finished first..
still imagine unlocking 100mb of ram bro.... cause thats what the /cache is man swap or RAM if i get that unlocked ouuuuuuuuuuuuuuuuuuuuu

mrmako777 said:
how would that effect the ability to download market apps if its not available?
Click to expand...
Click to collapse
Go away kid you bother me............
no effect.... no relevance for that matter LOL
but maybe you could help me.....
Has anyone really been far even as decided to use even go want to do look more like?
And if they did.... what about if they accidentally the whole thing?

mrmako777 said:
how would that effect the ability to download market apps if its not available?
Click to expand...
Click to collapse
hellmonger said:
no effect.... no relevance for that matter LOL
Click to expand...
Click to collapse
I don't know about that. In other ROMs, with the Dalvik on /cache larger apps, e.g. Angry Birds, wouldn't download (not enough space) when the /cache partition was to full.

You could maybe make a swap file on /cache (and an additional swap file on /data) and throw in some of the other useless small partitions. But that's still going to require fastboot.
I like using /cache for /data/dalvik-cache though and I used to get pretty close to filling it. CyanogenMod is sort of nice in that it will actually split the cache between /cache/dalvik-cache and /data/dalvik-cache with /cache/dalvik-cache holding the system apps and /data/dalvik-cache holding the downloaded cache.

3rdstring said:
I don't know about that. In other ROMs, with the Dalvik on /cache larger apps, e.g. Angry Birds, wouldn't download (not enough space) when the /cache partition was to full.
Click to expand...
Click to collapse
I was reading today on reddit that some people divert /cache to the sdcard so that large downloads work. I haven't tried it though.

Mioze7Ae said:
I was reading today on reddit that some people divert /cache to the sdcard so that large downloads work. I haven't tried it though.
Click to expand...
Click to collapse
Hmm.. Dunno about this one as well. but I never had that error, and I usually download the ROMs via my phone.

good luck! then we wont have to partition our sd card for swap anymore! possibly better battery life than swap on sd as less power is needed too!

Before you judge I'm running iceandfire 3.0 overclock at 900 and getting 13,566 to 14,000.
This build is stupid fast.
One issue sensors no big deal you can't do it I will find someone who can.
Sent from my XT720 using XDA Premium App

hellmonger said:
Go away kid you bother me............
no effect.... no relevance for that matter LOL
but maybe you could help me.....
Has anyone really been far even as decided to use even go want to do look more like?
And if they did.... what about if they accidentally the whole thing?
Click to expand...
Click to collapse
Like 3rd string mentions, cache size determines the size of an app you can download from the market as the market uses /cache as a repository to download/install apps...at least that's what I've noticed
Sent from my Milestone XT720 using Tapatalk

mchlbenner said:
Before you judge I'm running iceandfire 3.0 overclock at 900 and getting 13,566 to 14,000.
This build is stupid fast.
One issue sensors no big deal you can't do it I will find someone who can.
Sent from my XT720 using XDA Premium App
Click to expand...
Click to collapse
come on he wasnt saying he did not want to help... cant you read what Hellmonger said carefully? anyway, wouldnt it be good if you could use cache as swap? makes things more complete now that there are already so many good roms for our phone. since we are almost making 2.2 perfect, why not just do a little more, instead of leaving it there and starting to work on 2.3 where theres much more work left to do...

So i think Mz has the right idea..
But do we really have to set it up as swap the whole point ois to get this set up as ram so we dont have to fast boot anymore....

mrmako777 said:
Like 3rd string mentions, cache size determines the size of an app you can download from the market as the market uses /cache as a repository to download/install apps...at least that's what I've noticed
Sent from my Milestone XT720 using Tapatalk
Click to expand...
Click to collapse
The app will be downloaded to /sdcard/Download folder

kernel dont have swap support, so you can't use it from kernel layer. maybe you may find some swap functions in dalvik virtual machine layer, but I don't sure is there any

fjfalcon said:
kernel dont have swap support, so you can't use it from kernel layer. maybe you may find some swap functions in dalvik virtual machine layer, but I don't sure is there any
Click to expand...
Click to collapse
still no luck...
my goal is to stop the whole fastbot thing and use that cache partition as RAM, i already know how to set the download cache directory to SD card
on my ROM it's already implemented...
/cache as Ram.....

We really need to pull our bootloaders and decomplile them to see if there's a way to do the fastboot ourselves. The people that have looked the hardest at the bootloader are on Milestone A853, but according to them they don't have a working "fastboot boot" so that code pathway is missing from their studies.
What we need to find out is what the pathway through the bootloader is that ends up with booting a custom boot.img from RAM (i.e. does fastboot boot go through the entire boot stack or not and if it does how does it convince it to skip the check). In other words I have two mental two models for how fastboot works:
Model 1
Start boot process
Read flags that direct boot to fastboot
Load and execute fastboot bootloader
fastboot reads kernel from USB into memory
fastboot continues boot using the kernel in memory
Model 2
Start boot process
Read flags that direct boot to fastboot
Load and execute fastboot bootloader
fastboot reads kernel from USB into memory
fastboot sets up the phone for boot of the memory-loaded kernel
fastboot restarts boot process
Read flags that direct boot to load and execute the kernel from RAM
So the question is which one is correct? Does fastboot boot continue the current boot process, or does it alter the next boot? That's the big question. If it's model 2, here's an outline for a possible attack:
Attack for Model 2
Normal boot of blessed kernel through sh_hijack.sh
hijack loads a new kernel from the phone into memory
hijack sets up the phone for boot of the memory-loaded kernel
hijack set boot flags for fastboot boot
hijack restarts boot process
Boot memory loaded kernel
So how do we figure out if XT720 uses #1 or #2?
FYI: these are the A853 decompiled bootloaders: https://gitorious.org/droid/reversed (see the asm folder inside the source tree--we need this for XT720 so that we can understand what fastboot boot is doing)

I believe a 2nd had beem complied but it would not boot radio and we don't have a baseband made.
Sent from my Milestone using XDA Premium App

Related

[RECOVERY-BETA] Eris Multiboot recovery hack

In a conversation with enatefox recently he asked if it was possible to dualboot an android phone, I thought it was and set out to make that happen. This is that work.
This is a VERY EARLY BETA! It does function, but its rough. Don't expect this to be smooth or easy yet.
This image is based on Amon-RA-v1.6.2
What you need to do:
This hack will boot a rom from SDCard. It expects to see system.img and data.img on the sdcard as well as init.rc.
System.img needs to be a disk image of a filesystem that the kernel can read(I've been using ext3) around 170MB(Thats the Eris's NAND size for system)
data.img needs to be a disk image of a filesystem that the kernel can read(I've been using ext3) as big as you'd like your data partition to be(This holds your apps etc, so a couple hundred megs is good)
init.rc needs to be the init.rc of your rom with two changes
You need to remove the lines where it mounts /system and /data.
Once you have those three files on your sdcard, and have flashed this recovery you're ready to try your first boot.
Reboot into recovery, you'll see the normal usual recovery menu(I'll add an item eventually)
connect to the recovery console with adb
run 'adb shell /bootfromsd'
It will APPEAR to have done nothing for a bit, this is normal. Its booting your rom now. Once it gets to the place in the rom where it would display the splash screen, you'll get a splash as usual. You can watch it with logcat if you like.
I've personally booted the following roms from SD.
KaosFroyo
KaosLegendary
CELBFroyo
MR4
PlainJane
Good luck!
V1: http://www.multiupload.com/UJNJLQWL17
If you like my work, think about donating to my coffee fund.
So do the roms you load from SD run just as smooth as a normal one?
tjthebest said:
So do the roms you load from SD run just as smooth as a normal one?
Click to expand...
Click to collapse
depends on the speed of your SD. Theres a tiny bit of lag on the class 2 I tried it on, but it would likely be fine on a faster card.
Sounds freaking awesome! Can't wait to try
This is freaking awesome kaos sir you did it again +1 tyvm
Ill be trying this tonight!
Thx
Btw i love u kaos
Sent from my ERIS using XDA App
this as well as the herculean update schedule of KaosFroyo convinces me that Punk.Kaos should have his own kids show.
"But Punk.Kaos! that's impossible!"
Punk.Kaos appears in a superhero outfit with a silvered cape, poses and says,
"No little Jenny. Impossible is only what we have yet to try."
This reminds me of trying XDAndroid on my Diamond.
MrObvious said:
This reminds me of trying XDAndroid on my Diamond.
Click to expand...
Click to collapse
Heh, kinda the same idea
Class 4 16GB =)
[ Sent from my HTC Droid Eris | KaosFroyo v34 ]
I didn't understand all that stuff...but I like it!
Kaos rules.
Say Hi to enatefox for me, he used to handle the kaiser back in the vogue android days....
Damn this dudes smart as hell
quick question kaos, so when i want to boot to a different rom i have to adb it on recovery every time??
rrem said:
quick question kaos, so when i want to boot to a different rom i have to adb it on recovery every time??
Click to expand...
Click to collapse
Right now. Im working on making it a bit more user friendly.
I bow to you sir, you make the Eris world go 'round! (Amongst other worlds I'm sure
Thank You.
punk.kaos said:
Right now. Im working on making it a bit more user friendly.
Click to expand...
Click to collapse
Oh, alright Thanks for all your hard work even at this state this is so awesome
This is some incredible work. I wish I could donate. .I'm kind of speechless....just some ill work being done by you kaos.
Sent from my FroyoEris using XDA App
not getting time to try to night kaos, maybe tomorrow. or i may wait till a newer release.
if you need a tester for a newer build. let me know ill be glad to lend a phone out to ya.
just pm me if you want that i test for you.
thanks again kaos.
Very excited to try this out... thanks Kaos!!!
Question though, do we need to generate the .img files ourselves, or do we get the .img files from a nand back up of the ROM we want to be able to boot from?

Eris Dual Boot ROM

I'm posting this in General as I don't have the knowledge to port this or develop a similar version for the Slide and I don't want to clutter up the Development forum.
Team ADX over in the Droid Eris forum came up with this gem; a dual boot Eclair Sense/2.2 AOSP ROM. http://forum.xda-developers.com/showthread.php?t=824072
I don't know if this can be done on our phones, but I thought it possible as you don't need to flash a custom recovery.
man this would awesome... the best of both worlds, run and "stock" ROM so we can still receive updates and still have CM.
i was actually thinking about dual boot just the other day! i dont feel like id be switching back and forth from 2 roms but itd be a great feature for those who do. unfortunately i dont think we have that much developers :/
I was reading the instructions for it and it looks like we'll have to wait for S-OFF before we can try it.
Part of the scripting is telling the phone how to partition the phone, sizes of those partitions, and so on. The slide is, generally speaking, un-brickable and it's the measures used to give us that luxury that also prevent us from doing so much like R/W on the system while in a non-recovery boot and changes we do make while booted are just wiped on reboot *sigh* man I love that ramdisk image.
Once we get S-OFF let's get this project started
KCRic said:
I was reading the instructions for it and it looks like we'll have to wait for S-OFF before we can try it.
Part of the scripting is telling the phone how to partition the phone, sizes of those partitions, and so on. The slide is, generally speaking, un-brickable and it's the measures used to give us that luxury that also prevent us from doing so much like R/W on the system while in a non-recovery boot and changes we do make while booted are just wiped on reboot *sigh* man I love that ramdisk image.
Once we get S-OFF let's get this project started
Click to expand...
Click to collapse
I don't think S-OFF is the issue. The partitioning instructions only refer to sdcard. This command:
Code:
mkpartfs primary fat32 0 3500 (can be adjusted to your needs. This partition will be used by the 2.1 rom and by recovery)
I think is only for the phone ROM storage and the for the recovery to find the boot scripts. According to the instructions, they're only partitioning the sdcard to run the AOSP ROM in it. They install the 2.1 Sense ROM to the phone, get it set up, run the boottosd script to boot into the 2.2 AOSP ROM on the sdcard, then set that up and run the boottophone script to go back to 2.1 Sense. They're running a ROM on the sdcard!
As I said before, I think something like this can work for our phones because it doesn't require flashing a recovery. The problem is we don't have the devs to do it.
heybobitsme said:
I don't think S-OFF is the issue. The partitioning instructions only refer to sdcard. This command:
Code:
mkpartfs primary fat32 0 3500 (can be adjusted to your needs. This partition will be used by the 2.1 rom and by recovery)
I think is only for the phone ROM storage and the for the recovery to find the boot scripts. According to the instructions, they're only partitioning the sdcard to run the AOSP ROM in it. They install the 2.1 Sense ROM to the phone, get it set up, run the boottosd script to boot into the 2.2 AOSP ROM on the sdcard, then set that up and run the boottophone script to go back to 2.1 Sense. They're running a ROM on the sdcard!
As I said before, I think something like this can work for our phones because it doesn't require flashing a recovery. The problem is we don't have the devs to do it.
Click to expand...
Click to collapse
I'll take a look. No promises as I'm an übernoob but I would love to have this.
Sent from my T-Mobile myTouch 3G Slide using XDA App
migueltherocker said:
I'll take a look. No promises as I'm an übernoob but I would love to have this.
Sent from my T-Mobile myTouch 3G Slide using XDA App
Click to expand...
Click to collapse
You won't be able to do a simple port. I posted about it more of as a proof of concept. Take the same idea, but obviously using our espresso sense and CM6.
heybobitsme said:
I don't think S-OFF is the issue. The partitioning instructions only refer to sdcard. This command:
Code:
mkpartfs primary fat32 0 3500 (can be adjusted to your needs. This partition will be used by the 2.1 rom and by recovery)
I think is only for the phone ROM storage and the for the recovery to find the boot scripts. According to the instructions, they're only partitioning the sdcard to run the AOSP ROM in it. They install the 2.1 Sense ROM to the phone, get it set up, run the boottosd script to boot into the 2.2 AOSP ROM on the sdcard, then set that up and run the boottophone script to go back to 2.1 Sense. They're running a ROM on the sdcard!
As I said before, I think something like this can work for our phones because it doesn't require flashing a recovery. The problem is we don't have the devs to do it.
Click to expand...
Click to collapse
Ok that makes sense. I thought it was pointing to the partitions on the phone telling it to format to a different size for some reason. Then what's preventing us from doing this? Just a lack of a proper script?
I have not poked around with how they are going about doing everything, but I was the one who got the ball rolling with my dual boot linux script. Conap took the basic setup and made some changes to just install them both on the phone and sdcard. Here is the basic of what it is doing....
The init.rc file found in boot.img has been modified for the froyo rom on the sdcard. The lines where it mounts [email protected] , [email protected], and [email protected] have been changed to the partitions on the sdcard (/dev/block/mcblk0px) The updater-script for froyo has been modified to flash the rom to the partitions on the sdcard. There are some gscripts which are ran from the phone that either modify or replace the boot.img for the rom you want to boot into.
The froyo ROM is running completely off the sdcard and the recovery is left untouched. The script that is required if you are using clockworks is because clockworks sbin and folder locations are setup a little different. I was running into some problems with froyo not recognizing the sdcard after making more than 4 partitions. Several had reported to me that their phones also did not recognize the sdcard, but the Eris phones somehow still did. I am working on something that should run from all android phones and allow you the option of installing whatever ROM you want.
One Last Thing..
Anyone is capable of learning how to do some development work. It just takes some patience and "Google". I had no knowledge of linux or any other scripting languages, except windows batch scripts, until 3 months ago.
There is not much activity on my thread, but once I get a working version finished it will be posted there-----Dual Boot Android
When you get it done and own working, post it in development. I only posted the thread in general because I knew I wasn't going to be the one to develop it. I'm a welder by trade and java and linux are a little beyond me. Although I am trying as I'm using Ubuntu as my main OS and starting reading java tutorials.
Sent from my CM6 Slide
heybobitsme said:
You won't be able to do a simple port. I posted about it more of as a proof of concept. Take the same idea, but obviously using our espresso sense and CM6.
Click to expand...
Click to collapse
If there was ever a reason to get a dev started on a project, this would be it. I would reconsider upgrading from the Slide if we had something this awesome.
unCoRrUpTeD said:
I was running into some problems with froyo not recognizing the sdcard after making more than 4 partitions. Several had reported to me that their phones also did not recognize the sdcard, but the Eris phones somehow still did. [/URL]
Click to expand...
Click to collapse
From what I understand, android can not *see* more than 4 partitions so they had to do something a bit different. Somewhere in the thread that's linked it states what they did to get it to work.
s off is tmobs response to....
KCRic said:
I was reading the instructions for it and it looks like we'll have to wait for S-OFF before we can try it.
Part of the scripting is telling the phone how to partition the phone, sizes of those partitions, and so on. The slide is, generally speaking, un-brickable and it's the measures used to give us that luxury that also prevent us from doing so much like R/W on the system while in a non-recovery boot and changes we do make while booted are just wiped on reboot *sigh* man I love that ramdisk image.
Once we get S-OFF let's get this project started
Click to expand...
Click to collapse
The "companies" wanted s-off due to the large number of brix getting returned for handest exchange and assurion claims, just to figure out somebody pooched sumthin up trying to be a HAXOR, if you haven't done anything like this before. Id suggest peeps get a g1 or some other root & rom-o-matic type for and play with it till you take on your brand new handset trying to install some bleenin edge hack...
You gotta learn to wank off before you can try it with somebody else in the room.
I remember my early days at xda, hacking my mda, xcaliber, and esato hacking SonyEricsson fones before they jumped the shark. People who had the ability to read and follow directions (emphasis on the read part) would study till they were sure they would still have a working fone at the end. Hung out and did great stuff with there handsets. And the noobs were wary enough to investigate before they just started mucking about.
So the handset manu. Had to do sumthin and now we have s-off.
the moral of my high and mighty rant an rave, if you don't know how to do sumthing or if you understand what to do but not the why, then keep reading, read more do less
KCRic said:
From what I understand, android can not *see* more than 4 partitions so they had to do something a bit different. Somewhere in the thread that's linked it states what they did to get it to work.
Click to expand...
Click to collapse
In the newest builds they have 2.1 system on the phones system partition and froyo system on the phones data partition. The data is moved to the SD. 2.1 and previous Rome had no problem with extra partitions on the sdcard.froyo changed the way it mounts the sdcard and could only see 4.
I am actually releasing a dual boot method very shortly that should work on any android phone with very little setup required on your part. I am in the process of finalizing it. Anyone interested in testing please let me know as I want to test on as many devices ad possible
Sent from my HERO200 using XDA App

unCoRrUpTeD Dual Boot

After some thinking about how I wanted to pursue this project and the recent release of an app that has made this possible, I decided to start working on an app of my own. While I have no experience in making an app, I have already begun working on it. Boot Manager is an awesome app for those that like flashing and running different ROMS frequently, however I have found some things that I do not like about it and features that could be added. My short term goal is to create an app with support for either 2 or 3 Roms and would be free. I'll then release a paid one that will support 5 or more roms and add some other features.
As I said, I have already begun working on it and although it won't utilize the method I wanted to use, I will implement some of it in the future. Right now I have parts of it setup and can already use certain features, but for anyone that has created an app, you know there is a lot of scripting that needs to be done.
Thanks to Conap for the motivation to get my a** back on track.
Partition your sdcard
PARTITION YOUR SDCARD
​I have made this really easy to partition your sdcard while preserving all data on the fat32 partition.
You have the option of specifying the size of the ext partitions in /sdcard/dualbootmap.txt
Code:
adb shell
echo 150 200 0 > /sdcard/dualbootmap.txt
The 1st number is cache partition for both rom2 in Mb. For right now I would not do anything less than 125 until I incorporate settings for dalvik-cache on data.
The 2nd number is ROM2 data partition in Mb. Pick whatever size you want.
The 3rd number which isn't used yet will be for a2sd on ROM1. For now this should be kept at 0.
If there is no dualbootmap.txt file the partitions will be automatically set to
cache=150
data=200
a2sd=0
Make sure you have enough free space on the card to accommodate the extra partitions plus an extra 200. If you only have a fat32 partition and use the default values above you would need 550mb of free space. After setting up the roms you will get the extra 200mb back. Its just used as temporary storage.
INSTRUCTIONS:
1. Download sdpart.zip
2. Reboot into recovery
Code:
adb shell reboot recovery
3. Unzip the contents of sdpart.zip and push the files inside sdpart folder to /tmp/
Code:
adb push c:\xxxxxx\sdpart /tmp/
4. run /tmp/sdpart.sh in adb shell
Code:
adb shell /tmp/sdpart.sh
If sdpart.sh doesn't run then you will have to chmod it before running it, but it should already have permission to run.
Code:
adb shell chmod 777 /tmp/sdpart.sh
HELP
Reserved until release day
Can't wait to try it out.
Is it going to support the aria?
12c00000-257fffff : System RAM
THANKS
Sent from my HTC Liberty using XDA App
FFXTDS said:
Can't wait to try it out.
Is it going to support the aria?
12c00000-257fffff : System RAM
Sent from my HTC Liberty using XDA App
Click to expand...
Click to collapse
Updated OP. Thats it for today. I'll post others in the morning
Can I restore a nandroid and then flash the dualboot.zip to make that Rom store to SD instead of wiping everything and flashing the roms?
jblazea50 said:
Can I restore a nandroid and then flash the dualboot.zip to make that Rom store to SD instead of wiping everything and flashing the roms?
Click to expand...
Click to collapse
You should be able to as long as there is a boot.img in the nandroid which I think there is
I really like this idea. Is there any way that you could modify a recovery to incorporate a bootloader? I believe clockwork is open source and should allow for this to be possible.
I don't know any c programming, but am looking at alternatives. Maybe an app or 1 script that does everything.
Sent from my HERO200 using XDA App
This is F'in epic dude. Thank you!
got this working on my evo,
1. what if i want to flash a new nightly or a update, do i go through the process again? and does it matter if it's on the SD or Phone?
2. how do you nandroid the rom on the SD?
basically should i keep CM6.1 on the Phone or the SD for easy updating
EDIT: i lied it works then when i tried to boot to SD it just sat at the white screen. going to play around with this some tonight
Wow man. This is freaking amazing. I'm definitely going to give this a try. Run CM as my daily rom, but this will help when I am traveling to 4G areas, and I can just flip over to a Sense rom.
Awesome, awesome work.
so if i wanted to put cyanogenmod nightlys on and then update them to a newer nightly version how would i do that without redoing everything?
edit: been messing with this and had my question sitting without hitting submit for like 15 min and apperently in that time someone else asked same question
I can't figure out how to get my base address... Can someone please explain more... I'd love to use this on my incredible
Sent from my Incredible using XDA App
Booting into the rom on the SD doesn't seem to be working. The phone just stays at the initial boot screen. This happens whether I have CM6 or a Sense rom on the SD.
sd card
So how is the speed when running on a class two SD card or a Class 4
Does the rom bog down?
Tried it and when I tried to boot into the rom on sd it got stuck on splash screen. Running miui on phone and had ava 10 on sd.
Sent from my PC36100 using XDA App
PikkonX said:
Booting into the rom on the SD doesn't seem to be working. The phone just stays at the initial boot screen. This happens whether I have CM6 or a Sense rom on the SD.
Click to expand...
Click to collapse
What recovery and phone do you have. Run this from command or terminal and post inside code tags
Code:
adb shell cat /sdcard/dualboot/recovery.log
or attach /sdcard/dualboot/recovery.log so I can look at it. It sounds like I may have the wrong base address. I'm going to sleep now. but will check and update this in the morning
kevinniven said:
So how is the speed when running on a class two SD card or a Class 4
Does the rom bog down?
Click to expand...
Click to collapse
im no expert to android, linux, sd cards (lol)... but i think it doesnt matter, once the ROM is loaded it runs off the phone's memory, so the speed shouldnt be affected.
somebody correct me if im wrong
PikkonX said:
Booting into the rom on the SD doesn't seem to be working. The phone just stays at the initial boot screen. This happens whether I have CM6 or a Sense rom on the SD.
Click to expand...
Click to collapse
yeah i'm getting the same thing wont get past initial bootscreen
Phone = HTC EVO rev 0003
recovery = psfMod 0.7.2 (aka clockwork)
sdcard = 8gb (w/2.2gb free)
and i checked my adress base before hand so i know i got correct one
i will try again tomorrow as i gotta get some sleep now

[Think Tank]Dual Boot

So I was thinking...
df -h
/dev/block/mmcblk0p25------402.6M-----124.5M----257.3M-----33%---/system
/dev/block/mmcblk0p26------1.3G--------356.0M----886.5M----29% ---/data
/dev/block/mmcblk0p27------198.3M------35.7M----152.4M-----19%---/cache
Click to expand...
Click to collapse
We have roughly 2 gigs internal on our phones. Using CM7, my /system partition is over 60% empty. Why not install another rom beside it?
My idea is to partition the storage space into multiple directories that symlinks back to the original partitions only when booted.
For example, The partitioning could look like this:
/system------5M
/data--------5M
/cache------5M
/system1----200M
/data1------650M
/cache1-----100M
/system2----200M
/data2------650M
/cache2-----100M
Click to expand...
Click to collapse
The system would boot past splash1, where a screen similar to this could show up:
{
"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"
}
Depending on your selection, it would boot with either /system1 or /system2, symlinked to the original /system.
I know that it is possible to change your mtd partitions, it is a very commonly used hack on the G1 developed by Firerat and lbcoder (thread). If we can take this concept and take it a step further and create our own partitions, this seems feasable.
Some thoughts/concerns:
-both roms would have to use the same kernel as the kernel is one of the first things to boot.
-space for apps might be a bit tight for some, so A2SD might need to be used
-we would need a modified recovery image in which you have to specify which /system a rom would be copied to
-sharing /data and /cache might be possible, but might lead to problems with dramatically different roms.
-how would we go about setting up the screen to select which rom to boot?
-the closest thing to dual booting that we can do now would be /sd-ext based roms like old HD2 roms or Enomther's rom from before we had perm root
My programming knowledge is limited to HTML and flash, and I am a linux noob so I can't do much more than build a rom from source or changing out/modifying some png's for a theme.
If my idea seems feasible somebody else would have to code it. If you can come up with a better idea for dual boot, then by all means, share
mejorguille said:
So I was thinking...
We have roughly 2 gigs internal on our phones. Using CM7, my /system partition is over 60% empty. Why not install another rom beside it?
My idea is to partition the storage space into multiple directories that symlinks back to the original partitions only when booted.
For example, The partitioning could look like this:
The system would boot past splash1, where a screen similar to this could show up:
Depending on your selection, it would boot with either /system1 or /system2, symlinked to the original /system.
I know that it is possible to change your mtd partitions, it is a very commonly used hack on the G1 developed by Firerat and lbcoder (thread). If we can take this concept and take it a step further and create our own partitions, this seems feasable.
Some thoughts/concerns:
-both roms would have to use the same kernel as the kernel is one of the first things to boot.
-space for apps might be a bit tight for some, so A2SD might need to be used
-we would need a modified recovery image in which you have to specify which /system a rom would be copied to
-sharing /data and /cache might be possible, but might lead to problems with dramatically different roms.
-how would we go about setting up the screen to select which rom to boot?
-the closest thing to dual booting that we can do now would be /sd-ext based roms like old HD2 roms or Enomther's rom from before we had perm root
My programming knowledge is limited to HTML and flash, and I am a linux noob so I can't do much more than build a rom from source or changing out/modifying some png's for a theme.
If my idea seems feasible somebody else would have to code it. If you can come up with a better idea for dual boot, then by all means, share
Click to expand...
Click to collapse
Lol that's pretty cool idea
Sent from my Liquid Metal using XDA App
Bounty in place for this! I really share your dual boot vision. Very badass idea. If someone will work on it, im in bounty $20
Sent from my HTC Vision using XDA App
That would be difficult. bcoz,
1. Need WP7 drivers for G2/DZ devices
2. source/ROM compatible for G2/DZ (WP7 is not open, hehe m$)
3. A botloader.
Innocent Devil said:
That would be difficult. bcoz,
1. Need WP7 drivers for G2/DZ devices
2. source/ROM compatible for G2/DZ (WP7 is not open, hehe m$)
3. A botloader.
Click to expand...
Click to collapse
Lol who said I wanted windows 7? The picture up there is an example of a dual boot solution for old windows mobile phones. I was more interested in being able to run CM7/MIUI/liquid metal etc at once with minimal effort to change between them. And I'm pretty sure that WP7 doesn't use /system, /data, and /cache partitions.
Very cool idea .if you deside to do it I will be more than happy to help out in any way I can . Even if its not likely to work . It's still going to be a lot of fun trying .lol .cm and sense together . Or meego perhaps?
Sent from my HTC Vision using XDA App
mejorguille said:
Lol who said I wanted windows 7? The picture up there is an example of a dual boot solution for old windows mobile phones. I was more interested in being able to run CM7/MIUI/liquid metal etc at once with minimal effort to change between them. And I'm pretty sure that WP7 doesn't use /system, /data, and /cache partitions.
Click to expand...
Click to collapse
BAM!! +1000
Sent from my Liquid Metal using XDA App
awesome idea
I think this is a genius idea, and would have incredible implications if achieved. I also would be willing to donate to anyone who pulls off a functional and reproducible dual boot.
bahmanxda said:
Very cool idea .if you deside to do it I will be more than happy to help out in any way I can . Even if its not likely to work . It's still going to be a lot of fun trying .lol .cm and sense together . Or meego perhaps?
Sent from my HTC Vision using XDA App
Click to expand...
Click to collapse
Me wants!!!! 2.4 as a daily,.... 3.0 for the eye candy!!!
Is there anything you genius'/genii/clever people can take from Kendon's Dualizer? http://www.villainrom.co.uk/forum/s...Dualizer-Dual-Boot-System&highlight=dual+boot
mejorguille said:
So I was thinking...
We have roughly 2 gigs internal on our phones. Using CM7, my /system partition is over 60% empty. Why not install another rom beside it?
Click to expand...
Click to collapse
Excellent idea!
My idea is to partition the storage space into multiple directories that symlinks back to the original partitions only when booted.
For example, The partitioning could look like this:
The system would boot past splash1, where a screen similar to this could show up:
Depending on your selection, it would boot with either /system1 or /system2, symlinked to the original /system.
Click to expand...
Click to collapse
There is already a multiboot bootloader installed on the phone which selects from two boot partitions... "boot" and "recovery". There is virtually no difference between them except for what is actually stored within the partitions.
I know that it is possible to change your mtd partitions, it is a very commonly used hack on the G1 developed by Firerat and lbcoder (thread). If we can take this concept and take it a step further and create our own partitions, this seems feasable.
Click to expand...
Click to collapse
You certainly could add or remove partitions from an MTD device using that approach, UNFORTUNATELY THOUGH, Vision does NOT HAVE an MTD device. It has an eMMC.
The eMMC also happens to be a bit of a WEIRD one. At the front of the eMMC there is a *fake* partition table, which is defined by the SPL. I am not aware of any way to alter this partition table except by modifying the SPL.
So repartitioning may not work.
However, symlinks WILL work.
Some thoughts/concerns:
-both roms would have to use the same kernel as the kernel is one of the first things to boot.
Click to expand...
Click to collapse
Nope. Put one kernel in the boot partition, the other one in the recovery partition. When you want to boot the second system image, simply boot into "recovery".
-space for apps might be a bit tight for some, so A2SD might need to be used
Click to expand...
Click to collapse
Easy
-we would need a modified recovery image in which you have to specify which /system a rom would be copied to
Click to expand...
Click to collapse
Trivial
-sharing /data and /cache might be possible, but might lead to problems with dramatically different roms.
Click to expand...
Click to collapse
Cache shouldn't be any problem, just wipe it on boot. Userdata would have to be manipulated in the exact same manner as system.
-how would we go about setting up the screen to select which rom to boot?
-the closest thing to dual booting that we can do now would be /sd-ext based roms like old HD2 roms or Enomther's rom from before we had perm root
Click to expand...
Click to collapse
Already answered. Boot recovery to boot the second system.
My programming knowledge is limited to HTML and flash, and I am a linux noob so I can't do much more than build a rom from source or changing out/modifying some png's for a theme.
If my idea seems feasible somebody else would have to code it. If you can come up with a better idea for dual boot, then by all means, share
Click to expand...
Click to collapse
Ok, now how I would do this is actually fairly simple to implement;
The boot image contains the basic structure of the root filesystem and sets up and mounts system and data.
It simply needs to be changed like this;
Destroy mountpoints "/system" and "/data".
Create new mountpoints "/base-system" and "/base-data".
Change the mounts for the system and data partitions to be mounted at the new mountpoints.
Create SYMLINKS "/system" --> "/base-system/system1" and "/data" --> "/base-data/data1" on the *first* boot image (to be installed to the "boot" partition), and "/system" --> "/base-system/system2" and "/data" --> "/base-data/data2" on the *second* boot image (to be installed to the "recovery" partition).
And that should basically do it.
This can also be used to boot Maemo/MeeGo.
This guy is already working on it, it is suppose to release soon.
http://forum.xda-developers.com/showthread.php?t=847423
I can't wait.
bahmanxda said:
Very cool idea .if you deside to do it I will be more than happy to help out in any way I can . Even if its not likely to work . It's still going to be a lot of fun trying .lol .cm and sense together . Or meego perhaps?
Click to expand...
Click to collapse
Not likely to work?!?! lol that's not very encouraging
DarkPyroGuy 09 said:
This guy is already working on it, it is suppose to release soon.
http://forum.xda-developers.com/showthread.php?t=847423
I can't wait.
Click to expand...
Click to collapse
Nah, booting from the sdcard isn't what I'm trying to accomplish. I want something on internal NAND, it would perform better (Look at the HD2).
riahc3 said:
This can also be used to boot Maemo/MeeGo.
Click to expand...
Click to collapse
It could, but as far as I'm aware there is no active effort of porting meego to the G2. Development stopped on the HD2 port, and now that nokia is out of the picture I imagine meego will die down.
There is already a multiboot bootloader installed on the phone which selects from two boot partitions... "boot" and "recovery". There is virtually no difference between them except for what is actually stored within the partitions.
Click to expand...
Click to collapse
Very good point, but would getting rid of a functional recovery be very practical? How would you approach rom upgrades? a PC based update system like ODIN for samsung phones? Fastboot? Or maybe you mean installing a new, separate boot partition.
You certainly could add or remove partitions from an MTD device using that approach, UNFORTUNATELY THOUGH, Vision does NOT HAVE an MTD device. It has an eMMC.
The eMMC also happens to be a bit of a WEIRD one. At the front of the eMMC there is a *fake* partition table, which is defined by the SPL. I am not aware of any way to alter this partition table except by modifying the SPL.
So repartitioning may not work.
However, symlinks WILL work.
Click to expand...
Click to collapse
Yeah we definitely don't want to mess with the SPL. I remember all the bricks from haykuro's SPL for having an incompatible radio/spl/recovery combination.
Nope. Put one kernel in the boot partition, the other one in the recovery partition. When you want to boot the second system image, simply boot into "recovery".
Click to expand...
Click to collapse
Again, I really wouldn't be happy loosing the recovery image. I mean, if you screw something up, boot to recovery, wipe, and reflash and you are good. If we replaced the recovery, to fix a problem you would have to be near a pc, boot to fastboot, wipe all, flash a recovery, boot to recovery, install a rom (or directly a PC10IMG.zip). I.E., the process would not be very noob friendly.
Cache shouldn't be any problem, just wipe it on boot. Userdata would have to be manipulated in the exact same manner as system.
Click to expand...
Click to collapse
When you wipe cache it takes considerably longer to boot, so maybe we should create separate cache partitions.
Already answered. Boot recovery to boot the second system.
Ok, now how I would do this is actually fairly simple to implement;
The boot image contains the basic structure of the root filesystem and sets up and mounts system and data.
It simply needs to be changed like this;
Destroy mountpoints "/system" and "/data".
Create new mountpoints "/base-system" and "/base-data".
Change the mounts for the system and data partitions to be mounted at the new mountpoints.
Create SYMLINKS "/system" --> "/base-system/system1" and "/data" --> "/base-data/data1" on the *first* boot image (to be installed to the "boot" partition), and "/system" --> "/base-system/system2" and "/data" --> "/base-data/data2" on the *second* boot image (to be installed to the "recovery" partition).
And that should basically do it.
Click to expand...
Click to collapse
Thanks for the detailed post dhkr234, you bring up a lot of good points and your method would be the easiest to implement, but unless I'm understanding something wrong, it would be not very friendly to the end user with no recovery image.
[QUOTE
Yeah we definitely don't want to mess with the SPL. I remember all the bricks from haykuro's SPL for having an incompatible radio/spl/recovery combination[/QUOTE]
I disagree... I think this is exactly what needs to be worked on. The devs eventualy got the G1 safe to flash the spl... and what's a few bricks if it means we can resize any and every partition on the device! Some one with some real skill with spl programing can figure it out... I have faith!
On a side note if we could "hack" the spl and re-partition the eMMC maybe we could reformat it to a faster file system... like they did at the factory and why our 4gig turned into 2... I would gladly trade that for 1gig if it is twice as fast! (Especially if I could change back)
Sent from my HTC Vision using XDA App
TheNewGuy said:
[QUOTE
Yeah we definitely don't want to mess with the SPL. I remember all the bricks from haykuro's SPL for having an incompatible radio/spl/recovery combination
Click to expand...
Click to collapse
I disagree... I think this is exactly what needs to be worked on. The devs eventualy got the G1 safe to flash the spl... and what's a few bricks if it means we can resize any and every partition on the device! Some one with some real skill with spl programing can figure it out... I have faith!
On a side note if we could "hack" the spl and re-partition the eMMC maybe we could reformat it to a faster file system... like they did at the factory and why our 4gig turned into 2... I would gladly trade that for 1gig if it is twice as fast! (Especially if I could change back)
Sent from my HTC Vision using XDA App
Click to expand...
Click to collapse
Yeah, but on the G1's we have JTAG to bring it back to life. And the eMMC partitioning the 4 gigs in 2 is irreversible. CM7 already increased its efficiency though EXT4 instead of EXT3
mejorguille said:
Yeah, but on the G1's we have JTAG to bring it back to life. And the eMMC partitioning the 4 gigs in 2 is irreversible. CM7 already increased its efficiency though EXT4 instead of EXT3
Click to expand...
Click to collapse
Yea that's basically were I got the idea.... but there has to be something like Jtag for the G2. I mean our phones aren't born with all this great stuff! LOL they start out completely bare and the OS,spl,bootloader,and who knows what else gets added on.. so it has to exist. And I know the 4gigs to 2 is irreversible but what about formatting the 2gigs we have down to one? With the right partition layout( I don't use any where near the 1.3 gigs I have on apps) we could cut it in half and still have enough room. And this would all just be one of the possible things to do if we had a hacked spl like the G1.
But I am no dev and I can't complain(or help)... just thinking out loud.
Sent from my HTC Vision using XDA App

LolBoot xD SGS2 dualboot - NEW 12.12.11: Easy-Setup App v2.51

(I wasn't really sure if this might fit into "Development", so I put it here, maybe a mod will move it, if it's a dev topic )
Anyways, here we go, I DUALBOOTED two different, independant ROMs on the S2
Video of dualboot in action: http://www.youtube.com/watch?v=l9-V_6Ua_D0
** THIS IS NOT (YET) COMPATIBLE **
** WITH ICS (ANDROID 4.0.x) ROMS! **
-- this goes for custom ROMs as well as stock ROMs --
Icey Sammich compatibility will be added once Sammy released their ICS kernel sources.​
!!! There now is an app for more convinient and easy setup of the dualboot !!!
(04.11.2011) DualBoot setup app v2.00: http://forum.xda-developers.com/showpost.php?p=19049047&postcount=94
(12.12.2011) App has been updated to 2.51, lot's of good new stuff! >> Free Version -- Donate Version <<
Click to expand...
Click to collapse
First off:
This is only a little experiment I did like "c'mon, has to be possible" - this is NOT (at least yet) tweaked for usability and anything the like, just a humble experiment.
That said, don't flame me if things are rather complexicated to do this ATM.
Maybe I'll come up with a more userfriendly way of setting this up, maybe someone else does, maybe no one does.
Also now that I found a base on what to do, there might be different ways (more easy ones maybe) to set this up, I'll keep toying around with it.
But let's cut to the chase, shall we
So, how was this set up? I'll give a brief rundown of what I did:
I edited a few .rc files in the initramfs of the kernel to make it actually perform a full boot when recovery mode was triggered and to fire up recovery mode when in battery-charging mode.
I also edited a few mounts in the boot .rc for the 2nd OS (in "recovery" mode) to use different partitions for /system and /data, so that we'd end up with really independant installs.
What partitions did I missuse for that:
partition 12 (mostly unused, only when installing a stock ROM AFAIK) for /system - that's a neat choice IMO as p12 is 512MB in size, just as p9 where /system usually sits on
partition 7 (which is usually /cache) for /data
gives us only 100MB of user data space, but for now that's OK, as said, it's only an experiment on how such a thing could be done.
with the original partition for /cache "gone", I mounted a tmpfs for it.
So the OS still has a usable /cache
Then I set up the two OSes:
(dualboot kernel not yet flashed)
Launchprep part 1:
I made a CWM backup of my normal installation I was running (stock XXKG6 at the time).
I installed DevNull-Test AOSP as to it's instructions
Some su'ed voodoo via a terminal while having the 2nd OS (the DevNull AOSP one, in this case) installed - best done in recovery mode via ADB:
rm -Rf /cache/*
cp -Rp /data/* /cache/
dd if=/dev/block/mmcblk0p9 of=/dev/block/mmcblk0p12 bs=4096
That did "set up" the 2nd OS to where it's supposed to go.
Launchprep part 2:
Then, "advanced restore" of the backup made a few minutes earlier:
- boot
- system
- data
Reboot
At this point OS #1 is running again and OS #2 is sitting in hiding, prepared to roll - so, let's roll:
Flashed the modified "dualboot kernel" (via an App or Odin or magic, doesn't matter).
---> DONE <---
reached the point to where everything works as shown in the video.
As said above already, yes it needs some manual work to set it up, yes there's a lot of things that might not work, yes there are other/better ways to set it up.
It's only a humble experiment - lot's of space for improvement.
Maybe you like it - for those who do, I wanted to share this
Attached to this post you find the modified kernel I used, it's based on my v1.20 custom kernel (see sig) but with the above mentioned changes.
I've seen the video m8, this is totally different approach, ur giving this device a new dimension. love u "in a straight way" hahaa
there currently an app called Bootmanager which also handle up to quadruple booting. But sadly currently only support HTC phones.
http://www.appbrain.com/app/bootmanager/com.drx2.bootmanager
well, one can hope!
Thanks OP this is an awesome concept! Very happy to see you posted it with a video! and nice boot animation!
sunwee said:
there currently an app called Bootmanager which also handle up to quadruple booting. But sadly currently only support HTC phones.
Click to expand...
Click to collapse
Yeah, that's the thing.... that app is HTC only.... but we have Samsung S-II and want dualboot as well.
I'm already brainstorming on how to enhance the actual usability of this, i.e. flashing a 2nd OS directely to it's place instead of first installing it to the main system partition. But there is problems when /data is not mounted to the original partition, at least stock doesn't like it on initial boot.... well, well....
That is great. Going to use this for sure. This should be in development for sure.
Congratulations already.
Sent from my GT-I9100 using Tapatalk
This is impressive bro sure will use it
but i want to ask one thing
SD card needed for this or not ?
That would be really cool (and definitely should goes to original development). Does it work with CM7/MIUI + custom rom?
vikas776 said:
SD card needed for this or not ?
Click to expand...
Click to collapse
No, so far this completely works with all internal storage.
But I have a few ideas I have yet to try to get mounted from other places - like images in /sdcard for example (I *so* hope that'll work.... )
Hi
Does this kernel include any of the Hellcat kernel tweaks or are they work in progress.
Sent from my GT-I9100 using Tapatalk
Tricky103 said:
Does this kernel include any of the Hellcat kernel tweaks or are they work in progress.
Click to expand...
Click to collapse
I made this build based on my v1.20 custom kernel, so it has everthing that one has - plus the touchfix already
exactly what i was hoping for.
great job - pls continue your work
Hi i tried this with instanity rom last night. When I use the three buttons to boot it just sits there not booting. My guess is the kernel is not compatible. Unless I made a mistake somewhere.
Sent from my GT-I9100 using Tapatalk
Hm, yah, might be that the kernel isn't fully compatible with that ROM, what kernel does the ROM usually use?
Did you boot it up fully at least once before copying /data to /cache ?
Yes I did fully boot up. But his kernel didn't have advanced activated in recovery so I flashed your kernel and moved the cache okay. But it said /data not found when I ran the 2nd command line.
I will flash aosp later. I like that rom.
I am not sure what kernel nitr8 uses. I think it is his own, Insane.tar would you like it to see if they can work together.
Sent from my GT-I9100 using Tapatalk
Tricky103 said:
But it said /data not found when I ran the 2nd command line.
Click to expand...
Click to collapse
Hm, yeah, that sounds like something didn't work.... make sure you run those commands as root, i.e. "su" as very first command (I'll add that to the first post).
Give me a direct link to the ROM and I'll try it.
Make take a few days though as I'm away from my computer a lot because of work the next two days, but I'll try once time permits.
Well yeah, and this still is in highly experimental stage, if I (or someone else) should ever get this to more stable and reliable state, I'll make an easy to use installer/setup tool
But I got a few other ideas on setting it up I have to try first....
http://goo.gl/2uZCh
This is the complete rom. Only 47mb. I thought you would like the whole rom
Tricky103 said:
Hi
Does this kernel include any of the Hellcat kernel tweaks or are they work in progress.
Sent from my GT-I9100 using Tapatalk
Click to expand...
Click to collapse
May be someday WINDOWS Mo 7 and Android on our sweet beast
Hi
I tried again with Aosp Dev-null. I still get this error "cp: can't stat '/data/*': No such file or directory "
after running this command line " cp -Rp /data/* /cache/ "
Any Ideas ?
It still doesn't boot if I press 3 button it brings up the boot logo and then black screens until it boots to the 1st partition.
Thanks for the link, will download and try as soon as time permits.
Also, try this command sequence, I got an idea what the issue maybe might be, give it a shot:
Code:
su
rm -Rf /cache/*
busybox cp -Rp /data/* /cache/
dd if=/dev/block/mmcblk0p9 of=/dev/block/mmcblk0p12 bs=4096
(use "busybox cp" instead of plain "cp", maybe it helps)
And some update on my ongoing thoughts for those interested:
- got an idea on how to make a more easy to use App for prepping and setting up the dualboot environment
- managed to do a neat thing I didn't really think it would work: issued a "mount" command and the OS thought it was mounting a partition of the internal flash (/dev/block/mmcblk0p12 in this test, but was testing for later on actually doing it with p9 - you might see where I'm headed here ) but instead of the partition it actually mounted from an .img file! (loopback)
i.e. "mount /dev/block/mmcblk0p12 /somedir" actually mounted "/somepath/someimage.img" to "/somedir" instead of the partition from /dev/block/... (you just gotta love Linux and it's flexible way of handling things....)
NOW, imagine /dev/block/mmcblk0p9 (the partition carrying the system) and p10 (data) being (kinda) transparently mounted from an IMAGE FILE
I "only" have to find a way to sneak this in before init starts mounting stuff.
If there's a way to do THAT.... unlimited multiboot from OS images, anyone?
(so far this is kinda dreaming, but would be cool to get it working )

Categories

Resources