[Q] The boot sequence, SDE, and dual boot - Gen8, Gen9, Gen10 Q&A, Help & Troubleshooting

I have a few questions about Archos' devices, in particular those belonging to the Generation 8 family. Here they are:
How is the partition table setup on the device and is the partition table signature checked? How are the partitions logically laid out?
When the SDE is installed and run, boot1 locks up boot0, itself and the recovery partition to prevent them from being modified. I would imagine that this type of setup would require keeping the partition table from being modified, thereby preventing dual boot. Can dual boot be achieved using the SDE without any extra modifications?
Are some of the partitions on Archos devices contained in compressed images and then loaded into the RAM in a manner similar to the way Damn Small Linux boots?
Is the recovery partition a minimal OS setup that exists to perform recovery operations or is it in fact copied in it entirety to the primary partition when recovery mode is entered?
I have realized/learned some things Linux that I hadn't noticed before such as the fact that folders like /home and /boot have their own partitions and that /boot may contain more than one kernel and that bootloaders like GRUB are actually represented in the filesystem. I don't if these are real partitions or logical partitions so I might have to do some relearning.

I'm bumping this thread.

Master Melab said:
I have a few questions about Archos' devices, in particular those belonging to the Generation 8 family. Here they are:
How is the partition table setup on the device and is the partition table signature checked? How are the partitions logically laid out?
When the SDE is installed and run, boot1 locks up boot0, itself and the recovery partition to prevent them from being modified. I would imagine that this type of setup would require keeping the partition table from being modified, thereby preventing dual boot. Can dual boot be achieved using the SDE without any extra modifications?
Are some of the partitions on Archos devices contained in compressed images and then loaded into the RAM in a manner similar to the way Damn Small Linux boots?
Is the recovery partition a minimal OS setup that exists to perform recovery operations or is it in fact copied in it entirety to the primary partition when recovery mode is entered?
I have realized/learned some things Linux that I hadn't noticed before such as the fact that folders like /home and /boot have their own partitions and that /boot may contain more than one kernel and that bootloaders like GRUB are actually represented in the filesystem. I don't if these are real partitions or logical partitions so I might have to do some relearning.
Click to expand...
Click to collapse
Partition tables are not locked. Devices are populated as normal in kernel. Partitions can be edited and the device repopulated with partprobe as normal.
The bootloader/recovery is held on a partition on mmcblk0, they are signed using a public/device encryption key, that has been broken. When the system is booted it mounts the recovery image and performs requested functions. The AOS firmware format is also encrypted, but has not been broken. The stock firmware is held on mmcblk0 as well, in an 256bit device key encrypted SquashFS(which has also been broken). It is mounted with a chroot as R/O at stock boot.
Dual boot can be achieved in multiple ways, easiest of which is installing the openAOS multiboot menu. A current limitation is that all OSes must use the same kernel, until we can get kexec working correctly(or other more dangerous solutions).
P.S. Folder's like /boot and /home can be many different things. Folders, partitions, images, symlinks, etc. The advantage of linux/debian is that everything is represented in the file system. Even sending commands to devices or modifying driver settings is done by "modifying files". For example, to flip the touchscreen's input on my A101, you write the letter "N" to a "file" called /sys/module/hid_hanvon/parameters/rotate180.
This is actually an interface to the driver for the touchscreen, not an actual file, so sending the letter N to "rotate180" tells the driver to flip the input coming from that device(hid_hanvon = the touchscreen).
If you tell me what you're trying to achieve, I can give you more details. If you are just trying to learn, you should come to the openaos IRC channel. Lot's of years of experience in there.

I didn't think bootloaders were stored on partitions. On PCs, the first stage bootloader is stored outside of any partition on the MBR.

Master Melab said:
I didn't think bootloaders were stored on partitions. On PCs, the first stage bootloader is stored outside of any partition on the MBR.
Click to expand...
Click to collapse
That's flashed on eMMC2. I was talking about the recovery bootloader. Basically, the bios is off limits, and the recovery bootloader allows updates, SDE flashing, etc. without risking bricking, as I'm sure you know.

So boot0, the root of all control on the device, is not stored in a partition, like the first stage bootloader on a PC while boot1 (or whatever special bootloader that exists for recovery purposes) is stored on its respective partition like a second stage bootloader on a PC?

I'm bumping this thread. Please explain further. What do you mean when you say "BIOS" and is boot1 the recovery bootloadr?

Master Melab said:
I'm bumping this thread. Please explain further. What do you mean when you say "BIOS" and is boot1 the recovery bootloadr?
Click to expand...
Click to collapse
Another bump.

I also want to know the partition layout of gen8 devices after installing SDE and UrukDroid.
I already installed SDE and when I plug the device to my computer I see 3 partitions:
/dev/sdb1 76295 469632 12586808+ 83 Linux
/dev/sdb2 1 30518 976563 83 Linux
/dev/sdb3 30518 76295 1464844+ 83 Linux
sdb1 - 13GB, doesn't contain a /system, but here's the menu.lst
sdb2 - 1GB, contains a /system (but i think it's not the stock android installation) ...maybe UrukDroid?
sdb3 - 1.5GB, contains a /system, but has only a few files, etc is missing for example
So is the stock android partition invisible?

I am bumping this thread.

Maybe this thread could be usefull for you : http://forum.xda-developers.com/showthread.php?t=1199450

Related

[Q] Android recovery system

HI!
I have few queries regarding the Android recovery system, and the class RecoverySystem.
1. As per my understanding the recovery system which is supposed to work from the recovery partition, does not necessarily be a android OS, but can be even plain embedded linux with bassic RFS and a workhorse application like the bootable/Recovery in the source. Even the recovery application can be different from the one in the bootable/recovery folder in SDK source.
Please let me know if this understanding of mine is correct?
I need to implement such recovery mechanism for a MMC based non mobile device. Any poiters on that?
2. Why is that the boot-loader (Hboot in phones) is doing the actual job of installing the system update , bootimage update and the hboot update? Cant the recovery system itself untar and install the "SYSTEM" update in it's respective partition and the "BOOTIMAGE" update in its respective partition from the user space application "recovery".
2. The class RecoverySystem is used to interact with the recovery system running in RECOVERY partition. Can somebody point me to some example uses the RecoverySystem class?
regards
-Nitin

[Q] Best way to backup and restore on a number of devices

Hi
I've done a bit of searching but can't find anything too specific to what I'm trying to do. Basically we have 10 Android tablets, and I want to make them all standardised e.g. have the same Apps on, configured in the same way (e.g. enterprise wireless network added).
Now the thing is if anyone messes around with them I want a really easy way to restore them to the original config which I've done.
One way I thought was to configure one fully, install Titanium Backup on it, do a full backup of apps/system data etc, and put the backup onto an SD card. Then I already have the base ROM on an SD card so if theres any problems, I can just flash the ROM over it again, install TB, and restore all the data. Would this be suitable to do to duplicate the data onto 10 tablets, and also restore the data if required?
The other thing I looked into was customising a ROM myself, don't want to do anything too tricky it'll just be a case of removing all the preinstalled crap I don't want, preloading the Apps we do want, and if possible preloading the wireless key and getting rid of the first boot initial set up wizard.
PS I've looked at installing CWM and doing whole image backups, but supposedly the tablet isnt supported (its an Ainol Novo 7 Elf 2)
Any advice would be great, hopefully theres some fairly straight forward way of managing this
Thanks
One of the reasons I integrated a full blown GNU/Linux on my devices, was the need to run full and automated backups. If you are looking into the possibility making a custom ROM, this might be a solution for you as well. I'm using BackuPC to run backups nightly, backing them up as any other GNU/Linux machine (using tar over ssh).
See the link in my signature for more information about this.
kuisma said:
One of the reasons I integrated a full blown GNU/Linux on my devices, was the need to run full and automated backups. If you are looking into the possibility making a custom ROM, this might be a solution for you as well. I'm using BackuPC to run backups nightly, backing them up as any other GNU/Linux machine (using tar over ssh).
See the link in my signature for more information about this.
Click to expand...
Click to collapse
Hi
Thanks for the reply, not too sure this would be the right option for us. I don't really need to take nightly backups, I just need to make a backup of a preconfigured image, and then put that image onto 10 other devices. Then I want to keep the original backup and have an easy way to restore it onto any devices which have been messed up. Sort of like image cloning for PCs, I want to prepare a base image, and then flash it over all the devices.
fro5tie said:
Hi
Thanks for the reply, not too sure this would be the right option for us. I don't really need to take nightly backups, I just need to make a backup of a preconfigured image, and then put that image onto 10 other devices. Then I want to keep the original backup and have an easy way to restore it onto any devices which have been messed up. Sort of like image cloning for PCs, I want to prepare a base image, and then flash it over all the devices.
Click to expand...
Click to collapse
Ok, I see. Compile the image to you likings (boot image and system partition), and then flash it using fastboot onto you devices.
Hi
Does anyone have any more thoughts on this?
I have experimented with Titanium Backup and this seems to work quite well. I have installed a ROM, and customised it e.g. installed the apps I need and configured the apps, wireless settings and home screens etc. Then I do a full apps + system backup in TB to my SD card.
Then the plan is, I can reflash the ROM onto the other device, install TB and then restore this backup. This saves my user state and wireless settings etc.
Only problems is when I flash the ROM, I have to go through all the initial set up again and also remove some preinstalled apps which I dont want. Any ways around this?
There must be something I'm missing. Why don't you install the device, walk through the setup, remove the bloatware you don't want and then dumps the disk partitions into images you flash the other devices with using fastboot? This way you'll get'em cloned, isn't it this you want..?
Of course there's still some tinkering needed once restored/cloned, such as giving them individual Google accounts etc, but you can easily fix this without re-running the setup wizard.
kuisma said:
There must be something I'm missing. Why don't you install the device, walk through the setup, remove the bloatware you don't want and then dumps the disk partitions into images you flash the other devices with using fastboot? This way you'll get'em cloned, isn't it this you want..?
Of course there's still some tinkering needed once restored/cloned, such as giving them individual Google accounts etc, but you can easily fix this without re-running the setup wizard.
Click to expand...
Click to collapse
Hi
Yes that's what I want to do! How would I go about dumping the disk into an image and then flashing?
fro5tie said:
Hi
Yes that's what I want to do! How would I go about dumping the disk into an image and then flashing?
Click to expand...
Click to collapse
There are several methods. Some boot loaders (such as nvflash for tegra based devices) can actually read back the disk partitions to a computer via the USB port. You can also on the tablet read the raw mtd device with busybox/dd. I assume you've unlocked the bootloader and gain root access to the device, since this is a requirement for flashing them as well. A third alternative is using busybox/tar, and then recreate the filesystem image using mkyaffs (or if ext3/ext4 even easier, just loopback mount an image on you linux maching to unpack the tar archive to). Once you got the images (system and userdata partitions), you flash the devices with "fastboot flash system system.img" and "fastboot flash userdata data.img". I don't believe you'll need to tamper with the other partitions.
kuisma said:
There are several methods. Some boot loaders (such as nvflash for tegra based devices) can actually read back the disk partitions to a computer via the USB port. You can also on the tablet read the raw mtd device with busybox/dd. I assume you've unlocked the bootloader and gain root access to the device, since this is a requirement for flashing them as well. A third alternative is using busybox/tar, and then recreate the filesystem image using mkyaffs (or if ext3/ext4 even easier, just loopback mount an image on you linux maching to unpack the tar archive to). Once you got the images (system and userdata partitions), you flash the devices with "fastboot flash system system.img" and "fastboot flash userdata data.img". I don't believe you'll need to tamper with the other partitions.
Click to expand...
Click to collapse
Hi
Thanks for the quick reply, much appreciated.
Unfortunately you've lost me a bit here!
Yes the device is rooted, I dont have a linux machine though.
Any chance you'd be able to provide some more specific instructions? The device is a chinese tablet from manufacturer Ainol, the model is a Novo 7 Elf 2. Unfortunately there isn't much discussion on these online so specific help is hard to find!
fro5tie said:
Any chance you'd be able to provide some more specific instructions? The device is a chinese tablet from manufacturer Ainol, the model is a Novo 7 Elf 2. Unfortunately there isn't much discussion on these online so specific help is hard to find!
Click to expand...
Click to collapse
I can provide you specific answers to specific questions, but I have no experience of the tablet in question, so you'll have to do some digging yourself first. Make sure it supports fastboot, investigate what the proprietary bootloader is capable of, see how/if you can obtain an original image etc.
One maybe easier solution, especially if you plan to restore the tablets on a regular basis, is to only make a new boot image to reflash the devices with. The only modification done is that you change the /init.rc script to mount /data and /system from the SDcard instead of from the internal nand disk device.
Once this is done, you'll power up and run the installation wizard and everything on your master tablet. Then power it down, and clone the SDcard. This SDcard now contains everything, so you'll simply restore a device by replacing its SDcard with a copy of this master card. I guess it's easier to clone a SDcard than reflashing several internal partitions. Easier to make the master as well - you don't need to dd or tar them, they are already in "image" format. If you can get hold of the original firmware, this should be quite easy without the need to preserving data from the device itself.
fro5tie said:
Any chance you'd be able to provide some more specific instructions?
Click to expand...
Click to collapse
Issue the commands "cat /proc/mtd" and "mount" on your device at command prompt (e.g. via "adb shell" or the "ConnectBot" terminal app). This shows you if the device allows you to copy the boot image from it. Paste in the output into this thread. If you believe the "clone the tablet via the SDcard" is a good solution for you, the process is in short terms something as below;
Copy the boot image to the sdcard:
# dd if=/dev/mtd/mtd2ro of=/mnt/sdcard/boot.img bs=2048 (device dependent of contents of /proc/mtd)
Remove the sdcard, insert into a computer, split the boot image info kernel + initramfs. Read http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images for instructions about how to work with the boot.img file. I really recommend a GNU/Linux environment for this.
Then edit /init.rc replacing the "mount yaffs2 [email protected] /system" with "mount ext3 /dev/block/mmcblk0p2 /system" for system and data (use p3 for data partition, the device name may be different on your tablet, see mount output).
Create an SDcard with three partitions: #1 vfat (standard), #2 and #3 ext3. Insert into you device and boot it up again.
# mount -t ext3 /dev/block/mmcblk0p2 /root
# cd /system
# tar cf - . | (cd /root ; tar xf - )
# umount /root
# mount -t ext3 /dev/block/mmcblk0p3 /root
# cd /data
# tar cf - . | (cd /root ; tar xf - )
# umount /root
This copies your partitions to the SDcard. Shutdown the tablet again.
Make a new boot.img using the instructions in the link above, using the edited init.rc script.
Now you can non-destrutive give this a try.
Place you tablet in fastboot mode (often vol-up (or vol-down) during power on).
$ fastboot devices
This vill verify the tablet is in fastboot mode. It should be listed. Then:
$ fastboot boot boot.img
Note here, only BOOT the tablet, do NOT use the "flash" keyword. This in case of the image isn't working, you'll just have to restart you tablet, and no harm's done.
Look around. Do a "mount" command. Everything works? Mount shows /data and /system from sdcard? Perfect. Now you can reflash it. Shutdown and flash:
$ fastboot flash boot boot.img
Now the device will use /data and /system from the SDcard every time. Customize your device, and then clone your SDcard and try it in tablet #2 you'll booting with your new boot.img and the cloned SDcard. Verify that #tablet #2 is a perfect clone of tablet #1. It is? Now you can flash the boot,img into all your tablets.
--------------------
But don't forget, there may be other solutions as well, maybe more suitable. This you'll have to investigate yourself.
And the usual disclaimer - you can probably not follow above by the letter. There sure is some obstacle you'll have to overcome, something non-standard, etc.
Also keep the original boot.img file for safekeeping in the case you want to restore the device's boot image some day.
Wow! Thanks for the info! This is really helpful, I need to set aside a bit of time to work through this and have a look. Thanks again its really appreciated, I'll be back with info once I've had chance to give it a go!
I certainly can't offer more detailed info than the fellow from Sweden who seems to really know his stuff...but what about making a nandroid backup of your fully configured reference tablet (I'm assuming all tablets are rooted). Ensure all your tabs have CWM recovery and copy your nandroid file to each one.
If any of your fleet get 'corrupted' you can simply restore the original, fully configured ROM.
In fact that sounds too obvious..likely I missed something about your scenario which precludes this option from consideration!
Good luck mate.
tweeny80 said:
I certainly can't offer more detailed info than the fellow from Sweden who seems to really know his stuff...but what about making a nandroid backup of your fully configured reference tablet (I'm assuming all tablets are rooted). Ensure all your tabs have CWM recovery and copy your nandroid file to each one.
If any of your fleet get 'corrupted' you can simply restore the original, fully configured ROM.
In fact that sounds too obvious..likely I missed something about your scenario which precludes this option from consideration!
Good luck mate.
Click to expand...
Click to collapse
Hi
Yes that was my first thought as well, tablets are rooted yes but there is no CWM for the tablet. Its an obscure Chinese branded tablet.
Unless there is another way to do nandroid backups?
hmm tricky situation. Catch 22 ! From what I know, your best bet is to backup all possible things through Titanium Backup given that you don't have the use of Nandroid backups. You can include wifi settings, messages etc but it's modular & not systemic.
I did a quick google search with no luck - time to upgrade your fleet dude :-0
Best of luck.

[Discussion] MTK Platform and Layout

Hi, I've been torturing a few MT6575 tablets for 3-4 months now. I have a Lenovo A2107A-F and A2107A-H. I've used SP Flash Tool several hundred times and know quite a bit about it. Mostly the hard knocks teach how to avoid the idiosyncrasies. I understand in basic ways most of the partition blocks. I've spent hours in a hexeditor and doing hex diffs between models etc. I've found at least 4 different partition layouts for A2107A* from the factory.
I'd like to start a discussion about MTK so we can figure this stuff out. These cheap Chinese phones and tablets will only get more popular. There are no sub-forums that I can figure out for this sort of talk.
What I hope we can accomplish as a community: :good:
1. Understand the pitfalls of SP Flash Tool and warn each other. (Example: Don't rename your scatter file, SPFT parses the name and makes assumptions based on it.)
2. Understand the layout of partition blocks on disk/flash.
3. Understand what each partition block is and what it's used for.
4. Understand the boot process.
5. Understand what is needed to build Android for a device. (And the source code available)
6. Share sources of MediaTek documentation.
syserr said:
2. Understand the layout of partition blocks on disk.
Click to expand...
Click to collapse
PRELOADER I assume this is the bootloader.
DSP_BL I really have no idea
MBR Master Boot Record, but why do we even have it if we have PMT to tell us where the partition blocks are?
EBR1 Extended Boot Record, but what is it for?
__NODL_PMT The partition table -- binary form of the scatter file.
__NODL_NVRAM The NVRAM block holds a list of variables and values that MTK would like preserving. These seem synced with /data/nvram
__NODL_SECCFG ?
UBOOT ? I read the wikipedia, but why do we have this?
BOOTIMG Linux kernel and ramdisk, boot and mount /, then probably boot straps over to init stuff on /system (ANDROID)
RECOVERY Recovery image, this is what boots when you hold VolUp/VolDown shortly after power on, at least my devices.
SEC_RO ?
__NODL_MISC ?
LOGO Holds animated logo data.
__NODL_EXPDB ?
EBR2 Extended Boot Record, but what is it for and why do we have 2?
FAC "Factory" on some Lenovo (exclusively?) holds OEM Vendor / Operator startup stuff, mostly chooses initial language
ANDROID The ext4 filesystem that gets mounted on /system
CACHE Performance cache stuff
USRDATA The filesystem that ends up being mounted on /data
FAT An internal "sdcard" so you have somewhere to store stuff if you don't have a real sdcard.
__NODL_BMTPOOL ?
I'd appreciate any help filling in the blanks!!!

No boot Android after reducing Windows Partition

Hello.
On a Chuwi Hi12 dualboot tablet, loaded on Windows 10, I reduced the partition "Windows", by telling me that it was the first stage to pass place of Windows (that I use little) to Android (which misses it).
I used EASUS. The manipulation was made well, in the sense that Windows always works and when I have well a free place on the memory.
Other partitions, EXT3, are always there, and nothing strange under Windows. But I cannot any more booter on Android: logo Chuwi one moment then black screen.
I can switch off and reload Windows.
It seems that the table of the partitions or one of the partitions which interest Android was modified.
Attempt to reinstall Android. Using ROM of Hackerjac (http: // forum.chuwi.com / forum.php typeid%26typeid%3D6). With Phone flash Tool Intel with flash-no-erase.json, config Recover).
Many failures (fragility driver USB? Reinstalled). At the end and at best: failure repeated on the installation of the bootloader, with message on the tablet " Failed to get partition bootloader2: Not found ". Rather clear but disappointing: the partition is not recreated?
Thus I am there to try to understand what is made by flash, and how have a gpt.bin which corresponds to a chosen distribution (editor of gpt.bin).
Thank you for your help.

Flashing DTB Partition using TWRP ?

Hello,
is there a way to flash the dtb partition using TWRP ?
I can flash bootloader, boot, system easily using twrp. But since there is no /block device for the dtb partition its not as easy like the other partitions.
Just dd'ing to /dev/dtb does not work, too.
I need to flash 13 devices mounted in a Server Rack, so it would be nice to do this by twrp and not by usb.
Greetings,
chris
Hi!
Did you ever find an answer to your question?
I figured out that /dev/dtb seems to be picking up data from either /dev/block/[email protected] or /dev/block/reserved/@0x440000, there are two identical copies of gzipped dtb.img there.
P.S. Reading the driver code I see that you can just write dtb/multi-dtb into /dev/dtb and it will be stored into both copies on /reserved partition
I wasn't brave enough to try and flash them on a running TV and risk bricking it though

Categories

Resources