[ROM][1.6][1.0.0]DreamServer (2013-02-02) - G1 Android Development

Introduction
The DreamServer ROM makes the T-Mobile G1 (HTC Dream) a low-powered headless Linux server. The DreamServer ROM provides only the essential services and libraries required in order to start ADB and Wi-Fi. There is no Dalvik (and thus no Android user interface), which maximizes the resources available for server use.
WARNING
The DreamServer ROM is only intended for use by those comfortable with Linux. Once the DreamServer ROM is installed you will no longer have an Android GUI or user interface of any kind, and you will not be able to run standard Android applications or even USB-mount the SD card. The only device interaction you'll get is via ADB (and of course your custom recovery image).
Download
dreamserver-1.0.0-build.tar.gz (11.6 MB)
Revision History
1.0.0, 2013-02-02, dreamserver-1.0.0-build.tar.gz (11.6 MB), http://kidsquid.com/files/dream/dreamserver-1.0.0-build.tar.gz
Initial release
Prerequisites
Rooted T-Mobile G1 (HTC Dream) with custom recovery image that has the ability to restore nandroid backups.
Verified working adb connection via USB cable.
SD with a FAT file system (not ext2). The DreamServer ROM uses fsck_msdos to check the SD card before mounting it.
Wi-Fi access point.
Familiarity with Linux and shell scripts.
Installation
Meet all the prerequisites in the previous section.
Perform a nandroid backup and make sure you also have an update.zip on the SD card for whatever boot ROM you are currently using. Due to the extremely limited nature of the DreamServer ROM (see the WARNING above), you'll want to formulate your escape route now.
Under your existing rom, go to the Wi-Fi settings and forget any networks that you will not be using. Verify that Wi-Fi connects to your desired network.
Copy /data/misc/wifi/wpa_supplicant.conf from the phone to the root of the SD card as wpa_supplicant.conf. You'll need this in order to connect to Wi-Fi.
Copy the dreamserver-x.x.x.zip to an SD card, and install the ROM via your custom recovery as normal. No wiping of the internal DATA or CACHE partitions are necessary, as these are not mounted by the DreamServer ROM.
Reboot the phone.
When the device boots, it will turn off the backlight during init so you know that it did not hang. Wait for a while (around 30 seconds) and access the device with adb shell.
Customize the installation by adding init.sh and cleanup.sh scripts to the root of the SD card. See the "Run-time Configuration Files" section in the README file.
When you want to reboot, use the reboot command. Note that /system/bin/reboot is a shell script that runs cleanup tasks prior to rebooting. If fifosh is running, you can also reboot cleanly from within a chroot jail: killall -USR1 fifosh
Please see the README included in the tarball for additional information (key locations and files, how-to's, rebuilding the ROM, etc).
The tarball also contains example configuration files for a Debian chroot environment that sets the time with NTP and starts sshd and lighttpd.
Credits and Copyright
DreamServer was created by Jeffry Johnston, 2012.
This ROM was originally based on a 1.6 (Donut) ROM by dwang that I found to be reliable. My filesystem modifications are extensive, but the
kernel and busybox from that ROM are used unmodified. Source:
Thread: http://forum.xda-developers.com/showthread.php?t=567023
Title: [ROM][32B/Dream][Dec23][Dwang][Donut][Speed and Stability][v1.17.1]
Filename: dwang-v1.17.1.zip
Download: http://files.androidspin.com/downloads.php?dir=dwang/ROM/
Existing programs and files are copyright their respective owners. Any customizations that I have made are released to the public domain, except for the tools programs I wrote, which are released under GPLv2.

Hey cool! I doubt I wold use this, just currently don't have a reason, but its awesome to know its here! I'll test it out though as I'm curious what all could be done here, thanks!
Sent from my Nexus 7 using xda premium

demkantor said:
Hey cool! I doubt I wold use this, just currently don't have a reason, but its awesome to know its here! I'll test it out though as I'm curious what all could be done here, thanks!
Sent from my Nexus 7 using xda premium
Click to expand...
Click to collapse
Thanks for trying it out! I expected the audience might be pretty small for this, but it gave my old phone a new lease on life, and I decided it was worth sharing. I often do a lot of small-time serving of web pages, IRC bots, and such. Nothing that requires a powerful machine or much bandwidth, so I didn't want to leave my main system on all the time. With this I have a completely silent server that uses a minimum of power. And of course it was fun learning more about my favorite Android device.

Thank! I was looking for something like your rom for my little log-what-and-where-my-car-does-with-obd2-and-gps-project Downloading right now You've just made my day

How was this done?
This is a very interesting project, how would one go about making this? like what files to mess with to remove JIT and other things?
Good Job @calamari

Wow. I just have to tear this thing apart and examine its innards.
I've used a HTC mytouch as a server before, but didn't take the time to rip dalvik out. Seemed like too much work that would lead to replacing a lot of functionality with shell scripts, and saying my coding skills are sub-par is an extreme understatement
Sent from my Evo V 4G using Tapatalk 2

Wow this sounds pretty awesome. Would you by chance be able to make a guide so I can do this with my heroc?
Sent from my HTC One V using xda app-developers app

Really great thing!
Just one questions:
Is it possible to access the camera?
I think about setting up a little wireless ip cam.
dadoc

KShion619 said:
This is a very interesting project, how would one go about making this? like what files to mess with to remove JIT and other things?
Good Job @calamari
Click to expand...
Click to collapse
whoshotjr2006 said:
Wow this sounds pretty awesome. Would you by chance be able to make a guide so I can do this with my heroc?
Sent from my HTC One V using xda app-developers app
Click to expand...
Click to collapse
I don't remember the full process (lots of trial and error and learning). However, you can download dwang's original ROM and compare his files against mine to determine the changes made. Full sources are included for any of my custom additions.
dadoc said:
Really great thing!
Just one questions:
Is it possible to access the camera?
I think about setting up a little wireless ip cam.
dadoc
Click to expand...
Click to collapse
I would assume so, but I haven't attempted it. There are several files in /dev that seem camera related: /dev/pmem_camera and /dev/msm_camera/*. Under Dalvik, you could try writing a program that replaces those and saves the I/O to files for analysis.

Related

[MOD]Epic 4G Dual Boot Support -- NOW WITH APP!!!

Dual Boot Support
DualBoot Helper APP is now on the market! (See bottom of this post for more info)
DISCLAIMER: I am not responsible for anything, ever. It is not my fault if you do not read. I do not explain things because I enjoy banging on the keyboard. If you do not read this entire post before jumping in then do not expect me or anyone else to be much help. By following this guide and any links YOU assume all responsibility for your device and anything that happens with it.
What is it?
Dual booting allows you to run two separate roms on your device at one time. It is done by intercepting the mount points during the startup of the device. This is accomplished by checking the sdcard for a specifically named file when the kernel first loads and uses the appropriate files to boot with the correct partitions. Reading from the sdcard is slower than reading from the internal memory of the phone so the speed of your sdcard will drastically determine the speed any rom runs. On the same note a rom flashed to the sdcard will take longer than usual on the first boot.
What does it do for me?
Running two separate roms has many uses for just about everyone. Users can use dual booting to try different roms, themes, apps, modifications, or anything while keeping their existing installation intact. The uses are just about endless. Besides testing different roms, this allows the user try these things and make sure they are compatible and stable before pushing the changes to their internal memory. Rom developers have all of the above options plus a few. Rom developers can additionally use dual booting to test builds of their roms without fear of soft bricking their device. For advanced users, you can mount the partitions of the other rom (be it sdcard or internal) and fix bad apk files or messed up files. The options really are limitless!
What do I need?
Sdcard 2GB or larger
Dual boot compatible kernel
Other things I should know...
*The kernel MUST support BOTH roms you flash. Unfortunately this means you can NOT mix froyo and gingerbread roms. Make sure you know what the kernel supports before you flash anything!
*If you compare roms, benchmarks will hold no value due to the sdcard being so much slower than internal memory.
*Faster sdcards will perform better than slower ones. Note: the stock 16GB sdcard is a class 2 which simply classifies it's minimum speed. A higher class sdcard will more than likely perform faster but the class rating is a minimum and not a maximum. It is entirely possible that a certain class 2 card can out perform a different class 6 card. Keep this in mind when researching to buy a new faster sdcard. More info in this post.
*First boot takes longer than usual. Up to 15 minutes! Please wait until the rom boots and the initial media scanner is done before you judge usability.
*Using a rom from the sdcard will cause the sdcard to wear faster. This is due to many more reads and writes of data than normal. The Epic simply does not have the internal capacity to run dual roms on the NAND. That being said the sdcard is our next option. While it may reduce the over all life of the sdcard keep in mind there are other android devices like the Nook Color and the other Galaxy S phones that have internal sdcards running the Android operating system. My personal opinion with is with other devices running off internal sdcards and with the price of sdcards getting cheaper and cheaper it was worth it to explore this option for the Epic.
Ok ok, so how do I get started?
I am going to break the steps down into sections. Please read everything to ensure you understand what all is involved in getting everything working. I recommend making a backup in Clockwork Mod and saving it to your PC before you even get started.
Section 1 - Setting up the environment
Step 1. Flash a compatible kernel (Kernel developers, PM me if you add my dual boot support to your kernel and I will update the list below) Remember you can NOT mix a eclair, froyo, or gingerbread roms and the kernel MUST support both roms!
Currently compatible kernels:
Genocide 2.0 Supported Roms: EC05, EB13, and DK28
Section 2 - Preparing sdcard
Important information!!!! This will destroy ALL data on your sdcard so if you lose pictures of your dog, cwm backups, nudies of your spouse, etc then you can't blame me. BACKUP YOUR SDCARD!
The easy way:
Reboot into recovery mode with a program like Rom Manager, Quick Boot, or type 'reboot recovery' from a terminal. (NOT 3-finger boot to recovery...this will NOT work)
The easy way WILL erase your sdcard with NO confirmation....you have been warned!
Choose one of the following flashable zips to automatically partition your sdcard
DualBoot_Partition_RFS.zip
DualBoot_Partition_EXT4.zip
The manual way:
Reboot into recovery mode with a program like Rom Manager, Quick Boot, or type 'adb reboot recovery' from a command line. (adb commands assume you have a working install of the Android SDK)
While in recovery issue the following commands:
Code:
adb shell
cd /sbin
./dbpart.sh --help
I put many hours into the partitioning script to make it as simple to use as possible. Simply follow program usage instructions.
Section 3 - Preparing a rom
Since we have blank partitions on the sdcard we need to populate them with data. There are multiple ways to accomplish this and you can choose which solution best suits your needs. I am not going to cover ALL methods here but enough to suffice any likely scenario needed.
The dd method will clone your current setup to the sdcard (these commands may take up to 15 minutes)
The easy way:
Flash this dd script: DualBoot_Clone_to_sdcard.zip
The manual way:
Code:
adb shell
dd if=/dev/block/stl9 of=/dev/block/mmcblk0p2
dd if=/dev/block/stl10 of=/dev/block/mmcblk0p3
dd if=/dev/block/stl11 of=/dev/block/mmcblk0p4
Preparation is complete. Please skip down to booting from sdcard.
The flash method is for flashing a new rom to the sdcard.
The easy way:
There is no sure fire easy way just yet. Stay tuned though.
The manual way:
This method is not that difficult so there is no need to be intimidated by it. It requires editing a few lines of the script that Clockwork Mod executes when flashing a rom or addon. For this example I am going to use a file named epicrom.zip but you can use any name you wish.
Step 1. On your PC, open epicrom.zip (I recommend using a program like 7zip)
Step 2. Navigate to the META_INF\com\google\android\ folder.
Step 3. Drag the file updater-script out of the zip to your desktop.
Step 4. Open the updater-script file with a text editor such as notepad (I recommend notepad++ or textpad)
Step 5. Change every instance of /dev/block/stl9 to /dev/block/mmcblk0p2
Step 6. Change every instance of /dev/block/stl10 to /dev/block/mmcblk0p3
Step 7. Change every instance of /dev/block/stl11 to /dev/block/mmcblk0p4
Step 8. Delete the entire line for any lines that contain /dev/block/bml7 or /dev/block/stl7 to disable flashing another kernel and breaking dual boot support.
Step 9. Save the file and drag and drop it back into epicrom.zip and let it replace the old one.
Note: If you get a status 6 or some other error when trying to flash it is likely you made a typo or your text editor did no save the updater-script file correctly. Recommended action is to correct the typo and/or use one of the recommended text editors note in Step 4.
Section 4 - Flashing to sdcard
Flashing a rom from this point is the same as you usually do. Put the modified rom on your sdcard and flash with Clockwork Mod like usual. I recommend doing a backup in Clockwork Mod BEFORE you flash in case you messed anything up by accident and end up flashing over internal memory when you meant to flash to the sdcard.
Section 5 - Booting sdcard
To boot from the sdcard place a file in the root of your sdcard called 'bootsdcard'. If you named it correctly upon reboot, the kernel will load the rom from the sdcard and not internal memory.
To boot back into internal memory simply remove this file from your sdcard and reboot.
You can switch back and forth using this method. If the file is there it boots sdcard, if the file is not there it boots normally. Pretty simple right?
Section 6 - Other flashables (not roms)
Themes, addons, and anything else that is flashable with Clockwork Mod must be modified in the same fashion as the rom. Use the same procedure documented in Section 3, The flash method.
Kernel Developers:
If you would like to add dual boot support to your kernel please refer to this commit: https://github.com/Rodderik/Genocide-Kernel/commit/a5dfd9f369ae4f2c90c1e7fc7d8995f88f72bd01
I will update this section if I push any specific changes to dual booting.
Now with an APP!
DualBoot Helper
VenumX coded up an APK to work with Clockwork Mod to run the scripts.
http://forum.xda-developers.com/showthread.php?p=15486144#post15486144
Questions, concerns, gripes, or complaints can be left in this thread. If you need to report any problems please be as detailed as possible.
woot
Thats my boy!!!! Make me proud!!!!!!!!!!
w00t! go man go!
Holy ****! This is huge! Thanks!
Sent from my SPH-D700 using Tapatalk
OMFG this is way amazing ;P
Thr genious once again with another first
Sent from my SPH-D700 using XDA Premium App
Edit
nevermind...
good work!!!!!!!!!!!!
davidrules7778 said:
I got a question...
Would i be able to run dual versions of android
Ex 2.1 and 2.2
or 2.2 and 2.3
if the kernal is compatible?
Click to expand...
Click to collapse
if the kernEl was compatible yes...but none of them are...and likely won't be
Good damn job bro.. Let's keep the dev community developing
Rodderik said:
if the kernEl was compatible yes...but none of them are...and likely won't be
Click to expand...
Click to collapse
what if u made one of the eclair kernal compatible or gingerbread whenever we get custom kernals for it?
Or is it not possible to make eclair kernals compatible?
i think i could make a GB kernel now.. but you wouldnt be able to mix gb with froyo or eclair, because a GB kernel wont boot those builds..
Awesome work bro! Amazing...simply amazing!
chris41g said:
i think i could make a GB kernel now.. but you wouldnt be able to mix gb with froyo or eclair, because a GB kernel wont boot those builds..
Click to expand...
Click to collapse
yup i'm going to help chris41g put together a gb kernel for you guys
as far as eclair...honestly who still uses eclair? and why?
Rodderik said:
as far as eclair...honestly who still uses eclair? and why?
Click to expand...
Click to collapse
Just what I was thinking.
Tested on EC05 just now. I uhh... likey? =)
to bad no multi android versions though =(
why cant the kernel read off the sdcard? do you need drivers from samsung once again?
Shoulon said:
Tested on EC05 just now. I uhh... likey? =)
to bad no multi android versions though =(
why cant the kernel read off the sdcard? do you need drivers from samsung once again?
Click to expand...
Click to collapse
well the kernel is stored in bml7 and called by sbl/param during boot so unless we can get a bootloader to intercept the initial loading of the kernel and pass it off we are stuck with one kernel at a time
Very Nice Work !!!
Hey rodd... I think you should work on an aosp gingerbread kernel ... this is a great advancement in devlopment man... right when it was slowing again
Sent from my SPH-D700 using XDA App
this is amazing, thanks for this!!
You cannot make a cross OS kernel. We cannot integrate this into GB yet because there is no GB source, no GB source, no custom kernel. This is Froyo only, and well, someone else can make an eclair only kernel, but that is stupid.

What the Deuce; Our cousin can Dual Boot

Well whaddaya know, the HTC Desire has taken on a new amazing feat; it can now dual boot ROMs. While I sit here in jealousy I must ask, how is this possible? I mean is it device specific? I'd love to dual boot on myTouch, I have 3 SD Cards just laying around chilling, and they would be really useful for this.
http://forum.xda-developers.com/showthread.php?t=1173309
We're always missing out on some, this is on many htc devices I've noticed, including things like the Cwm4 recovery. I wish I could help get those things on our phones.
Sent from my HTC Glacier using XDA App
What is dual boot?
Sent from my HTC Glacier using XDA App
Google: What is dual boot? ANSWER: A dual boot system is a computer system in which two operating systems are installed on the same hard drive, allowing either operating system to be loaded and given control. When you turn the computer on, a boot manager program displays a menu, allowing you to choose the operating system you wish to use.
Click to expand...
Click to collapse
In our case it would be the device your using is partitioned for two seperate areas in which two independent Roms are installed, when you first power on the device you get a boot manager that gives you a choice to boot into one or the other.
The issue with doing this with a phone is the two Roms you choose would have to be able to run on the same Kernel. So if your running a Sense Rom and you decided to install an AOSP requiring a different kernel on the other partition you would run into some real issues.
This is completely doable on our device, the question is how important is it for anyone to have and would you mind giving up battery time for the feature, YES this will cause you to drink up some power which is something most Devs work hard on to keep consumption down.
EDIT: You can follow the same instructions here but there maybe a few things you need to do in C for this to work properly I didn't look to far into it, Also I would upgrade the SD Card as your going to have to have 3 partitions so an 8gb will get real crowded quick if you try to do this. The least I would try this with is a 16gb considering all of the files you may have already on your sd card that apps need for cache, pics, storage, ect.
I'll see what I can do with it after I pick up a 32gb sd card but it shouldn't be too hard.
Orical said:
In our case it would be the device your using is partitioned for two seperate areas in which two independent Roms are installed, when you first power on the device you get a boot manager that gives you a choice to boot into one or the other.
The issue with doing this with a phone is the two Roms you choose would have to be able to run on the same Kernel. So if your running a Sense Rom and you decided to install an AOSP requiring a different kernel on the other partition you would run into some real issues.
This is completely doable on our device, the question is how important is it for anyone to have and would you mind giving up battery time for the feature, YES this will cause you to drink up some power which is something most Devs work hard on to keep consumption down.
EDIT: You can follow the same instructions here but there maybe a few things you need to do in C for this to work properly I didn't look to far into it, Also I would upgrade the SD Card as your going to have to have 3 partitions so an 8gb will get real crowded quick if you try to do this. The least I would try this with is a 16gb considering all of the files you may have already on your sd card that apps need for cache, pics, storage, ect.
I'll see what I can do with it after I pick up a 32gb sd card but it shouldn't be too hard.
Click to expand...
Click to collapse
That was mentioned in the Desire HD thread. They say if you want to use a Sense and an AOSP ROM, you're going to have to use the Sense kernel and deal with the problems that may occur, like no bluetooth. Additionally, it seems to break Wifi for almost everyone who use it. Nevertheless its freaking awesome, and something I'd love to do.
There's not much to this and it can be implemented easily. I did it a different way, but the way the guy on that desire HD thread works much more elegant than my way did (although my way allowed for two different kernels).
To understand how this works, you first have to understand the boot process. When you turn on the phone, the bios starts the radio and then the radio starts the SPL which contains the information for partitioning, location of boot on nand, etc.
Unless you interrupt normal spl boot (which would take you to the other two boot options, spl and recovery), the spl looks for the "init" program in the specified boot partition.
This init program can be anything. From a basic linux perspective, it could be a simple script to set-up devices and then just toss user control to a command line (for basic linux usage) or, in Android's case, it runs the init scripts (device.init.rc and init.rc) and has the kernel run the whole Android stack.
What this guy did was make his own init program (I haven't looked at the thing since I'm at work) which, from what I read, is just a small binary, which possibly relies on two different init scripts to boot either from nand (mmcblk0p25) or sdcard (mmcblk1pX [depending on your partitioning]).
The disadvantage to this is that, as he stated, you can only use one kernel, since boot is still starting as normal and the spl is booting to the boot partition which only contains one kernel (you can toss in more, but only one will be started by the spl) and then his init program takes care of the rest of the bring-up.
The way I did it was having two boot images for two different builds, my regular nand rom (which would boot when booting normally) and my SD build (which would boot instead of recovery). All this requires is flashing a boot.img to recovery and then modifying the init.rc to boot from SD (mmcblk1pX) instead of nand. The clear disadvantage, ofcourse, is the loss of recovery, but by using this guy's method, I could have a menu on the SD boot to boot either the SD build or a recovery (means a modified recovery rather than a regular boot.img).
Both options are easily doable on any rooted device. The one thing lacking currently is a recovery that will allow to update.zip install to sdcard (I'd suggest using partitions 4 for system and 5 for data, since 2 and 3 are historically been used for sd-ext and swap).
So you guys can just find a recovery dev, point him to this thread, and show him my post to see if he can make such a recovery (should be easy) and it could become mainstream feature of rooted androids.
Bump. This would be amazing to port over. This would be donation worthy.
Sent from my HTC Glacier using XDA Premium App
im trying to get madmaxx to compile the mt4g into that amazing 4ext recovery he made. It's like amon_ra recovery but better!
Sent from my HTC Glacier using XDA Premium App
You can dual boot on the MT4G with Boot Manager,available in the Android Market, though it cost 2.99 but it does allow you to run two separate ROMs.
I got BootManager but i need to set everything manually and i dont know them can someone help me with these?
What is your sdcard block?
What is your system's size in mb?
What is your data's size in mb?
What is your cache's size in mb?
I have MIUI DemonSpeed 1.29 and the 8gb sdcard that comes with the mytouch
harei84 said:
You can dual boot on the MT4G with Boot Manager,available in the Android Market, though it cost 2.99 but it does allow you to run two separate ROMs.
Click to expand...
Click to collapse
is it officially supported? I have a fear of it writing to the wrong partition and fμck up the device.
GazaIan said:
is it officially supported? I have a fear of it writing to the wrong partition and fμck up the device.
Click to expand...
Click to collapse
its not supported it asks the questions i posted in the first page <
I really know nothing about the app just saw a feature about it on Lifehacker.com
It works on myTouch 4G. It is supported, but support is weird. Im beta testing one that works and for the most part everything works as it should, but the app recognizes the phone on Virtuous Unity and doesn't recognize it in MIUI. I'm triple booted at the moment (I can install 2 more ROMs, but I don't want to) and MIUI is on the SD Card and doesn't recognize my phone.
Bottom line is, it works, try it. It's definitely worth the $2.99.
Doesnt work
Sent from my HTC Glacier using XDA Premium App
I take that back it does running VI 1.31 double shot and miui
Sent from my HTC Glacier using XDA Premium App

[ROM]DocHoppyRom NEXTBOOK 7 Premium*updated DocHoppyRom Full On Rootv2.0*2/14/2012

I was working on a ICS based hoppy rom. Unfortunately I just had a catastrophic screen failure, apparently when my laptop bag fell last night, it landed with enough force to shatter the screen on my nextbook! Oh well. it may be a while before I can work on anything to further the version I was working on.
FYI- Due to work, my time is very limited for working on the next version of Hoppy Rom. I apologize in advance. The company I work for is
setting up new engine test cells in China, and my self and 2 other people are main points of support! again Sorry for anything new taking so long!
DOCHOPPY HAS BEEN SIGHTED (Other than on a DAYZ server...Stay tuned.
Ok I have decided to pass along what I have been working on.
Warning***
This is for the Nextbook 7 premium ONLY!
Known working on Nextbook 7 premium tablets with serial numbers starting:YF1011
DocHoppy Presents!
DocHoppyRom Full On Root v2.0
and
DocHoppy Cramfs Style 3.0
Based off the official update image released by nextbook.
Major thanks to FINLESS BOB!!! GREAT HELPFUL GUY!
PRESENTING DOC HOPPY ROM
CRAMFS STYLE 3.0
AND
FULL ON ROOT v2.0
Disclaimer: I am not responsible for Bricked Tablets. This is known to work on tablet with SN starting with YF1011, and some YF1211.
First you will need to decide which version of the Rom you are going to load. The CRAMFS Style version has SU but you CANNOT write to the /system directory. This is a good all around Rom for those who may need SU but do not need to write to /system.
Full On Root is just that, you have full read write to the /system and can customize the Rom to your hreats content.
HOW TO INSTALL:
TO FLASH CRAMFS STYLE 3.0 Put the UPDATE.IMG file from the Cramfstyle Folder onto your SD card, while tablet is on and follow the on screen instructions.
After running the self extracting Zip file you will have a directory containing the following folders and files.
Drivers (folder)
CramfsStyle(folder)
FullonRoot(folder)
Log(folder)
Language(folder)
Readmefirst.txt
Rkusb.log
RkusbComm.dll
Setting.ini
RK29update.exe
TO FLASH CRAMFS STYLE 3.0 Put the UPDATE.IMG file from the Cramfstyle Folder onto your SD card, while tablet is on and follow the on screen instructions.
To flash Full On ROOT, Plug your nextbook into your PC via usb cable. Turn your nextbook over and with a safety pin or something of similar size, press and hold the reset button for 2 to 3 seconds.
Run the RK29update.exe
Select your Rom files via the boxes containing the .... And navigate to the correct directory for the rom you want to install.
Insert eache file in order according to the update tool.
Clear IDB. (this is like a lowlevel format for the Rom tool:
After the Tool says OK. Select Run. This will begin to load the Rom onto your tablet. It will go through loading and then checking the Rom install.
After the Rom loads and the tool comes back with an OK, patiently wait for the tablet to reboot, and load the new ROM. If the tablet is still connected to the pc via USB when the rom boots it will show the screen allowing you to select weather or not to turn on USB storage. Press the home key and you will be given a choice of Golauncher or Rklauncher. (go lock is a screen lock program.)
Enjoy the Rom!
Disclaimer: I am not responsible for Bricked Tablets. This is known to work on tablet with SN starting with YF1011, and some YF1211.
Features for both Roms:
Complete and correctly working market. It now correctly associates the tablet to your gmail account allowing purchases from market.
Launcher 3.0 as well as Go launcher ex. Launcher 3.0 was pulled from an rk2918 firmware3.0 update and put into this rom.
Google Calendar is now back and working correctly.
Original Email is back and working correctly.
Included Kindle App
Included Estrongs file explorer.
Both have SU though the Cramfs version cannot write to SW.
Removed Apps Added in last release and return to more of a original rom state.
Rom is pretty clean. And seems speedy.
Cramfs Style 3.0 Rom has 200mb internal Ram +/-
Full On Root 2.0 has 894MB of Free Internal Ram.
Cheers!
DocHoppy
www.freaktab.com
Keep in mind this is the first version of this ROM. There will be updates and changes made.
FUTURE CHANGES:
Custom Theme Changes.
More Tweaks to the system.
Long Term Wants:
Power Menu change to include recovery boot.
Power Menu change to include restart.
This is a work in progress.
Known working on Nextbook 7 premium tablets with serial numbers starting:YF1011
Linked here for image.
Non Add Showing Link.
DocHoppyFullOnRoot2.0
New Cramfs style Rom is still Available Here.
DocHoppyCramfsstyle3.0
To install DocHoppyRomv3.0, rename .img file to update.img, download update.img file, copy to SD card, and follow the prompt.
DocHoppyCramfsstyle3.0
Enjoy.
Disclaimer:
Not responsible for bricked tablets.
Enjoy!
Also visit www.freaktab.com
So freaking sweet, great work on RW!
I used Wendal's tool to decompress the cramfs file system.
As for the /system, Because the device uses cramfs, and based on everything I have read, using Wendal's tool to decompress the file system, make the changes, and compress is the only way I can see to be able to
customize the rom for the device. The image is rooted, but after the update.img is compressed, the /system file remains read only. I tested this using root explorer, but anything requiring su works fine. But all hope may not be lost, I was reading on a chumby forum someone suggested using mkfs.jffs to make it writable, but further down it notes that you would need to change the kernel (easy enough to recompile I think), to utilize a different file system. The boot loader would also need to be modified, something I am not ready to try and tackle just yet, I think I would be bricking my nextbook pretty quickly.
It is a start and I am actually learning a lot as I go.
Any thoughts or suggestions are welcome.
I am definitely a long time user / cyanogenmod / aosp fan, but as far as ripping open .img files its definitely new territory, I tried to find an internal SD card like the nook has, to maybe dump it, but I cannot find such a beast. Any progress you make is awesome. So do things like root explorer work, just not on /system due to cramfs?
Correct, root explorer does work, but due to cramfs, it does not allow you to toggle to rw from ro on the /system.
Working on taking apart apk's and customizing and rebuilding and resigning next.
just flashed this rom and it works great!
How would I go about doing a custom boot animation or image?
... even if it means flashing a new rom from clean?
This is great. Thanks. The only question I have is why do I see so few items in Market? Does it have anyhting to do with compatability?
Calendar & Sync Access
First, thank you for your work.
Before I update by Next7P, have you included Google Calendar and Sync access in this update?
I use MyPhoneExplorer and will need calendar sync to work so I can fully use for business.
Thanks.
There is another method to get Google Market on the Next7P, I am a new user so I can not post the link, but google , forums Whirlpool net au archive 1756859
, very easy and works great, but cannot get sync to work.
Dan,
Thanks for the responses!
sgtfoo : You can use Wendal's rk29xx tool to take a copy of my rom image, or the original update downloadable from nextbookusa.com, and
unpack it. You then have access to the system directory in an editable format. you can go into the system folder /system/media and replace the bootanimation.zip file with another one. Just be sure the image format is 480x 800 and that the zip file has 0% compression ratio. After you make the changes, just repack .img file via Wendal's tool and reflash.
dodoclub : Not sure why. I have a full market. You might try clearing the data and cache for the market. My market shows pretty full, I.E. I got 31050 entries when I searched for facebook in the market.
Danno65: Actually that is something I have been working on. I can get my google calendar to sync, currently I am using a calendar from the market called Jorte, which works great, how ever, googles actual calendar.apk closes unexpectedly, I am thinking it is just a version problem with the calendar, but haven't had a lot of time to follow up on it.
FYI here is the link to Wendal's tool, which makes it much easier to work on the update.img file.
https://docs.google.com/leaf?id=0B8hUXYDeoy_hNTc1YTVkYTMtNTNjZS00YjI2LTgyNDYtYjRjZjFmODdiZTQ1&pli=1
Cheers!
If you have any request or questions please feel free to ask, I will help anyway I can.
Thanks Dochoppy
Got one of these tablets for Christmass to replace an old broken tablet I use for work.
Google hosts our work email, so I still need to get Contacts and Appointments going, but I maybe able to side load them.
Noticed build.prop still has ro.secure=1. This prevents adb from having root access??
Calendar & Sync Access
DocHoppy,
I came across a post where the "Calendar.apk" and "CalendarProvider.apk" files must be in the "system/app" directory to work properly, I tried to copy these files to the above directory but found it to be read/only, will wendalls tool have to be used to get access to the directory?
Also, did you get your google calendars on your desktop to sync with Jorte on the Next7P, I tried but no luck.
Thanks
Dan
The updated image file worked great, thanks again
Thank you so much for your work in building a new rom for this thing. I am anxiously awaiting a new filesystem so we can have true root. How do we manage to recompile the kernel for ext4 support and change the /system fs?
Hello, first of all, thanks for your work!
I am having trouble loading this rom. it says there's an invalid image file in my sd card and if I want to delete.
Now, I don't know if my tablet is a never or older version of what you guys have...
Next7p
2.3.1
kernel: 2.6.32.27
build: v2.0.7.....
my serial is also different from alot..it starts with YF0511
any help or tips?
markmatters said:
Hello, first of all, thanks for your work!
I am having trouble loading this rom. it says there's an invalid image file in my sd card and if I want to delete.
Now, I don't know if my tablet is a never or older version of what you guys have...
Next7p
2.3.1
kernel: 2.6.32.27
build: v2.0.7.....
my serial is also different from alot..it starts with YF0511
any help or tips?
Click to expand...
Click to collapse
I would say the serial number would have something to do with it, check on the site for nextbook and see if your serial is in the same *batch* as ours, if the original serial is in a different group, im assuming the hardware may be slightly different? If so, you can always use his method to repack the original with root.
First off I would like to say that I was very pleased when I came across this thread from another one. I haven't flashed this ROM yet, but plan to. Thank you for your work on this as I have been searching the whole internet since I got this thing [4 weeks now] for some sort of custom ROM. It is hard to use this tablet when I have ICS on my Captivate and Vibrant. GB just isn't as cool.
One thing I hope we can work on is root access, so we then can use Titanium Backup. Then we won't have to manually reload everything when new releases come out.
With all that being said, if there is anything I can do to help, I would love to. Like I said, I plan on flashing this probably tomorrow or Tuesday. Thanks again.
For the record, I got titanium backup working fine on this rooted rom. it is capable. You just need to reboot after it restores a backup.
i'm new to android. glad to see rooted rom finally, keep it up!!!
i have a clarification, any improvement in the booting time? my device took 1min30sec (power ON to ready to use, for me, 90sec seem like not fast enough).
Good luck on improving boot time. And besides a tablet is best used when on all the time... try using the suspend state to quickly wake it. We're just starting with the early versions of this rom... give it time to grow.
Sent from my N7p using XDA App
Build.prop editing
Okay so observation:
Our tablet is not recognized as a "tablet" by the Android market, only and android device.
What prop would I have to edit in order to have us recognized as I tablet. I noticed this when:
I finally managed (through some internet tutorial before this rom) get the market working (the first version, not 3.1+). And when I downloaded apps (I'll use Minecraft Pro as an example) I noticed that the way mine looked and the way the tablet version looked via android market photos and Youtube, ours looks like an enlarged phone version rather than a tablet optimized version. What can I edit to fix this?
Flashed this today... so for it works great. Love the new boot animation. Great work and can not wait for future releases!
Sent from my Nextbook Premium 7 (Doc Hoppy's Rom v02) from the XDA app.
---------- Post added at 12:16 PM ---------- Previous post was at 12:03 PM ----------
One thing that would be great on a future release [not sure if it is possible yet with out r/w], would be a bigger data partition for apps. Moving everything large to the SD is ok, just takes longer to boot those apps. A kernel that would allow voltage control app [like CPU Master] to work also. Just a thought!

[DEV] Lenovo Ideapad A1 Kernel Development/Testing

Warning/disclaimer: This thread is intended for those who already know how to compile a kernel and have a working knowledge of Linux and its derivatives. There shouldn't be a great deal of risk involved, but you are responsible for what happens if you decide to follow these instructions.
Polite request: Please don't post replies to this thread that aren't of a technical nature directly related to compiling, modifying, or testing the kernel.
Introduction:
It appears as if Lenovo have released a buildable and bootable kernel source. I've done some preliminary testing with it. However, it would be better if we could get lots of people building and running the kernel, so that we can spot any remaining problems. This is also an opportunity to start hacking it to add/fix features such as USB OTG, etc.
Kernel source:
Get it from the Github repository at: https://github.com/gmarkall/lenovo_a1_07_kernel
Toolchain:
The Makefile seems to suggest that Codesourcery 2010q1 has been used by Lenovo to compile the kernel. Get it from https://sourcery.mentor.com/sgpp/lite/arm/portal/release1293, and make sure that the arm-none-linux-gnueabi-* binaries are on your path.
Building the source:
You may wish to edit the Makefile around line 192 to set CROSS_COMPILE=arm-none-linux-gnueabi- instead of the hardcoded path that is the default.
Then, to build the kernel:
Code:
make distclean
make a1_07_defconfig
make uImage
Booting the kernel
Normally, Android devices have two boot images that consist of a kernel and a ramdisk. One boot image is for the recovery, and the other is for the Android system. This makes it safe to flash a new boot image containing an untested kernel for the Android system, since the recovery can always boot up using the other boot image. However, the A1, by some bad design decision, only has one kernel - the bootloader always loads the same kernel, and just loads a different ramdisk depending whether it is to boot into recovery or system. As a result, it is not safe to flash a kernel to your A1 unless it's already been tested, since a bad kernel will make it impossible to boot from the internal memory, and you'll need a bootable SD card.
The solution to this problem is to make a bootable SD card for loading the kernel and ramdisk from. A bootable SD card consists of two partitions:
* A small bootable VFAT partition, that holds the X-Loader (MLO), U-Boot (u-boot.bin) and the kernel (uImage).
* An ext2 partition that holds the root filesystem.
In order to create a bootable SD card, use the omap3-mkcard.sh script that is attached below. To invoke it for making /dev/mmcblk0 a bootable SD card:
Code:
sudo omap3-mkcard.sh /dev/mmcblk0
You may need to hack the script if your SD card device isn't a /dev/mmcblk* one, since the script searches for partitions denoted "p1" and "p2" - this may need changing to just "1" and "2" respectively (thanks Xbdesign and Brancaleone for this).
This will create the necessary partitions, set the bootable flag, and format them. You will then need to mount the first partition (e.g. /dev/mmcblk0p1), and copy MLO and u-boot.bin to it (also linked below). Then, copy the uImage that you built from your kernel tree, which will be located in /arch/arm/boot. You can now unmount this partition.
Next, mount the second partition (e.g. /dev/mmcblk0p2). This will need to contain the same set of files that the initial ramdisk contains. There are two different ramdisks that you might want to use - one is from the Cyanogenmod 7 build, and the other one is from the stock system. Download links for these are also below. To extract the ramdisk, copy it onto the SD card second partition, then run the following commands (assuming the ramdisk is called ramdisk.ub):
Code:
dd if=ramdisk.ub of=ramdisk.img.gz bs=64 skip=1 # Strip off the U-Boot header
gunzip ramdisk.img.gz # Unzip
sudo cpio -idmv < ramdisk.img # Extract the cpio archive
Then, unmount the second partition of the SD card.
You should now be able to remove the SD card and insert it into your A1. Power down the A1 and power up again, and it should hopefully boot from the SD card and load your kernel. If it's booted from the SD card and loaded your kernel, you should be able to see that it was compiled on your host by looking in Settings -> About Phone -> Kernel Version.
Troubleshooting:
This is not a comprehensive guide, just a few pointers to where a problem might be - please post replies to the thread to get troubleshooting suggestions.
System boots up, but is not running my kernel - it didn't boot from the SD card. If the A1 is plugged into the charger/USB, you sometimes need to reboot multiple times before it boots off the SD card (I think it doesn't always turn off fully when the charger is plugged in).
The static Lenovo logo flashes up over and over again - it's booted from the SD card, but didn't manage to load your kernel
The static Lenovo logo comes up and stays there/goes to a black screen - it's probably loaded your kernel and mounted the root file system, but failed to mount /system. Try running adb shell to see what happens. If you get something like
Code:
/system/bin/sh: no such file or directory
then your kernel is running but /system isn't mounted.
IRC Channel
Join #ideapad-a1 on irc.freenode.net to discuss the kernel and other A1 development-related topics!
Download Links:
MLO
u-boot.bin
omap3-mkcard.sh
Ramdisk for Cyanogenmod 7
Ramdisk for ROW 2643 stock release
I've added the two ramdisks that I suspect will be most common - if you need another ramdisk, you'll have to extract it from an OTA.
Also, I compiled a tun.ko - www.doc.ic.ac.uk/~grm08/ideapad/tun.ko
Here's a cifs.ko - http://www.doc.ic.ac.uk/~grm08/ideapad/cifs.ko
EDIT: AutobahnA1 and infraredevans have confirmed that tun.ko works on ROW_2643.
EDIT 2/3: Please test out cifs.ko! (It doesn't work - it needs slow-work.ko. Will get that done when I can. Thanks to Ilikecokethree on the Lenovo forums for pointing that one out).
你懂中文吗,大神!
我是中国人 关注你的帖子很久了,我不懂英文,用翻译软件看的大概,我们这里很多人支持你,都在用你的rom 很棒!比联想官方的好多了,谢谢!
I think I did exactly the steps as you told, but it still boots the original kernel, may something be wrong? Thank you very much.
PS: I'm a chinese too, and my English is not good either
gmarkall said:
This is also an opportunity to start hacking it to add/fix features such as USB OTG, etc.
Click to expand...
Click to collapse
Please do not forget to try the WiFi-based geolocation, which is also missing!
I wish I had the knowledge to work on it myself but I am far from taking over such tasks...do not have the slightest idea about how these things work.
Good luck and please keep us informed!
geoponer said:
Please do not forget to try the WiFi-based geolocation, which is also missing!
Click to expand...
Click to collapse
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
betabox said:
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
Click to expand...
Click to collapse
Also, it's working in CM7.
hohoxu_hao115 said:
I think I did exactly the steps as you told, but it still boots the original kernel, may something be wrong?
Click to expand...
Click to collapse
Sounds like it's booting from eMMC instead.
Can you post the partition table of the SD card as listed by fdisk, and also a directory listing of each of the two partitions? I ask this to confirm what's happened - seems like you're the first person to follow these instructions, and it's quite possible I made a mistake somewhere.
betabox said:
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
Click to expand...
Click to collapse
Apologies for the off-topic, but I think that we are discussing two different things here: I am referring to the Geolocation bug, which prevents me from e.g. checking in with Foursquare by using only WiFi location information (active GPS signal is needed) while you have solved the Geocoding bug, which has nothing to do with the Geolocation one...
Please correct me if I am wrong.
@Graham: I plan to install the CM7 that you have been working on (with the feedback from other users - I keep an eye on that thread!) but since I use my A1 for professional purposes as well, I would like to make sure that everything is working fine before moving to CM7. Apologies for not being able to contribute to the beta testing of CM7 but I am really looking forward to seeing a version based on the source code provided by Lenovo, which I think will lead to a more stable version of your CM7. I cannot thank you enough for taking the time to work on this, really!
geoponer said:
Apologies for the off-topic, but I think that we are discussing two different things here: I am referring to the Geolocation bug, which prevents me from e.g. checking in with Foursquare by using only WiFi location information (active GPS signal is needed) while you have solved the Geocoding bug, which has nothing to do with the Geolocation one...
Please correct me if I am wrong.
Click to expand...
Click to collapse
I think that whether it works in CM7 or not, it almost certainly isn't a kernel issue. I'll test it by signing up for Foursquare and give it a try out on CM7 to see if it works later on. Will post my findings in the CM7 thread.
Hi Graham,
just gonna pile up several questions/thinkings and feel free to comment them the or answer on your liking
We do have few hickups on CM7 but I am more excited about idea of having proper recovery then ironing current CM rom that works more than satisfactory right now. Do we have enough code (I assume that target here is u-boot) on our hands that someone can implement necessary changes to internal partitions and boot procedures?
what is your opinion on replacement of u-boot with something else? for example LK loader or to be more precise with its current HD2 implementation known as cLK. it allready has some neat features like HBOOT like GUI, ability to change partition sizes on device itself (without computer), ability to boot from different partitions (would be nice to have android and ubuntu side by side loaded on our devices) and last but not least it has fastboot support enabled...or is it better way fill up u-boot with desired features if possible?
so...just my wishful thinking...not enough knowledge on my side to do anything regarding all this just hoping that some of you, more capable guys gets interested in this
dusko_m said:
Hi Graham,
just gonna pile up several questions/thinkings and feel free to comment them the or answer on your liking
We do have few hickups on CM7 but I am more excited about idea of having proper recovery then ironing current CM rom that works more than satisfactory right now. Do we have enough code (I assume that target here is u-boot) on our hands that someone can implement necessary changes to internal partitions and boot procedures?
what is your opinion on replacement of u-boot with something else? for example LK loader or to be more precise with its current HD2 implementation known as cLK. it allready has some neat features like HBOOT like GUI, ability to change partition sizes on device itself (without computer), ability to boot from different partitions (would be nice to have android and ubuntu side by side loaded on our devices) and last but not least it has fastboot support enabled...or is it better way fill up u-boot with desired features if possible?
so...just my wishful thinking...not enough knowledge on my side to do anything regarding all this just hoping that some of you, more capable guys gets interested in this
Click to expand...
Click to collapse
I do want to implement something that's pretty much as you describe. My biggest motivation is that it's currently not safe to flash a kernel since you can break both system and recovery that way in one go - I really want to make the boot process more robust.
gmarkall said:
Also, I compiled a tun.ko - tun.ko
I haven't tested it yet - is anyone able to try it please?
Click to expand...
Click to collapse
The module loaded without a problem on my 2643_ROW Kernel. Installed "Rooted AnyConnect" from the "Play Place". Now I can connect to my company VPN.
gmarkall: YOU ROCK! THANK YOU!!!
tun.ko
Graham
The tun.ko module works perfectly with openvpn on 2643_ROW.
I can now access my Amahi home server,awsome.
Thanks a lot you are doing a great job.
Dont want to sound presumptuous but any chance of a cifs.ko to go with it .
Cheers
Infraredevans said:
Dont want to sound presumptuous but any chance of a cifs.ko to go with it .
Click to expand...
Click to collapse
I'll give it a whirl... give me a few minutes.
gmarkall said:
I'll give it a whirl... give me a few minutes.
Click to expand...
Click to collapse
Here it is: http://www.doc.ic.ac.uk/~grm08/ideapad/cifs.ko
To compile it I had to copy md5.h from another kernel source to fs/cifs in the kernel tree. I also had to edit init/Kconfig so that CONFIG_SLOW_WORK defaulted to yes. I configured the module with the options:
Support Legacy LANMAN servers which use weaker security
CIFS Extended attributes
CIFS POSIX attributes
and without statistics, debugging, or experimental features. Let me know if this is a suitable config - I could always tweak it and build another one.
arm-2010q1-202-arm-none-linux-gnueabi.bin
Did someone manage to install arm-2010q1-202-arm-none-linux-gnueabi.bin on 64bit system?
xbdesign said:
Did someone manage to install arm-2010q1-202-arm-none-linux-gnueabi.bin on 64bit system?
Click to expand...
Click to collapse
I did - I didn't have any problems, but my random guess about how to solve it could be to install ia32-libs. If installing that doesn't solve it, can you post a bit more detail about the problem?
I am using ubuntu 10.04 LTS and just cant install / find Getlibs to install a 32-bit version of xulrunner :-(
xbdesign said:
I am using ubuntu 10.04 LTS and just cant install / find Getlibs to install a 32-bit version of xulrunner :-(
Click to expand...
Click to collapse
Do you need that to run the installer? I just downloaded the tar version instead and extracted it. I saw there was an installer as well, but I thought it would be more hassle than using the tarball so I just ignored it.

[INFO] ROM 101 + CWM Errors Solutions

Hi guys .You all know me.
I have created this thread for the sole purpose educating every newbie and noob about ROM and it's components...
Here goes
Parts of a ROM
i. The kernel.
Android (like many other Smartphone operating systems) runs on the Linux kernel. The Linux kernel was created in the early 1990’s by a gentleman named Linus Torvalds in Helsinki, Finland. It’s incredibly stable, incredibly friendly, and incredibly difficult for the layman to understand and modify. Thankfully it’s also very popular so it has been ported on to a multitude of hardware, including our Android devices.
Think of the kernel as an interface layer between the hardware and software on your device. The kernel decides when things happen, such as the LED indicator gets lit or when the soft button's LED gets lit. An application sends a request to the operating system to blink the LED. The operating system then sends the request to the kernel, which makes the light flash for the amount of time requested by the OS.
What sounds like a round-about way to get things done is also what makes the system so scalable and robust. Application developers only have to code in a way the operating system understands and the kernel makes it work on the hardware. This also keeps the application running in it’s own user-space and separate from the kernel. That means when you run the latest uber-cool app that wasn’t designed for your particular OS version, or is still very beta and it crashes, the kernel gives you the option to Force Close the application and the kernel can run untouched.
In a standard Android ROM (we will leave developer images and the like for another discussion) the kernel is bundled along with a set of instructions that tell the device how to load the kernel and the OS during boot. This is the boot.img that you see inside a zipped ROM that your not able to easily open. The device knows to extract this image to internal memory (the ramdisk) and follow a series of scripts (init scripts) to load the kernel and then the other portions of the OS. That’s what’s happening while you’re watching the boot animation. Interestingly enough this is done the same way for a PC, your smartphone, an Android tablet, or even a smart Linux powered toaster. If you’re feeling exceptionally geeky, plug your Android phone into the USB port on your PC and let the PC boot from the USB device. No, it doesn’t actually load, but you can watch the animation while it tries to match up the hardware support with what’s inside your PC. As I said, Linux is amazingly scalable and as a result so is Android.
What is a kernel? If you spend any time reading Android forums, blogs, how-to posts or online discussion you'll soon hear people talking about the kernel. A kernel isn't something unique to Android -- iOS and MacOS have one, Windows has one, BlackBerry's QNX has one, in fact all high level operating systems have one. The one we're interested in is Linux, as it's the one Android uses. Let's try to break down what it is and what it does.
Android devices use the Linux kernel, but it's not the exact same kernel other Linux-based operating systems use. There's a lot of Android specific code built in, and Google's Android kernel maintainers have their work cut out for them. OEMs have to contribute as well, because they need to develop hardware drivers for the parts they're using for the kernel version they're using. This is why it takes a while for independent Android developers and hackers to port new versions to older devices and get everything working. Drivers written to work with the Gingerbread kernel on a phone won't necessarily work with the Ice Cream Sandwich kernel. And that's important, because one of the kernel's main functions is to control the hardware. It's a whole lot of source code, with more options while building it than you can imagine, but in the end it's just the intermediary between the hardware and the software.
When software needs the hardware to do anything, it sends a request to the kernel. And when we say anything, we mean anything. From the brightness of the screen, to the volume level, to initiating a call through the radio, even what's drawn on the display is ultimately controlled by the kernel. For example -- when you tap the search button on your phone, you tell the software to open the search application. What happens is that you touched a certain point on the digitizer, which tells the software that you've touched the screen at those coordinates. The software knows that when that particular spot is touched, the search dialog is supposed to open. The kernel is what tells the digitizer to look (or listen, events are "listened" for) for touches, helps figure out where you touched, and tells the system you touched it. In turn, when the system receives a touch event at a specific point from the kernel (through the driver) it knows what to draw on your screen. Both the hardware and the software communicate both ways with the kernel, and that's how your phone knows when to do something. Input from one side is sent as output to the other, whether it's you playing Angry Birds, or connecting to your car's Bluetooth.
It sounds complicated, and it is. But it's also pretty standard computer logic -- there's an action of some sort generated for every event. Without the kernel to accept and send information, developers would have to write code for every single event for every single piece of hardware in your device. With the kernel, all they have to do is communicate with it through the Android system API's, and hardware developers only have to make the device hardware communicate with the kernel. The good thing is that you don't need to know exactly how or why the kernel does what it does, just understanding that it's the go-between from software to hardware gives you a pretty good grasp of what's happening under the glass. Sort of gives a whole new outlook towards those fellows who stay up all night to work on kernels for your phone, doesn't it?
Click to expand...
Click to collapse
ii. The operating system.
Once the kernel is loaded, the init scripts tell the Operating System to load. Android is the user interface for a custom built Java virtual machine called Dalvik. Dalvik was written by Dan Bornstein, who named it after the fishing village of Dalvik in Iceland, where his family originated from. The debate of which Java VM is superior is best left for another discussion, so I’ll simply say that DalvikVM is a register-based machine versus true JavaVMs which are stack based.
The Dalvik machine creates executable files (.dex files) which can be interpreted by the OS and run by the end user. These .dex files are OS version dependant. That simply means that applications and core functions built to work with one version of Android may or may not work well with other versions. Google provides the tools through it’s Software Development Kit (SDK) for applications to communicate with the OS.
Click to expand...
Click to collapse
iii. Core functions.
No smartphone would be complete without a set of functions that allow the device to be used as intended. Things like the phone and dialer interface, the calendar, the messaging system are core functions of the Operating System. In Android, these are run on top of the kernel as separate applications. The merits (or lack of) of providing these needed functions as separate applications is once again best left for another discussion, but this is what allows developers like HTC or Motorola to replace the standard functions with alternatives that provide a different look and feel from stock. HTC’s onscreen keyboard or Motorola’s MotoBlur contact list are great examples of this. The “little guy” isn’t left out of the mix either. Handcent SMS or Chomp SMS can integrate into the OS very well, as most of us already know.
An additional set of Core Functions are provided by Google. Popularly called GoogleBits, things like Gmail, sync, Gtalk and the Android Market are applications written by Google that give an extra set of useful functions to the OS. You’ll find these on all smartphones, as well as many other Android devices.
Click to expand...
Click to collapse
iv. Optional applications.
These are applications provided by the manufacturer to give the device even more usability. Things like the Amazon MP3 store, PDF readers, Corporate Calendar etc. allow you to do even more with your device. Remember - Droid Does
Click to expand...
Click to collapse
B. How is a ROM packaged?
In most cases a ROM will come packaged in a .zip file. The recovery image’s kernel (yes, it has one too!) has the ability to unzip and copy the contents into the correct place. Inside this zip file is a folder (META-INF\com\google\android\) that contains a script prepared by the ROM “cooker” (another of those techie terms - it means the person(s) who developed the ROM) that tells the system what to format, what to copy and where, and any file operations that need to be done. Each device does things a bit differently, but this script is where it all gets done. More on this folder later.
You’ll also see a /system folder. This is the meat of the ROM. It has the necessary OS files, the Core functions, and any optional applications the cooker decided to include. The folder is structured the same way it is on your device - /system/app, /system/framework, etc. The whole tree is usually copied over and the existing /system folder is overwritten. The cooker uses the script to tell the kernel to erase the existing system folder, copy the new folder over, and set the file permissions.
Sometimes you will also see a data folder. This usually is space set up for optional applications, including optional system tools like busybox or SuperUser white list. These applications could be placed in the /system folder, but placing them in the data folder makes it easier for the end user (you and I) to remove or update them as needed.
You’ll also notice a META-INF folder. This contains the update script we talked about earlier, as well as secure keys that need to be provided so the device knows the update can be trusted. A special note needs made here. Trusted means that the update is trusted to be in the correct form to load the device. It in no way means the ROM is safe from malicious code. Anyone is able to use a set of test keys and create a ROM that will flash and run your device - even those people with bad intentions. Flashing and running a custom 3rd party ROM is putting faith in the cooker that he or she not only knows what they are doing, but are honest as well. Also, some Motorola custom ROMs will have a small update.zip stored inside this folder to be run on first boot of the device.
Finally we are left with the boot.img file. This is the kernel and ramdisk image we discussed earlier. Your phone copies this over to be decompressed and run when the device boots.
Click to expand...
Click to collapse
2. How do I install a ROM?
In this section we’re discussing how to install a custom 3rd party ROM. ROMs from the manufacturer usually have a utility that runs on your PC to flash and load the new image.
A. Got Root???
Yes ?:good:!!!
Custom ROM’s simply will not load on devices that aren’t rooted. In theory, it may be possible to sign a 3rd party ROM with the keys that the stock recovery image will flash, but for the most part you need to have flashed a custom recovery image before you can change your device’s ROM. Instructions and tutorials on how to root your device are all over the internet. Some are good, some are bad. The hacking forum is a great place to go and learn more about rooting and how to successfully get it done on your device.
Click to expand...
Click to collapse
B. Recovery
Most Android devices have had a custom recovery image written for them. This will overwrite the stock recovery image, allowing you to flash 3rd party ROMs as well as giving extra functionality. Help with finding and flashing the custom recovery image for your device can also be found in the hacking forum. The installation of a custom recovery image also allows for a very important function. Backup and restore.
Click to expand...
Click to collapse
.C. Nandroid
Nandroid is a set of bash scripts and code written by that copies the state of your system and stores it in a folder on your SD card. You can then use the restore function of Nandroid to restore to this point at any time. This is a priceless feature and reason enough to root your phone. It’s included by default in most custom recovery images, and the code is freely available to use if you’re inclined to write your own recovery image.
Click to expand...
Click to collapse
In most situations, using Nandroid to back everything up is easy:
1. Verify you have a memory card with enough free space (~300MB to backup, ~500MB to restore).
2. Reboot your device into recovery. It’s slightly different for each device, once again hacking forum FTW!
3. Navigate through the menu and select the Nandroid Backup function.
4. Apply your choice and wait for the device to tell you it’s finished.
It’s always good practice to copy the entire nandroid folder from your SD card to a safe place. You can then copy it back to the SD card if the card is ever damaged, lost or erased.
D. Copy and Flash
You’re rooted, have downloaded a custom ROM, have your system backed up and are now ready to flash your device. This is not nearly as scary as it sounds.
1. Mount your SD card to your PC, and copy the .zip file to the root folder of the card. Don’t unzip the file, and don’t look for a folder called root. The root folder in this case means the base folder, what you will see when you mount your card to a PC or the device.
2. Reboot your phone into recovery.
3. Navigate through the recovery menu and select the flash update option. Depending on your recovery image, the file may need to be named update.zip, or you may be able to select any zip file on your card as long as it’s the correct format. The cooker knows this as well and if the ROM needs to be named update.zip it will be.
4. Apply your choice and wait for your device to tell you it’s finished.
5. Reboot.
Click to expand...
Click to collapse
It’s worth noting that many times a new ROM will require that you wipe and factory reset your devices data. While inconvenient, it’s often necessary to get rid of the old data as it may be incompatible. As long as you’re using the cloud for calendar and contacts, they will be re- downloaded and stored back on your device automatically.
Credits
The internet
And other sites related to android development
And of course me
My Galaxy R forum friends !!
ERRORS encountered in CWM Recovery
.
What is CWM Recovery ?
ClockworkMod Recovery is a custom recovery for many Android devices. It is considered to be the most popular recovery for Android due to its easily-ported nature, and integration with ClockworkMod ROM Manager by Koush(Koushik Dutta). The easiest way to recognize it is by the printed name when it first starts, and the background logo of a gear and hat.
Click to expand...
Click to collapse
ERROR STATUS 6
This is usually caused by CR/LF EOL(Windows style End Of Line) in updater-script. Change it to LF EOL(Unix Style EOL) using Linux command: dos2unix updater-script, then re-signing the ZIP, will usually fix this error.
Click to expand...
Click to collapse
ERROR STATUS 7
This is usually caused by a corrupt download, or bad file signature. Re-downloading (or re-signing) the ZIP will usually fix this.
Click to expand...
Click to collapse
We have been consistently seen and heard people facing error “Status 7″ error while trying to flash or install
custom ROMs or firmware packages on their Android smart phones or tablets with ClockworkMod Recovery. Many
of the users are nowadays facing this problem with CWM Recovery while flashing .zip files of modded or custom
Ice Cream Sandwich (ICS) or Jelly Bean (JB) ROMs on their devices. So, you have also downloaded a custom ROM,
placed its .zip file in your phone’s or tablet’s SD card, booted into ClockworkMod Recovery, selected – “install zip
from sdcard” and then chosen the .zip file of the ROM to get it installed on your device. But instead of getting
flashed successfully, if you are facing the issue mentioned below, then just keep reading this article to find out
what’s wrong and fix up the problem :
Finding update package…
Opening update package…
Installing update…
Error in /sdcard/custom-jelly-bean-rom.zip (Status 7)
Installation aborted
Click to expand...
Click to collapse
or the following error right after CWM recovery shows –
Installing update…
assert failed: getprop(“ro.product.device”) == “I9103″ || getprop(“ro.build.product”) == “I9103″ || getprop
(“ro.product.board”) == “I9103″
Error in /sdcard/android-4-1-1-ics-rom-latest.zip (status 7)
Click to expand...
Click to collapse
So, if you are facing any of these errors while trying to install the desired custom ROM package on your Android
phone or tab, then you may try a various things or steps which may turn out to be the workaround of this
problem. Here are a few tips to get this “Status 7” error fixed in ClockworkMod Recovery and flash the ROM
successfully on your device :
(1) First of all, make sure your device’s bootloader is unlocked. If it is already unlocked but you are still
not able to flash the ROM, then just extract the .zip file of the ROM into a new folder, find the boot.img file from
that directory and flash it up on your phone or tablet via fastboot on your PC.
(2) Make sure that you are having the appropriate Radio or Baseband version installed on your device which is
supported by the custom ROM you are trying to flash. Most of the ROMs requires the latest version of Baseband, so
just update or upgrade your device to the latest Baseband version and then try to install the ROM once again.
(3) Update your device to the supported / latest build of official firmware before trying to install the ROM. You can
do it from – Settings > About Phone / Device > Software Update.
(4) Make sure you are having the supported or required kernel installed on your phone or tab. If it’s not, then flash
a new kernel right away and try to install your custom ROM once again.
(5) Is the ROM which you are trying to flash really works ? Find out whether it is working for other users or not.
Click to expand...
Click to collapse
NOW
ERROR STATUS 0
This is usually caused by an incompatible update-binary in edify ZIPs. Replacing it with a compatible one, then re-signing the ZIP, will usually fix this error.
Click to expand...
Click to collapse
Now it's time for the partitions :good:
Let’s start with a list of standard internal memory partitions on Android phones and tablets. These are:
/boot
/system
/recovery
/data
/cache
/misc
In addition, there are the SD card partitions.
/sdcard
/sd-ext
Note that only /sdcard is found in all Android devices and the rest are present only in select devices. Let’s now take a look at the purpose and contents of each of these partitions.
/boot
This is the partition that enables the phone to boot, as the name suggests. It includes the kernel and the ramdisk. Without this partition, the device will simply not be able to boot. Wiping this partition from recovery should only be done if absolutely required and once done, the device must NOT be rebooted before installing a new one, which can be done by installing a ROM that includes a /boot partition.
/system
This partition basically contains the entire operating system, other than the kernel and the ramdisk. This includes the Android user interface as well as all the system applications that come pre-installed on the device. Wiping this partition will remove Android from the device without rendering it unbootable, and you will still be able to put the phone into recovery or bootloader mode to install a new ROM.
/recovery
The recovery partition can be considered as an alternative boot partition that lets you boot the device into a recovery console for performing advanced recovery and maintenance operations on it. To learn more about this partition and its contents, see the ‘About Android Recovery’ section of our guide to ClockworkMod recovery.
/data
Also called userdata, the data partition contains the user’s data – this is where your contacts, messages, settings and apps that you have installed go. Wiping this partition essentially performs a factory reset on your device, restoring it to the way it was when you first booted it, or the way it was after the last official or custom ROM installation. When you perform a wipe data/factory reset from recovery, it is this partition that you are wiping.
/cache
This is the partition where Android stores frequently accessed data and app components. Wiping the cache doesn’t effect your personal data but simply gets rid of the existing data there, which gets automatically rebuilt as you continue using the device.
/misc
This partition contains miscellaneous system settings in form of on/off switches. These settings may include CID (Carrier or Region ID), USB configuration and certain hardware settings etc. This is an important partition and if it is corrupt or missing, several of the device’s features will will not function normally.
/sdcard
This is not a partition on the internal memory of the device but rather the SD card. In terms of usage, this is your storage space to use as you see fit, to store your media, documents, ROMs etc. on it. Wiping it is perfectly safe as long as you backup all the data you require from it, to your computer first. Though several user-installed apps save their data and settings on the SD card and wiping this partition will make you lose all that data.
On devices with both an internal and an external SD card – devices like the Samsung Galaxy S and several tablets – the /sdcard partition is always used to refer to the internal SD card. For the external SD card – if present – an alternative partition is used, which differs from device to device. In case of Samsung Galaxy S series devices, it is /sdcard/sd while in many other devices, it is /sdcard2. Unlike /sdcard, no system or app data whatsoever is stored automatically on this external SD card and everything present on it has been added there by the user. You can safely wipe it after backing up any data from it that you need to save.
/sd-ext
This is not a standard Android partition, but has become popular in the custom ROM scene. It is basically an additional partition on your SD card that acts as the /data partition when used with certain ROMs that have special features called APP2SD+ or data2ext enabled. It is especially useful on devices with little internal memory allotted to the /data partition. Thus, users who want to install more programs than the internal memory allows can make this partition and use it with a custom ROM that supports this feature, to get additional storage for installing their apps. Wiping this partition is essentially the same as wiping the /data partition – you lose your contacts, SMS, market apps and settings.
With this, we conclude our tour of Android partitions. Now whenever you install a ROM or mod that requires you to wipe certain partitions before the installation, you should be in a better position to know what you’re losing and what not and thus, you’ll know what to backup and what not.
Nice thread, maybe add error status 0 for CWM
Sent from my C6603 using xda app-developers app
krabappel2548 said:
Nice thread, maybe add error status 0 for CWM
Sent from my C6603 using xda app-developers app
Click to expand...
Click to collapse
Done !!!!
Great thread, You are seriously doing well.:good:
MY thanks just ended
will use the mob app to thank u bro !!
After all you inspired me for this thread not
Moved to android general as per OP request.

Categories

Resources