Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,812,283 Members 38,304 Now Online
XDA Developers Android and Mobile Development Forum

[APP] Boot Manager Pro - Dual boot unlimited ROMS! [WIP]

Tip us?
 
da-pharoah
Old
(Last edited by da-pharoah; 28th April 2012 at 07:07 AM.)
#1  
da-pharoah's Avatar
Recognized Contributor - OP
Thanks Meter 1,591
Posts: 2,676
Join Date: Mar 2009
Location: Seacoast near Joppa

 
DONATE TO ME
Angry [APP] Boot Manager Pro - Dual boot unlimited ROMS! [WIP]

Hola peoples!!! Ok so I just thought I'd create my own thread on this matter. Mustangtim started one in apps and themes (and here is the link to that thread) but since I'm taking over this project it was brought to our attention that this should be in the dev section as its no longer just an app.. I am actually tearing .imgs apart trying to figure out what the deuce.

FIRST OFF THIS IS A WORK IN PROGRESS, WE ARE NOT YET FULLY SUPPORTED. HOWERVER I'M DOING MY BEST TO CHANGE THAT.

Secondly if you want to help get this started please visit the market and grab the app here. Its a $3 dollar app for unlimited amount of roms, based on your SD card storage capacity anyway. And speaking of which you need AT LEAST a class 4 or better SD card to make this run smoothly.

Also feel free to visit the forums at http://forum.init2winitapps.com/

Ok so here it is, Boot Manager Pro. Its been a long time coming for the g2x to dual boot. First off let me say long story short, I currently have a bootable SD Rom, known as ROM1. I have yet to be able to recreate my findings tho. But it works and it doesnt brick at all. However it is a bit laggy on my class 4 SD card. Luckily I've already done my research on this project as there are many threads of such awesome info so I'm just going to be lazy about it and quote the good people of xda versus re-writing it based off of their info.

Quote:
Originally Posted by ChrisDDD View Post
So here's a very basic description of how it works... It doesn't partition your SD card, it just creates a folder of its own, and then sub-folders to hold the different roms you install. When you install a rom, it basically creates images of the usual Android partitions - system, data, cache, & boot. These are standard .img files, just like the ones Clockwork creates when you do a backup. After the images are created and wiped (formatted, which you should do initially) it installs your rom into these essentially the same way as Clockwork installs a rom to your phone's actual partitions. I assume it modifies the kernel that comes with each rom to mount the image files on the SD card instead of the phone's partitions.

When you want to boot a rom, it just replaces your current boot image with the modified one and restarts the phone. With the modified boot image, the system, data and cache images on the SD card are mounted to the correct locations and Android starts up none the wiser. The rom will initially run a little slow, because the SD card is slower than the internal memory, but after things get cached it speed up considerably.

When you want to reboot to another rom, or back to the phone's rom, Boot Manager again swaps boot images that mount the desired rom's partitions (in the case of the phone's rom) or files (in the case of an SD card installed rom).

When you first run Boot Manager, it makes a Clockwork flash able backup of your current boot image, which you can flash if a rom hangs or loops on startup. Alternatively, you can also simply boot into recovery and do an advanced restore, choosing just the boot image to restore from a backup. It accomplishes the exact same thing.

It can be a little hit or miss, with some roms just plain refusing to start through Boot Manager, but it does work and when it does, it's pretty amazing given what it's actually doing.
So basically upon installing the app you need to setup your phone so that way you can properly install a ROM, follow these steps:

1. Go into the supersu(or superuser app) and then go to settings then disable logging or click none.

2. Then go into the BMP app and press the menu button on your phone, not the app, and go to settings. Once in settings put a check mark in force large boot.img, screen on during install, and then go into variables, leave tegra alone but change the sdcard block to show mmcblk1p1. Then press finish and let the app restart. By the way I didnt change any of the sizes of the .imgs but feel free to do so. But be warned do not decrease the size of the system.img only increase it, if desired.

3.Then after you've done the above you need to setup the phone rom. Click on 'Setup Phone' under phone rom and follow that process to setup your phone rom.

4. Once your phone rom is setup you may begin to install a zip to rom1 or rom2 or whatever slot you want. This is the tricky part. I have done tons of reading and most people say that if your using CWM, which us g2x'ers do, then you will probably have a better chance of getting a bootable rom by restoring from a nandroid backup you did versus installing new.

5. So after you decide which path you will take, nandroid backup or fresh rom install, choose install. If you choose a fresh rom, wipe system, data, and cache right away. If nandroid, then wipe after the install.

6. Now once you have clicked install put your phone down, DONT MESS WITH YOUR PHONE AT ALL! PUT IT DOWN AND WALK AWAY OR SOMETHING! Don’t mess with it, text from it, xda from it, dont even use the screen as a mirror!!!! lol seriously the app is picky and while under the .img creation process you want nothing to mess that up or you will not get it booted. You may however drag down the notifications bar to follow the progress of the install.

7. Once its complete, tap the install complete notification in the notification bar and let the app do its thing to finalize the install and get you back to your rom selection screen. Now if you did a nandroid back up here is where you click 'manage slot' and then factory reset the backup you did. Just do it, dont ask why.

7.1 Also so if you desire to install gapps and/or possibly a different kernel, now would be the time to do so while your here. I have read mixed reviews of doing this process right after the rom installs. However when I set up my rom1, I booted into it first all happily then realized I had no gapps. So I had to reinstall BMP on rom1 then boot back to phone rom and then I installed GB gapps and had no issues booting back into rom1.

8. Once the above steps are done if your feelin lucky go ahead and tap on boot the rom you installed, and if all goes well it will boot up.

9. If it boots up you need to post confirmation here!!! Provided info such as phone rom and the info on the sd rom you used and slot number and such.


Hopefully it will just work for you. I have done all the above steps using HFP 2.1 as my phone rom and only been able to get 1 bootable rom. Being it was for testing I used HFP as my phone rom and as well as my rom1.

So if the above steps dont wortk out for you and your boot lopped or what ever, then turn your phone off and reboot into cwm. You have 2 options to resolve the boot issue you just created. 1, you may go to restore then advanced restore then restore your boot. Or 2. select install a zip and nav to the bootmanager folder then phone rom then flash the update zip there.. then reboot and you should be back at your phone rom.

Here is a basic run down of everything that I have done so far:

When I first started working on this project I wasn’t doing any dev'ing to change any of the stuff in the boot.img. I just changed settings in the app per all the research I did. So when all was said and done I restored HFP 2.1 to ROM1 and it actually booted!! And it works lovely btw.. I can still boot into this rom today. I then decided to pass the word and ways that I created the working rom1, well I nor anyone else I passed the info to was able to get it working. Only one other person was able to confirm that rom1 works but only after I copied all my rom1 info and sent it to him for testing.. and he was able to boot into my created rom1… As I see it, it was a blue moon event that I have yet to repeat. So I thought eff it lets do some dev'in so I unpacked the boot.img from rom1 then compared that to the unpacked boot.img from rom2 that I created in my trial and error experiences. So in doing so I noticed 4 differences; 1, the mount points obviously, 2, in the sbin folder had a ueventd file from the working rom1 was a text file viewable by gedit in ubuntu. In rom2 it was just a non-readable file. 3, in the init.rc file was also missing a chmod command for system, (the command is in rom1 but not rom2) and 4, there was a ueventd.tegra file that was in rom1 that wasn’t in rom2, but everything else is the same. So I decided to plug and play with the differences to see if she boots and no go. I don’t understand why its boot looping because I am using the same rom as phone rom as for rom1 and rom2. So it boot looped. So I had to restore my boot.img many times in cwm.

So then I said eff it lets do some more research, then I noticed in the .zips folder plus the individual rom folder there are .zips that will let you flash via cwm if you get boot loops and 'should' get you booting to your desired sdrom. I then tried that way and no go.. so then I opened up the zip and had a look at the internals.. first there is the moveboot.sh file that the app runs in cwm flash the given boot.img. I then checked out the meta-inf and opened up the updater-script thinking that the app wasn’t actually flashing the boot.img which is why it loops... Well I think im half way right. However the script itself is lil dodgy... first thing I noticed was at the end of the script they have a command to cp the log from /tmp to /sdcard/bootmanager well the command was wrong so it never copied the log. So I fixed that. I also saw that the assert command was pointing to ‘boot’ instead of mmcblk0p5, so I changed that too. Then I decided to do away with the assert command and the moveboot.sh file they have going on to utilize the same functions that the kernel zips use, which is a kernel folder that holds the boot.img and a run_program that dd's the boot.img to 0p5. plus I even updated the update-binary that the file uses. I used the one from the g2x nullifier as I know that one was made for our phone and should have no issues.. plus there was a noticeable difference in the sizes of the provided binary to that replaced binary. So with the updated.zip file I then rebooted into cwm to flash that being that I was using a different command to flash the boot.img as well as the other changed stuff and still it boot looped. So as of now the only thing I don’t think ive done was grab the boot.img from rom1 then change the mount points, only change that, and then use that for rom2 and see if it boots. I don’t think I’ve done that yet. But every dam process I do I get boot loops. So basically I have came to the conclusion that it’s now NOT a boot.img issue being that I have done everything to change the boot.img and to make sure it flashes, which it does indeed and now creates the log too… I think maybe it has issues with the system.img as that’s what comes next in the boot process. But that’s just my hypothesis. I won’t be able to confirm this till I liberate rom1’s boot.img then change the mount points to point to rom2 and then see if it boots.. if it don’t work then that would mean to me that there is an issue with system.img created. But that’s just my hypothesis…

What I don’t understand is why the eff when I didnt hack the app I got a working sd-rom, but when I do change some stuff with it still don’t work!!???!! I guess maybe ill just edit/hack the apk to see what’s up.. This is getting way more complicated than it needs to be, since it worked prior to all my major changes to the script its using for flashing and the boot.img and what not. Anyone have any ideas feel free to add them.

My next steps are to edit rom1 boot.img one last time to change the mount points to point to rom2 and then if that’s a no go then it’s got to be the system.img that’s getting created. By the way this whole process I have only been restoring my nandroid backup for HFP 2.1. I have not attempted to flash new as with thru my research more times than not people would get a bootable rom via restoring versus flashing new.. so if anyone wishes to experience an sd rom let me know, ill send you a link to download my rom1 to get it going. Mind you that its not perfect and you need a class 4 or better sdcard. Everything works but it just takes a bit longer to load things and get things cached as its on the sdcard and not nand. Also if you have any input or are wishing to help pm me I need more heads to get this sorted as I can’t be the only one who knows how to edit scripts and unpack imgs and such. Either way I will continue to do this until I get it right damit!!! Oh and I just ordered a class 10 sdcard to help with this process…

That was copied from the other thread that mustangtim started. Last night when I went home the first thing I did was change the mount points on rom1 to reflect rom2, I changed nada else, then I tried to boot it... it boot looped. So maybe its a permissions issue or the system.img.

So just as a proof of concept and before anyone calls bs on my work/findings Here is the link to my rom1 that boots and is HFP2.1. *Update, 'm just going to
leave it on my DB for now till I find something better I guess. xda wont let me attach the file since its 233MB. Oh well here is the link :

Code:
 
Here it is, my Rom1 HFP 2.1. 

I have also attached my updated script file to flash back to rom1, for now. 
The boot.img points to rom1 instead of phone rom, ill add to phone rom 
as well, just not the now. :) Feel free to flash this via cwm versus 
restoring...

Also this is part of the this: the ‘.zips’ folder you need to replace the file in
that folder as well. It’s an update file for rom1 to flash the boot.img.



..
If you’re going to use this you need install a random rom to rom1 then replace those created files in rom1 with these files in the 7z file..

So I am doing this new thread to get the devs or people with know how to help me out with my findings. I have edited the boot.img so much I could pretty much re-write everything in there by now including using magic to create to my own kernel eff!! lol jk but seriously I need people with knowhow to provide confirmation of go or no go. Basically I have people whom have helped out but It seems that I'm the only one who has dug this far into this app(unless i've been misinformed) and I have no one on my level to talk with except the init2winit devs. Which are very helpful btw.

And lastly:

Quote:
Originally Posted by Conap View Post
Guys if it's failing to make the boot.img first make sure your using the market version....others have released cracked versions of our app which they broke...if your using the actual market version just send me a pm or email support@init2winitapps.com and send your log.txt from BootManager folder on sdcard and we'll get it straightened out. Thanks.
or post here or PM me, I'm always down to help out.


Also thanks go to the init2win team, Gflam and Conap as they started this app. and as well to Mustangtim as he brought me into the light of BMP.

So you got all that???!!!??? Now lets get this party started and get full support for dual booting. I will not rest until I get this working. Thanks for your time and possible assistance.
Attached Files
File Type: zip BootManager-rom1-signed.edited.zip - [Click for QR Code] (2.78 MB, 1603 views)





 

Team Hellfire

SGS3: CM10
G2X: CM7 || CM9
Kindle Fire: CM7 || CM9
x0xhellx0x's ROM Guides: SGS3 || G2X || Kindle Fire
Nullifier: G2x || Kindle Fire
The Following 11 Users Say Thank You to da-pharoah For This Useful Post: [ Click to Expand ]
 
da-pharoah
Old
(Last edited by da-pharoah; 25th April 2012 at 12:07 AM.)
#2  
da-pharoah's Avatar
Recognized Contributor - OP
Thanks Meter 1,591
Posts: 2,676
Join Date: Mar 2009
Location: Seacoast near Joppa

 
DONATE TO ME
Ok so since I have a book above I thought this is a good place for links and such...

So just incase anyone is curious, here is the Official Boot Manager Manual

Here is a nice link for Tips and Tricks while Installing ROM's that so far has good info to help you watch via adb what the BMP is doing in its creation process.


Some FAQs:

When should I set up my phone ROM?

Set up your phone ROM EVERYTIME you install a new ROM to your phone so you can get back to your phone ROM and won't get stuck on your SD ROM.

My SD ROM seems to lag how can I fix this?

SD ROM lagging may be due to a few things which all have easy fixes. First fix is that most of you have class 2 cards which are what usually come with your phones. These have a much lower read/write then cards of a higher class, we recommend a class 6 card or above. Another easy solution is overclocking merely install a better kernel and use CPU Boost (or any other overclock app) to overclock your phone.

Can I nandroid my SD ROM slots?

Yes and no you can't nandroid them in the traditional sense of the word using recovery but this app works as a recovery for your SD ROM slots and you can back up your ROM slots within the app in the Manage Installed ROMs section which works as a nandroid for your slots by fully backing up your slots to your sdcard which can later be restored.

What if I want to change the sizes of my images, how may I determine the individual sizes easily?

Easiest way is to open up terminal emulator in your app drawer. Type 'su', then grant permissions if need be, then type 'df -h' and it will display such information. You may also use adb in the same fashion. Connect via usb, open up command prompt/terminal and get adb connected and then type 'df - h' again and the same info will show. I will say this again just because, do not decrease the size of your system.img ever! Unless you want mad issues!



Here is the changlog link and just for heck of it the info based on that link:

Code:
V3.2.6
Fixed DroidX/Droid2 Install issue
Fixed UI theme issues
Fixed issue with spaces in name of pic when selecting photo for screen shot

V3.2.5
Fix to allow continue of install if no boot.img is found.

V3.2.4
Added support for HTC Rezound
Added support for rom's with multiple boot.img's
Added support for rom's made for multiple phones
AutoDetect sdcard for usb mounting
Fix for installing ICS gapps
Optimized SDRom Install process
Added support for Motorola RAZR
Added install queue

V3.2.3
Fixed issues with rom's not showing when on emmc on Droid Incredible
Fixed issues with not showing correct booted rom in app
More improvements to sms sync(all rom's will need updated app for changes to apply)
Fix issues with loader
Fixed issue with switching to backup server when main server goes down
Fixed 1x1 widget to show unlimited rom slots
Added 2x2 widget that works with unlimited rom slots

V3.2.2
Fixed force close for img's over 1Gb when resizing
Fixed current booted rom displaying correctly on gnex
Fixed issue with wrong busybox downloading on gnex which should fix alot of install/boot issues

V3.2.1
Fix for errors causing installs to fail.
Fix for some of the licensing stuff.
Removed sdbooster prefs from Galaxy Nexus(Since they don't have sdcard).

V3.2
Changed 4 sd slots to infinite slots!
Galaxy Nexus Support
Sms and Call Log synced between ROMs (you choose what ones too also requries updating boot manager in all slots)
License Check extended to a week
ROMs do not need market installed for boot manager to run (requires updating boot manager in all slots)
Hide su toasts (superuser elite only)
Fix for force close when setting screen shot in MIUI rom's
Thunderbolt defaulted to force large boot.img
Fixed unsupported device using a key
Manually setting variables only accepts numbers

V3.1.1
Fix for various force closes in rom installs and Nand restores

V3.1
Added su binary check
User selectable colors for everything
Better navigation (press title for quick action)
Added compatability for new twrp backups
Better compatiblitlity with memory tweak scripts(i.e. supercharger script and liquids default scripts)
Fix for install process being killed by android
Fix for some themes erasing img's
Fix more force closes during install
Force smaller boot.img option in settings(Fix for some phone's who's boot.img won't fit on the phone after BootManager edit's it)
Improved gapps checker
Improved security
Boot Manager now accepts keys pay for by paypal (see http://init2winitapps.com/stories/BootManager.html)
Added Evo 3d GSM Support
Added notifcation sound/vibrate for finished install (turn on in settings)
Improved data check

V3.0.3
Fix some force closes

V3.0.2
Added backup server (Sorry our server dropped out)
Fixed some force closes
2nd init fixes for Liquid's ROMs

V3.0.1
Last minute UI fixes

V3.0
UI Completely redone
Includes screen shot of each slot
Custom Info
Custom Dialogs
Custom Animations
Custom everything!
Bug Fixes
Added Droid 2 Global support
Screen shot with long press of search

V2.2.1
Bug fixes in file browsers
File browsers only show relevent files
Kernel installer fix
Droid 2 bug fix

V2.2
New security (more advanced and requires data only once a day)
Installs no longer require data
Added Italian translation thanks Black-Ice
Droid X support
Droid 2 support
Fixed status bar notifications
Fixed phone rom rebooter if gapps aren't installed
Bug fixes

V2.1
Restore android_secure to sd from nandroids
Added TWRP nandroid support
Added CWM tar nandroid support
Added Spanish translation
Made widgets easier to use
SD Booster added (Change SD read cache for better preformance)
Added current settings to manually set variables.
Added option to keep screen on during install in settings
Fixed usb layout
Updated Security
Bug Fixes

V2.0
Install now runs from the foreground (status bar)
Restore Nandroids to slots also in the foreground
User can cancel installs as they run
4 new themes added including one by apophis9283
Some phones such as tb moved to new install code (Fix for some sense rom's) 

V1.3
Added third theme to app (Red Theme)
Added 4x1 widget and new widget styling
Fixed in app messenger
Added support for Htc Evo 3D
Added support for Htc Sensation
Added Support for Htc Incredible 2
Added Support for Htc Incredible S
Added Support for Htc Desire S
Added support for LG Ally

V1.2
Added option to reboot to phone rom to install gapps in license check dialog
Better error checking and error logging
Automatically install's  ext2 libs if not present
Moved Set Names to Manage rom's
Fix for add-on's not installing correctly
Better compatiblility for rom's that use data2ext or apps2sd(user must set larger img's in manual variables)
Trash cleaner added to extras
Better Fix for WiFi issues on Droid 1
Added display to show what rom you are booted into
Fix for updater-script not found errors
Added support for Htc NexusOne
Added support for Htc MyTouch4G
More compatiblity for ext4 support

V1.1
Fix WiFi issues on Droid 1
Fix bug in rom installer for setting permissions correctly
Fix bug for cache size not setting correctly in setting variables manually 
Fix for decimals entered into partition sizes causing force close
Fix force close in widget
Fix force closes in installer
Added Wipe data/Factory reset to Manage Rom's section
Added code to show what file's are being unzipped in dialog
Added support for rom's that extract files to sdcard so the files actually end up on your sdcard
Added support for Htc Desire (apps2sd and data2sd rom's support is experimental. Please email if you test it and it works/doesn't work)
Added support for Htc Inspire4g
Added support for Htc DesireHD
Added option to use ext4 filesystem if rom's support it-Experimental Won't work with all rom's.
Added log.txt file to sdcard to log errors during install

V1.0
Initial Release





 

Team Hellfire

SGS3: CM10
G2X: CM7 || CM9
Kindle Fire: CM7 || CM9
x0xhellx0x's ROM Guides: SGS3 || G2X || Kindle Fire
Nullifier: G2x || Kindle Fire
The Following User Says Thank You to da-pharoah For This Useful Post: [ Click to Expand ]
 
dylyxcore
Old
#3  
dylyxcore's Avatar
Senior Member
Thanks Meter 43
Posts: 312
Join Date: Feb 2010
Location: LA
YEZZZ

Current:
Nexus 5
EHNDROIX V
ElementalX

Intel i7 970 4.0 OC
Asus / Nvidia / G.Skill

Retired:
T-Mobile Galaxy Note II
Google Nexus 7 (2012)
GSM Galaxy Nexus
HP Touchpad
HTC Nexus One
HTC G1

Google+
Instagram
Tumblr
 
jookdakang23
Old
#4  
jookdakang23's Avatar
Senior Member
Thanks Meter 841
Posts: 1,144
Join Date: Feb 2009
Location: Florence South Carolina

 
DONATE TO ME
glad to finally see this here!
 
da-pharoah
Old
#5  
da-pharoah's Avatar
Recognized Contributor - OP
Thanks Meter 1,591
Posts: 2,676
Join Date: Mar 2009
Location: Seacoast near Joppa

 
DONATE TO ME
Quote:
Originally Posted by jookdakang23 View Post
glad to finally see this here!
indeed... hopefully it wont be before too long that I get this app fully supported for us!





 

Team Hellfire

SGS3: CM10
G2X: CM7 || CM9
Kindle Fire: CM7 || CM9
x0xhellx0x's ROM Guides: SGS3 || G2X || Kindle Fire
Nullifier: G2x || Kindle Fire
 
Core Memory
Old
#6  
Core Memory's Avatar
Senior Member
Thanks Meter 732
Posts: 1,285
Join Date: Oct 2011
Location: Toronto
This app will be extremely useful for G2X owners and makes the G2X more versatile and desirable.
 
jookdakang23
Old
#7  
jookdakang23's Avatar
Senior Member
Thanks Meter 841
Posts: 1,144
Join Date: Feb 2009
Location: Florence South Carolina

 
DONATE TO ME
Quote:
Originally Posted by da-pharoah View Post
indeed... hopefully it wont be before too long that I get this app fully supported for us!
idk how you get it booted. lol i keep getting bootloops
 
da-pharoah
Old
#8  
da-pharoah's Avatar
Recognized Contributor - OP
Thanks Meter 1,591
Posts: 2,676
Join Date: Mar 2009
Location: Seacoast near Joppa

 
DONATE TO ME
Quote:
Originally Posted by jookdakang23 View Post
idk how you get it booted. lol i keep getting bootloops
Are you using the files I supplied or the ones that BMP created for you?





 

Team Hellfire

SGS3: CM10
G2X: CM7 || CM9
Kindle Fire: CM7 || CM9
x0xhellx0x's ROM Guides: SGS3 || G2X || Kindle Fire
Nullifier: G2x || Kindle Fire
 
x0xhellx0x
Old
#9  
x0xhellx0x's Avatar
Recognized Developer
Thanks Meter 2,900
Posts: 1,324
Join Date: Oct 2011
Location: Shirley, NY

 
DONATE TO ME
Woo hoo good job bud

Sent from my LG-P999 using xda premium

If you really really enjoy this buy me a coffee so I can stay up all night and make more goodies Coffee

Current Device: LG G2x,Kindle Fire,Samsung galaxy s 3
Current Rom: Hellfire Jelly ,HellFire Kindle
Current Kernel: Hellfire
Android version: 4.2.2
HellFire Family

The Following User Says Thank You to x0xhellx0x For This Useful Post: [ Click to Expand ]
 
da-pharoah
Old
#10  
da-pharoah's Avatar
Recognized Contributor - OP
Thanks Meter 1,591
Posts: 2,676
Join Date: Mar 2009
Location: Seacoast near Joppa

 
DONATE TO ME
Quote:
Originally Posted by x0xhellx0x View Post
Woo hoo good job bud

Sent from my LG-P999 using xda premium
LOL thanks bro.... Go Team Hellfire!!!!





 

Team Hellfire

SGS3: CM10
G2X: CM7 || CM9
Kindle Fire: CM7 || CM9
x0xhellx0x's ROM Guides: SGS3 || G2X || Kindle Fire
Nullifier: G2x || Kindle Fire

The Following 2 Users Say Thank You to da-pharoah For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes