[IDE] Build System for Boot Images v0.1 (Kernel, Ramdisk, Recovery Archive, ...) - Android Software Development

Hi,
Because of the need of a bootmanager and the lack of patience to type a hack a lot at the console, I created a ubuntu maverick based build system for arm crosscompiling with a script helps by building kernel, ramdisk, recovery archive, debugging via fastboot and so on. As chroot env it is very flexible, needs not to install something and runs inside all linux distris.
just extract it somewhere onto an ext partition goto the directory and type ./start
in the root of the chroot env is a README file which contains infos where is what. read it before.
it contains three tools
build (a script supports different actions, "build help" shows them)
unpack-boot (extracts a boot image into the actual directory)
unpack-ramdisk (extracts a ramdisk into the actual directory)
Download:
http://www.bisme.net/files/xda/bootbs.tar.bz2
TODO:
the chroot env is still based on a desktop version of maverick and bigger than needed, this will change soon.
PS: Bootmanager is still in work, should finish(as a trivial but working version) in the next days and is the first step to support multiboot different linux installations(also different android versions) on android tablets. But this is another story will get an own Thread here. In the meantime I hope all romcookers out there will have fun with this build system.

Related

[WIP/DEV/GUIDE] Debian Linux armhf

So following a couple of tuts that I've found on the forums I've been able to install debian linux wheezy armhf build on my tablet in a dual boot configuration with it booting off of a second ext4 partition on the microsd card along with getting the drivers/codecs from Linux4Tegra to be installed and somewhat used on debian linux.
What works:
-Wifi
-USB
-Display (doesnt use tegra drivers)
-Buttons (power, vol, rot switch [acts as wifi switch])
-Touchscreen
What doesnt work:
-Bluetooth (Untested but apparently it finds it and sets it up.)
-Audio (Detects it in the kde info center. System Settings program only says that there's a dummy output. Playing any form of audio crashes the program.)
-HDMI (with the Tegra gfx drivers it finds it but says it's disconnected even when connected.)
-Cameras
-GPS
-Motion Sensing
-Light Sensor
With the display, whenever the tegra drivers are used, it finds HDMI (as HDMI-1) and the LCD screen (as LVDS-1) but says that there is no device on the lcd screen. With that being said, it is using the fbdev driver instead which shows pink and/or inverted colors in some instances but at least it shows a gui.
Guides used:
{HOW TO} Native Debian on A500 and building your own rootfs
[BOOTLOADER][DUALBOOT + RECOVERY][BOOTMENU] Patched ICS bootloader V8 (07/06/2012)
[Dev] Native linux on Iconia
Requirements:
-an A500.
-a 16+GB microsd.
-Linux OS (Debian, Ubuntu, etc.)
-Linux 4 Tegra: Download the Ventana files under "Additional Information" and "Driver Packages"/"Codec Packages".
Ok, so here's how I've done it.
1) Make sure you have a multiboot loader and have flashed the appropriate bootloader image to the second boot partition. get the boot image from the 3rd guide under "precompiled kernel image" and flash that to the second boot partition. (be sure to check the dualboot guide above on flashing the image if you are using the bootloader that is in the guide.)
2) Have a microsd card partitioned with two partitions, one for normal data (can be any format) and a second one that is in ext4. you can do 3 partitions by adding a swap partition but the ext4 partition must be the second partition.
3) Install qemu on the host system.
Code:
For Ubuntu - sudo apt-get install qemu-user-static
4) Mount the microsd's ext4 partition.
Code:
sudo mount -t ext4 /dev/<microsd 2nd partition> /mnt/Linux
5) Run:
Code:
sudo qemu-debootstrap --arch armhf wheezy /mnt/Linux
6) Chroot into the installed environment.
Code:
chroot /mnt/Linux /bin/bash
7) Add sources to /mnt/Linux/etc/apt/sources.list. you can get debian sources from http://debgen.simplylinux.ch/. Be sure to choose "Testing (wheezy)" and all the sources check boxes along with where you live to find the nearest repository.
8) Install the wifi drivers pt1.
Code:
apt-get update ; apt-get install broadcom-sta-common broadcom-sta-source firmware-b43-installer firmware-b43legacy-installer b43-fwcutter
9) Install the wifi drivers p2. In the "{HOW TO} Native Debian on A500 and building your own rootfs" guide, there is a download from mediafire for the firmware files for the drivers. Extract that and put it into /lib/firmware. I dont know if the individual files in the brcm should be in the /lib/firmware or not so i just copied the folder into it and the files within it into /lib/firmware.
10) Install the GUI:
Code:
apt-get install <gui>
List of GUI's (that i know of):
Code:
KDE (takes a long time to install): kde-full
XFCE: xfce4
11) extract the ventana_Tegra-Linux-R16.1.0_armhf.tbz2 file and the ventana_Tegra-Linux-codecs-R16.1.0_armhf.tbz2. you should get a folder called "Linux_For_Tegra" and a file called "restricted_codecs.tbz2". go into the "Linux_For_Tegra/nv_tegra" folders and extract the nvidia_drivers.tbz2 file. from there you should get 3 folders: etc, lib, usr. copy those to "/mnt/Linux" (you are going to have to do this as root). back out of those folders and extract the restricted_codecs.tbz2. you should get a folder called "lib" copy that to "/mnt/Linux". after that, it's time to make a hard link so that the X11 can find the tegra driver:
Code:
ln /usr/lib/xorg/modules/drivers/tegra_drv.abi12.so /usr/lib/xorg/modules/drivers/tegra_drv.so
Note: without using an xorg.conf file, by default it will use fbdrv instead of the tegra driver.
12) set the root password:
Code:
passwd root
13) add a normal user:
Code:
adduser <username>
14) exit chroot by typing "exit" and unmount /mnt/Linux:
Code:
sudo umount /mnt/Linux
15) pop that sucker into the the tablet and boot into it by holding power and vol down to get into the boot menu. select "boot into second partiton".
If everything went ok, you should be presented with a gui, if not and you are at a command line, log into root and type "startx". if that doesnt work then something wrong must have happened.
Untested easy script:
Code:
#! /bin/sh
set -e
#if there is a tegra_install.deb file.
hasTegraDeb=0
tegraDeb=acer-iconia-tab-a500+tegra+brcm+wheezy_1.0-1_armhf.deb
#change these if you do not like default install of kde.
arch=armhf
build=wheezy
rootDir=/mnt/Linux
guiEnv=kde-full
newUser=User
#setup the basics of debian linux using armhf and wheezy build.
qemu-debootstrap --arch $arch $build $rootDir
#copy the tegra_install.deb file for the tegra specific drivers.
if ["$hasTegraDeb" = "1"] then
cp $tegraDeb $rootDir/$tegraDeb
fi
#setup sources.list for apt-get.
echo "deb http://ftp.us.debian.org/debian testing main contrib non-free" >> $rootDir/etc/apt/sources.list
echo "deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free" >> $rootDir/etc/apt/sources.list
echo "deb http://security.debian.org/ wheezy/updates main contrib non-free" >> $rootDir/etc/apt/sources.list
#create the chroot_install.sh script and set it up.
echo "#! /bin/sh" > $rootDir/chroot_install.sh
echo "set -e" >> $rootDir/chroot_install.sh
#update apt-get inside the chroot.
echo "apt-get update" >> $rootDir/chroot_install.sh
#install the wireless card drivers inside the chroot.
echo "apt-get install broadcom-sta-common broadcom-sta-source firmware-b43-installer firmware-b43legacy-installer b43-fwcutter" >> $rootDir/chroot_install.sh
#install the desktop in the chroot. (note: this will take a long time)
echo "apt-get install $guiEnv" >> $rootDir/chroot_install.sh
#install the tegra specific drivers inside the chroot
if ["$hasTegraDeb" = "1"] then
#install the tegra drivers.
echo "dpkg -i $tegraDeb" >> $rootDir/chroot_install.sh
#hard link the tegra_drv.abi12.so as tegra_drv.so in /usr/lib/xorg/modules/drivers/ to enable X11 to find the display driver.
echo "ln /usr/lib/xorg/modules/drivers/tegra_drv.abi12.so /usr/lib/xorg/modules/drivers/tegra_drv.so" >> $rootDir/chroot_install.sh
fi
#set the root password in the chroot.
echo "passwd root" >> $rootDir/chroot_install.sh
#add normal user in the chroot.
echo "adduser $newUser" >> $rootDir/chroot_install.sh
#execute the final stage of the install.
chroot $rootDir /chroot_install.sh
#cleanup
rm $rootDir/chroot_install.sh
if ["$hasTegraDeb" = "1"] then
rm $rootDir/$tegraDeb
fi
Script sets up everything along with installing kde window manager. Please note that the tegra_install.deb file does not exist, it is something that i am thinking of making in the future that has all the drivers and what not needed that is from the Linux 4 Tegra site. you are still going to have to manually install the tegra drivers in step 11.
Edit: Experimental copies of the deb files that has all the files needed from Linux 4 Tegra and the wifi drivers can be found at the bottom of the post.
xorg.conf to enable tegra driver (found in the Linux_for_Tegra/nv_tegra/config.tbz2/etc/X11 folder):
Code:
# This is the minimal configuration necessary to use the Tegra driver.
# Please refer to the xorg.conf man page for more configuration
# options provided by the X server, including display-related options
# provided by RandR 1.2 and higher.
# Disable extensions not useful on Tegra.
Section "Module"
Disable "dri"
Disable "dri2"
Disable "glx"
SubSection "extmod"
Option "omit xfree86-dga"
EndSubSection
EndSection
Section "Device"
Identifier "Tegra"
Driver "tegra"
# OverlayDepth is a 32-bit integer which is used to control overlay
# stacking order. The overlay with the lowest depth is in front of
# all others. This value has meaning only when multiple overlays are
# present on a display.
# Option "OverlayDepth" "255"
# ARGBHWCursor controls whether the X driver uses an overlay to
# display 32-bit "true-color" cursors, or whether such cursors are
# emulated in software. Valid values are "true" to enable hardware
# cursors, and "false" (default) to disable them.
# Option "ARGBHWCursor"
EndSection
At the moment, I have looked through the config.tbz2 file and may have to stick the stuff in there into the tablet's linux filesystem. will test this later.
NOTE:
I am not a linux developer, I have no idea how to create linux drivers. All I can do is mash things together and hope things work out.
In theory, this should work for all tegra2 and tegra3 (using cardhu drivers instead of ventana) devices with some minor differences.
Edit:
Apparently it is using kernel version 2.6.38. I'm going to see if I can update the kernel to 3.2.23-1 which is the latest version for armhf in the debian package list (http://packages.debian.org/wheezy/kernel/linux-headers-3.2.0-3-all-armhf).
Edit2:
Looks like updating the kernel from apt-get doesn't necessarily enable the kernel to load as it seems that the boot loader loads a prepackaged kernel that has been flashed into mmcblk0p7. Tried out kexec and the kernel doesn't support it so adding it to the /dev/inittab script is useless for loading up new kernels. I tried making the new kernel into a flashable image using mkbootimg that is found within the Linux 4 Tegra folder but it doesn't do anything and the image apparently isn't valid when i tried booting it from fastboot (black screen). along with that, apparently it changed my password on my encrypted /data partition's password (when i flashed it within linux using dd) so a word of caution with that. If anyone can help me out, i would like to try to create something similar to grub (or even port it) where it loads up new kernels from the microsd or a specified place based on a boot list.
deb Files (Install using "dpkg -i acer-iconia-tab-a500+tegra+brcm+wheezy_<version>_armhf.deb" within the linux environment of the tablet.):
1.0-1: acer-iconia-tab-a500+tegra+brcm+wheezy_1.0-1_armhf.deb
--takes care of steps 9 and 11 sans hard linking the X11 tegra drivers.
1.0-2: acer-iconia-tab-a500+tegra+brcm+wheezy_1.0-2_armhf.deb
--has pre-depends for the first part of the wifi driver installation so this should, in theory, install both part 1 and 2 of the wifi drivers.
--takes care of steps 8, 9, and 11 sans hard linking the X11 tegra drivers.
Update log:
10/17/2012: added updated version of the deb package.
10/16/2012: first version.
Ok, so since I cant post anything including into ongoing threads in the android development forum due to the 10 post required thing i'll just have to ask development questions here till i reach the 10 post requirement.
Can anyone point me into the direction for how the second boot image that you flash for the dual boot bootloader is created? Trying to figure out how to create an image so that it boots everything off the microsd card including the kernel. It seems that the kernel used in the guide is locked to 2.6.38 and if you update the kernel within the tablet's linux environment it doesnt load it up. so i need to figure out how to create a boot image so that it loads it up or create a boot image that has grub (or other bootloaders) installed on it to boot different linux images.
alatnet said:
Ok, so since I cant post anything including into ongoing threads in the android development forum due to the 10 post required thing i'll just have to ask development questions here till i reach the 10 post requirement.
Can anyone point me into the direction for how the second boot image that you flash for the dual boot bootloader is created? Trying to figure out how to create an image so that it boots everything off the microsd card including the kernel. It seems that the kernel used in the guide is locked to 2.6.38 and if you update the kernel within the tablet's linux environment it doesnt load it up. so i need to figure out how to create a boot image so that it loads it up or create a boot image that has grub (or other bootloaders) installed on it to boot different linux images.
Click to expand...
Click to collapse
You are on the right track with mkbootimg. I have not figured it all out myself yet.
You have to compile your arm linux kernel then make a bootable image with mkboot
I don't know if you have seen this or if. this will help---Nethams kernel compile commands are;
make ARCH=arm menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueable--j16
./mkbootimg --ramdisk dev/zero --kernel arch/arm/zimage -o ../recovery.img
I believe these are the commands he uses to compile his recovery image (boot.img)
It is my understanding that mkboot combines the kernel with a ram disk to make an image file that will boot the system
That image file can be placed in several places 1-primary boot position 2 recovery position 3 and if you have Skrilax dual boot secboot position
So it depends on what mkboot compiled as to what happens when that boot point is activated.
I am still trying to work out how Spdev and Netham combine or configure the kernel + initramfs+ ramdisk to create their bootable images.
I know these images boot and point to the file system which can be stored on internal or external sd card or even usb drive it all depends on how the boot image is configured.
Still learning myself
Here is a link I found explanes about Linux ram disk and initram
http://www.ibm.com/developerworks/linux/library/l-initrd/index.html
And more info here downloads a PDF presentation on how to.
http://www.google.com/url?sa=t&rct=...poCoAw&usg=AFQjCNHLTHE3DaroC71FAjOjQWU2A61qEQ
All about that mkbooting after you get your kernel
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
themechaniac said:
snip (freaking 10 post limit...)
Click to expand...
Click to collapse
Yea, i did find some stuff with mkbootimg including the last link that you posted.
The kernel was already compiled when i downloaded it using apt-get and it is placed in /boot folder.
I did make a boot.img from that kernel using mkbootimg and looking at "/proc/cmdline" at the arguments that were passed to the kernel in the other kernel image and it made it, flashed it to secboot and it didnt do anything except use the same kernal as before, though i did flash the image via dd in linux. Apparently this sorta screwed up my /data partition or something in where it wouldnt recognize my password for de-encryption to mount it. (fixing it by just erasing "/data" [bye bye data... TT.TT]) So i tried booting it using "fastboot boot <kernel>" and it didnt boot, only showing a black screen, but using the other boot.img it would boot linux up.
So I'm thinking of somehow creating a kernel image that can use kexec to make a grub like bootloader kernel that you flash onto the secboot partition that has something similer to grub.cfg in which you can easily select which kernel to load.
As for looking for a grub.cfg file, it would look in a few different places:
-in internal storage (probably recovery partition or the "/system" partition as the "/data" partition can potentially be encrypted and not mountable.)
-sd card (has to be in first partition and in fat32 format)
-usb drive (same as sd card)
from these places it will load each grub.cfg. that way it'll make the grub like bootloader kernel extendable in which kernel to load (i.e. have a linux system on usb that you want to boot from.)
I may be wrong but it is my understanding that the compiled kernel is in the boot image packed by mkbootimg.
The kernel is compiled to look for the compatible root file system in a particular place.
So when you change or use a boot image you change the kernel you are using.
So we have a system that;
Has a modified Linux kernel that selects the Android file system from internal memory installed in the first boot position.
We can put a Linux kernel compiled to find a compatible root file system say on external sd card in the second boot position.
We can replace the recovery image with a Linux kernel that finds a compatible root file system on the internal sd card.
That gives us a hardware selective three different systems (triple boot)
With fastboot on the PC we can quickly change any of the Three boot images, replace the recovery image or repair system.
I think all we need is a 3.2.23 kernel compiled thee separate ways and packaged with mkbootimg.
1st find root file system internel, 2nd find file system externel 3rd find file system usb
We already have two 2.6.38 kernels. One from Spdev (external root file system)and One from Netham {internal file system)
They are different kernels as Nethams has added modules.
I believe the were both compiled from the same Git.
I have tried switching the two boot images in second boot position with both root file systems installed and when you boot the second position
it switches to it's own file system.
I haven't tried swapping the root file positions yet.
themechaniac said:
I may be wrong but it is my understanding that the compiled kernel is in the boot image packed by mkbootimg.
The kernel is compiled to look for the compatible root file system in a particular place.
So when you change or use a boot image you change the kernel you are using.
So we have a system that;
Has a modified Linux kernel that selects the Android file system from internal memory installed in the first boot position.
We can put a Linux kernel compiled to find a compatible root file system say on external sd card in the second boot position.
We can replace the recovery image with a Linux kernel that finds a compatible root file system on the internal sd card.
That gives us a hardware selective three different systems (triple boot)
With fastboot on the PC we can quickly change any of the Three boot images, replace the recovery image or repair system.
I think all we need is a 3.2.23 kernel compiled thee separate ways and packaged with mkbootimg.
1st find root file system internel, 2nd find file system externel 3rd find file system usb
We already have two 2.6.38 kernels. One from Spdev (external root file system)and One from Netham {internal file system)
They are different kernels as Nethams has added modules.
I believe the were both compiled from the same Git.
I have tried switching the two boot images in second boot position with both root file systems installed and when you boot the second position
it switches to it's own file system.
I haven't tried swapping the root file positions yet.
Click to expand...
Click to collapse
Interesting. Though i think it needs to be a specific type of kernel (i.e bzImage or uImage instead of vmlinuz) to actually run. also, the precompiled kernel in the guide that i had used in the opening post had a command line where one option was "root=/dev/mmcblk1p2" which pretty much says for the kernel to look for the linux file system in the second partition on the sd card.
Yes with the way the system is formatted you cannot change out the kernel on the fly. It is basically hard coded in the boot image. Skrilax has given us a way to change boot positions so we don't have to sacrifice recovery position to boot second kernel. I have not seen any pre configured 3.2.23 kernels yet. The one that Netham posted boots from internal SD but causes problems for some people as not all a500 have their internal SD card formatted in the same memory block. It works great for me I prefer to have my root file system on a fast external SD so would like to modify or compile a kernel like Netham's. I find I run out of space when I have it internal. Netham's kernel has USB sound and seems to boot differt than Spdev's.
themechaniac said:
Yes with the way the system is formatted you cannot change out the kernel on the fly. It is basically hard coded in the boot image. Skrilax has given us a way to change boot positions so we don't have to sacrifice recovery position to boot second kernel. I have not seen any pre configured 3.2.23 kernels yet. The one that Netham posted boots from internal SD but causes problems for some people as not all a500 have their internal SD card formatted in the same memory block. It works great for me I prefer to have my root file system on a fast external SD so would like to modify or compile a kernel like Netham's. I find I run out of space when I have it internal. Netham's kernel has USB sound and seems to boot differt than Spdev's.
Click to expand...
Click to collapse
Right, but this is how the linux boot loader is going to go with, instead of loading the linux system (sans kernel and initrd) from the sd card, we create a boot.img that has a linux system built in that has a sole purpose of loading other linux systems using kexec.
Edit:
Here's how the path is going to go:
Startup-->Bootloader-->Linux Bootloader (loads linux on external drives)-->Linux (on external drives)
Well I am happy with Ubuntu on my external SD card, I even ran a kernel compile on it and it ran pretty fast. I am stuck on the mkbootimg part. It can't be done on the tablet, has to be a PC. I tried unpacking the Two ready made boot images to see how they are configured but they don't seem to have a ram disk. Still working on that. It is learning how the system is put together that is half the fun, Getting it to work the way you want is the goal. When it is all squared away it will be time to move on to the next puzzle. I have enough computers that I could just put a system on each one and be done with it. Where's the fun in that. Most of them are dual booted already.
themechaniac said:
Well I am happy with Ubuntu on my external SD card, I even ran a kernel compile on it and it ran pretty fast. I am stuck on the mkbootimg part. It can't be done on the tablet, has to be a PC. I tried unpacking the Two ready made boot images to see how they are configured but they don't seem to have a ram disk. Still working on that. It is learning how the system is put together that is half the fun, Getting it to work the way you want is the goal. When it is all squared away it will be time to move on to the next puzzle. I have enough computers that I could just put a system on each one and be done with it. Where's the fun in that. Most of them are dual booted already.
Click to expand...
Click to collapse
Well, even though mkbootimg is suppose to be run on linux, i don't think it was compiled for arm so you are going to have to use a pc for that program. as for the initrd, i did find a website that may help in creating an A.L.B.L. (Android Linux Boot Loader): http://www.thewireframecommunity.com/node/14
Essentially what is needed to create the A.L.B.L. is to create a kernel with kexec in it and an initrd that mounts the external drives along with an easy to use interface to be loaded before loading any kernels to allow for selecting kernels. with that said, how do you figure out how to use the volume buttons and the power button within linux using a c\c++ program?
BUMP!
any progress?
also
-Audio (Detects it in the kde info center. System Settings program only says that there's a dummy output. Playing any form of audio crashes the program.)
Click to expand...
Click to collapse
But
Code:
cat /any/file/for/ex/bin/bash > /dev/dsp
works properly
Unfortunetly no.
Been to busy with other stuff to work on this.
tegra driver
I have ubuntu 12.10 armf runing on my a500 thanks to the "Linux on A500: The Future" thread. I am using the ferrariforzaleo mod of rogro82's kernel.
The problem I had was getting the xorg tegra module to load. I fixed this by getting the "https://launchpad.net/ubuntu/quantal/armhf/nvidia-tegra/16.0-0ubuntu1"]https://launchpad.net/ubuntu/quantal/armhf/nvidia-tegra/16.0-0ubuntu1 and installing with
sudo dpkg -i
after I rebooted it started using the tegra video driver.
Cheers
HardlyAbelson said:
I have ubuntu 12.10 armf runing on my a500 thanks to the "Linux on A500: The Future" thread. I am using the ferrariforzaleo mod of rogro82's kernel.
The problem I had was getting the xorg tegra module to load. I fixed this by getting the "https://launchpad.net/ubuntu/quantal/armhf/nvidia-tegra/16.0-0ubuntu1"]https://launchpad.net/ubuntu/quantal/armhf/nvidia-tegra/16.0-0ubuntu1 and installing with
sudo dpkg -i
after I rebooted it started using the tegra video driver.
Cheers
Click to expand...
Click to collapse
can you explain me the steps you done ? I also want ubuntu 12.10 running but I can't install any desktop on it ( show error and other error )
ubuntu 12.10
Forzaferrarileo said:
can you explain me the steps you done ? I also want ubuntu 12.10 running but I can't install any desktop on it ( show error and other error )
Click to expand...
Click to collapse
Hi, I used the debootstrap and and qemu / chroot to setup my rootfs. i found post #61 in the "Linux on A500: future" very helpful.
Also, make sure you have a usb keyboard handy. After you run "apt-get install -d ubuntu-desktop" (assuming you have a pc running ubuntu to use) in a qemu chroot, you can move to the a500 and boot up and login as root and run "apt-get install ubuntu-destop". since the stuff is cached. I found this faster than installing the desktop while in the chroot. After that finishes, you should boot up with a desktop available. If something is wrong and you can't login, try doing "ctrl-alt-f1" to get to the getty command line login and look at the /var/log/ folder for clues in the logs.
How to compile the kernel?
I succesfully got debian running on my iconia a500 :laugh:
Building my own rootfs and getting the wifi to work were not that hard, but I still don't know how to compile the Linux kernel for the a500 from source.
I already found the git repository of rogru82 (https://github.com/rogro82/picasso-kernel) and I downloaded the source to my pc (running ubuntu 13.04). Can someone point me to a tutorial explaining how to compile this source?
Also, can someone explain what sort of partition table the internal memory uses? I am running the 3.0 kernel and I can see a block memory device in the /dev folder but there are no partitions. How can I mount the internal memory?

[GUIDE] How to build a Linux kernel and flash it to the phone [SonyEricsson]

The folks over at Sony Ericsson have released something a bit useful if you’ve been wondering lately how to build Linux Kernels for your phone. Sony Ericsson’s Developers has laid out a detailed process on how to build a new Linux kernel and flash it to your Android device. We’ve pasted the info below for you so you don’t have to hop around. Below you’ll find Sony Ericsson’s how-to in its entirety for your convenience with respective links and all. If you’ve been wanting to tinker and dive into the world of Linux and flashing kernels on mobile devices, we’d say now is the time. Follow the expert step by step process and toss us a note or two in the comments below if this works out for you. However, keep in mind, even though the article is written by experienced Sony Ericsson developers, nothing is guaranteed to work the way it’s supposed to. So be very diligent while following and performing these tasks. In other words, do your research first.
How to build a Linux kernel and flash it to the phone.​
Since the launch of the unlock boot loader site, Sony Ericsson have received a lot of really great feedback. The Sony Ericsson Developer Program wants to continue to build on this open dialogue with external developers.
Developers and advanced users can now unlock the boot loader, which is the first step to be able to flash your own image. Where developers run into problems when building their own image, and and trying to flash the image using Fastboot.
Before moving on, I like to remind you again that there is no turning back when unlocking the boot loader. You may void the warranty of the phone, and you will not be able to revert the phone to a locked or original state if you unlock it.
What is the Linux kernel?
The Xperia™ line of smartphones run on the Android™, the mobile operating system based on the Linux kernel. Though it is only a small part of the operating system, the kernel ensures that all other processes in the system are synchronized to work together properly.
Why rebuild the kernel?
Rebuilding the kernel enables end users to make modifications to their devices that are normally not intended by the device manufacturer, such as theming the device by changing system icons and removing/modifying system components. Please note that Sony Ericsson is not recommending this.
Considerations before building your own kernel and reflashing your device
As mentioned in the beginning of this article, the first step is to unlock the boot loader. When the boot loader is unlocked, the sensitive data is removed, such as DRM certificates, and the user partition of the file system is wiped out. But all other functionality, such as the camera and other drivers, is left intact. Please note that content, like music files, that require the DRM certificate will not be accessible any more. But most importantly, you may void the warranty of your phone if you decide to unlock it. Aside from the considerations mentioned above, the functionality is there, just waiting for you to take advantage of it. So, if you’re ready, here’s how to get started.
Building the kernel
It takes a few main steps to build the kernel. Below we’ll show you how to build a Linux kernel and flash it onto the device.
Step A – Download the necessary software
Download the following software to get started:
The kernel source code can be downloaded from the copyleft archives on Sony Ericsson Developer World. You can use the file called ex. 3.0.A.2.181_182.tar.bz2 for our Android™ Gingerbread devices. This is the source code for the Linux kernel as used in the Xperia™ PLAY.
The Fastboot client which is part of the Android SDK. This is the standard Android flashing utility. This allows you to flash the image you are about to create onto the device.
The Init RAM disk. The initial RAM disk (also known as the initrd) is the initial filesystem that the kernel will mount and start running processes off. You can configure the Init RAM disk to grant root access. How you create or download your own Init RAM disk is beyond the scope of this article.
The ARM cross-compiler. A cross-compiler is used to build ARM binaries on a different architecture, such as x86. This allows you to compile software (such as the kernel) into a format that the device can run. We recommend getting the CodeSourcery Lite compiler, especially the GNU/Linux variant, as you’ll need that if you want to build binaries for a full-blown Linux system on the device later. However, any EABI ARM compiler capable of compiling the Linux kernel should be enough for this step.
Step B – Building the kernel
To build the kernel, you first need to unpack the kernel. Once you’ve unpacked the kernel, you need to configure it, and then build it. The example below is based on you using the file called 3.0.A.2.181_182.tar.bz2.
1. Go into the kernel directory:
cd kernel
2. Configure the kernel:
ARCH=arm CROSS_COMPILE=/opt/arm-2010q1/bin/arm-none-eabi- make semc_zeus_defconfig
Note: Replace /opt/arm-2010q1 with where you installed your cross-compiler. Also, this example is for Xperia™ PLAY. Replace defconfig with the following values depending on what device you want to configure it for:
Xperia™ PLAY semc_zeus_defconfig
Xperia™ arc semc_anzu_defconfig
Xperia™ neo semc_hallon_defconfig
3. Build the kernel:
ARCH=arm CROSS_COMPILE=/opt/arm-2010q1/bin/arm-none-eabi- make
Replace /opt/arm-2010q1 with where you installed your cross-compiler. Once done, you should have a compressed kernel-image in arch/arm/boot/zImage.
Step C – Getting a RAM disk
The RAM disk is the initial filesystem the kernel will mount before transferring control to userspace. How you create your own root filesystem is beyond the scope of this article, but you can use the following instructions to pack/unpack the file.
Unpacking (you have to ramdisk.img, and weant to create a directory of files out of it):
gzip -d – < ramdisk.img > cpio -idm
Packing (You have directory of files, and want to create ramdisk.img from it):
find . | cpio –quiet -H newc -o | gzip > ramdisk.img
Step D – Assembling the boot.img
Now that we have all the parts we need to create a flashable file. The next stop is to package the parts. To do this, you’ll need the program mkbootimg, which is part of the standard Android tree. If you don’t feel like compiling all of Android to get this tool, it is available to download from various trusted sites on the Internet.
Once you have the tool, this is the command to combine your kernel and RAM disk into a flashable file:
mkbootimg –base 0×00200000 –kernel kernel/arch/arm/boot/zImage –ramdisk ramdisk.img -o boot.img
Step E – Flashing the file
You should flash the file using Fastboot. If you’ve unlocked the boot loader on your device, you already have Fastboot.
1. To flash the boot.img file, use the following the command
fastboot –i 0x0fce flash boot boot.img
2. Now, it will prompt you to connect your device. To do so, follow these simple steps:
Make sure your device is powered down.
Hold down the Search button (Xperia™ PLAY only) or the Back button (all other Xperia™ devices). The device’s notification light should shine blue to confirm it’s inFastboot mode.
Connect the USB cable.
Flashing should now start and complete.
3. As a last step in the process, you need to reboot the device. You can either remove the USB cable and battery to power the device down. If you prefer, you can instead issue the following command (either method will work):
fastboot –i 0x0fce reboot
Important information!
Additional information for experienced Linux kernel experts
The kernel is pretty standard, all the regular things you’re used to is there, and available to use. Things that are different are the memory config and the kernel commandline. The memory config is hardcoded (i.e., ATAGs aren’t used for this). It’s set in the board-file for your target, such as kernel/arch/arm/mach-msm/board-semc_zeus.c in the function msm7x30_fixup. The kernel commandline is also not fetched from the boot.img file, but compiled into the kernel (CONFIG_CMDLINE). Some arguments are also added from the boot loader.
Additional information if porting non-Linux format files to the device. The boot loader will accept any reasonably formatted boot.img file.
For example, at the Android Kernel Git, you will see the format of the boot.img file. This allows you to create a boot.img file containing two loadable files (kernel+ramdisk), which will get loaded into RAM. Once the boot loader is loaded, it passes the control to the first instruction of the loaded kernel image. After control is passed, the kernel can rely on the data contained in the RAM disk already being loaded.
Guide by Karl-Johan Dahlström

Natice Linux Installation No Android

As anyone who has tinkered around with android and linux will know there are tons of different security mechanism in place or even general lacks of features that dissallow the ability to start linux on boot instead of android. One of the features that will make booting our own OS easier is the use of RAM-Disk.
First we must consider the way that Android boots when we turn on our devices currently, The system powers on and depending on button combination or system state the bootloader decides where to start booting. In the case of my Samsung SM-T520 this means that I have 2 partitions that I can access in order to interrupt the Android boot sequence and boot instead into an OS of my choosing. Those two partitions are Labelled as Boot and Recovery and reside at /dev/block/mmcblk0p9 and /dev/block/mmcblk0p10, but it is not as simple as simply mounting the partition and modifying the contents, we have to Modify the stock Kernel as well a little bit to be able to achieve better performance in the Linux side of things.
In the case of the SM-T520 I have compiled a preconfigured Kernel for this and will upload it below, But for those of you who do Not have the SM-T520 I will upload a sample Kernel config that you can base your own off of.
That settles the Kernel side of things but there is still 1 other part missing, If we just modify the Kernel then we are really not making any difference so we must edit...
The Initial RAMDISK
The Initramfs as many know it is glued to the back end of our kernel zImage that we get from compiling our own kernel, and includes a few small files to set up the initial environment for Android, or our Guest OS to finish booting from. This means that we have a pretty good base to start out with booting Linux. We simply have to grab this base and modify to our will.
So to start I took an image of /dev/block/mmcblk0p9 using dd from recovery like so ‘dd if=/dev/block/mmcblk0p9 of=sdcard/mmcblk0p9.img’ and copied the file onto my linux development machine. I then used umkbootimg passing the file to it as input in order to deconstruct that file into the zImage and the Ramdisk. i then copied the Ramdisk which will be in a file called initramfs.cpio.gz into a new folder on my computer and ran unpack_ramdisk on it to get to the nitty gritty inside which is what we need. and i promptly threw out the old initramfs.cpio.gz and kept only the ramdisk folder. This allowed me to modify the “scripts” inside of it so that it would boot Linux by mounting the linux install location as / then telling if to boot using the init function that linux already has. while I was testing i decided to leave the android install mounted essentially, what that means is that the android install hides away in the filesystem inside the linux install if we ever want to boot Android into a chroot Jail of its own.
That is possible because Android’s file system and the linux filesystem being used are the same structure, but at different locations /system being empty for the Android system to occupy. This is all fine, but where do we put linux? The short answer, Wherever the heck ya want to!
My answer was to put the linux install onto my MicroSD card at /dev/block/mmcblk1p1 so that i could write an addition to the logic inside the Ramdisk to start linux or android based on whether the SD card was inserted at boot.
More yet to follow
Interesting read. It will be great to see where this leads.
Very interesting. If this develops in would love to test.
Hei @DJHenjin1 , any update on this? I would love to see ubuntu running native on my SM-T520, especially now that it is sure we are not going to get any firmware update. Anyway, nice job! Thanks

[TOOL] [Linux installer] Universal linux installer [2015-11-22]

I have found current ways of rootbind Ubuntu images quite strange. Well, is no problem to install/unpack files on already working systems, but what if there are no such one? Perhaps non-rooted android (damn that memory-eating supersu!) or totally androidless install?
So, here is my way to install it. Totally self-contained installer.
Well, sort of. It is not "totally" self-contained. This installer requires already created rootfs and kernel+rootfs blob, but I have found it quite flexible.
For example, here is installer for DjDill's Lubuntu 14.04
To install it, copy tf101-14.04-Lubuntu-Tegra-armaf.tar.gz file, Jrohwer Ubuntu-3.1.10-15-rootbind-oc1.5.zip kernel file and attached tf101-14.04-Lubuntu-Tegra.installer.sh to microsd card, flash attached installer.zip.
Installation process will take ~10-15 minutes and quite self-describing.
Files to download:
installer.zip - fdee9756d0d6b7f91f606d94036a3bd4
tf101-14.04-Lubuntu-Tegra.installer.sh - 17d0a5bf7a22f44f66f715620bcda6e7
Thanks:
Jrohwer for his kernel
DjDill for rootfs with working hw acceleration.
Henrik Theiling for his sh progressbar
p.s. Have tried to create this thread as DevDB project. No permission
I try this method but not work after flash installer and reboot system cant mount /dev/mmcblk**** on mnt/sdcard any opinion

[ROM-x86] Bliss-x86 [oreo 8.x] for PC's

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Team Bliss is pleased to present to you
Bliss based on Android Oreo
Our focus is to bring the Open Source community a quality OS that can run as a daily driver, syncing your apps, settings and customizations across all platforms you run Bliss on.
Bliss OS comes with a wide selection of customization options, functions, and is even themable out of the box using rootless Substratum. With so many options available, you will soon find out why we call it Bliss.
Notice
- Please do not ask for ETA's;
- We will not tolerate any rudeness or anyone being disrespectful in this thread. Moderators, feel free to enforce anything you feel is necessary to stop bad posts;
- We will do our best to answer your questions or concerns as soon as possible.
AIO Thread​
Bliss Source
https://github.com/BlissRoms
Bliss-x86 Source
https://github.com/BlissRoms-x86
BlissRoms Devices Source
https://github.com/BlissRoms-Devices
BlissRoms Kernel Source
https://github.com/BlissRoms-Kernels
BlissRoms Vendor Source
https://github.com/BlissRoms-Vendor
OpenGapps are included in Bliss-x86. YAY!!
Our Official downloads have been cleaned in preparation for Android Pie
Bliss OS x86 - Current Releases
All recent builds have been moved to Sourceforge
Bliss OS x86 - Sourceforge Archived Releases
Bliss OS x86 - AFH Archived Releases
Team Bliss is not responsible in any way for anything that happens to your device in the process of flashing.
Please familiarize yourself with flashing and custom rom use before attempting to flash the rom.
Please make sure you download the correct version of Bliss for your specific device. The links are labeled clearly.
Please scroll down to second and third posts for install instructions and downloads
one build, thousands of potential component combinations, so not everything will be working on every machine, and we know this.
If you have a major bug to report that has not been reported already, please take the following steps to report it to us. It will save you and our team quite some time.
-Download the Catlog app from the Play Store.
There is also a donate version which you can purchase to show appreciation.
-After downloading the Catlog app, go to the app settings, and change the log level to Debug.
-Clear all previous logs and take the exact steps to produce the error you are receiving.
-As soon as you receive the error (probably a force close), go straight into Catlog and stop the log recording.
-Copy and paste the entire log either to Hastebin or Pastebin
-Save the log, and copy and paste the link into the forum with a brief description of the error.
-You can also open trouble tickets on our website for bugs.
A huge thanks to Chainfire, CM/LineageOS, Android-x86, Jide, @farmerbb & all the other developers who work hard to keep all the great features coming!
We really appreciate all your knowledge & hard work!
If someone takes it upon themselves to donate to us, of course it will be appreciated, and all funds will be used to pay our server and upkeep fees.
If someone wants to donate, our PayPal link is below.
PayPal Link
Very Important Information
Team Bliss will allow some minor off-topic comments in our development threads.
Please post in the general forums for off-topic comments and/or questions.
Overall, please keep comments relevant to development, as this better helps you and our team
when trying to determine problems that users are having.
We appreciate all levels of knowledge in our threads, and therefore we ask that
the seasoned members be helpful to those with less knowledge.
Most importantly, do NOT troll those with less knowledge than yourself.
Should you feel inclined to not abide by our request, the XDA Moderators may be called in to remove posts.
We thank you for adhering to our thread rules.
Thank you for using Bliss! And have a Blissful Experience!​
XDA:DevDB Information
Bliss-x86, ROM for all devices (see above for details)
Contributors
electrikjesus, rwaterspf1, ElfinJNoty
Source Code: https://github.com/BlissRoms-x86/kernel_common
ROM OS Version: 8.x Oreo
ROM Kernel: Linux 4.x
ROM Firmware Required: Read the Instructions
Based On: AOSP
Version Information
Status: Stable
Current Stable Version: Bliss-x86 7.1.x Stab
Stable Release Date: 2017-03-19
Current Beta Version: Bliss OS 10.0 PC Bet
Beta Release Date: 2017-03-21
Created 2017-01-09
Last Updated 2018-09-01
Reserved
The Instructions
**These instructions are based on the Android-x86 project's installation guide. We have not changed the installer, so all actions still apply. Also thanks to @bg260 for his contributions, this guide was adapted partially from his work**
*** Team Bliss will not accept any responsibility for users who have not read or understand the instructions, or any damage done to user machines due to lack of understanding all risks involved. You accept all responsibility by continuing beyond this point. ***
*** Any questions, install issues, bug reports, etc will be delightfully ignored unless accompanied with a log, device info, build info, install method, and any other information required to diagnose your issue as NOT user error ***
Please note that our Archived build instructions can be found in the fourth post. Many of the processes may still apply to our newer builds too, so please read and follow the links provided to learn more about each step. Thank You
Easy Install For Bliss-x86 8.x/10.x UEFI/ESP (64bit)
** This method might be the easiest currently **
For the overall instructions on using this method, please refer to the tools original thread: https://forum.xda-developers.com/android/software/winapp-android-x86-installer-uefi-t3222483
I have taken some time to update the tool for easy install on UEFI/ESP machines. The builds I produce can be found here:
https://github.com/BlissRoms-x86/Androidx86-Installer-for-Windows/tree/master/bin
And the source for those builds can be found here: https://github.com/BlissRoms-x86/Androidx86-Installer-for-Windows
This tool should work on RemixOS as well, but I have not tested it yet (been too busy on this project)
Part 1 - Using the Installer
The installer has been updated, and it will accept the .iso files for our 8.x/10.x releases. Just follow the prompts the installer gives. Refer to the orig thread for any questions, and please search before asking.
Part 2- Switching the UEFI/EFS boot entry
Open the EasyUEFI tool mentioned above, then switch the UEFI/EFI entry it created to boot first. Close and reboot.
How to "prep" a USB using syslinux EFI to run Bliss 7.x/10.x
Thanks to @IcedCube
IcedCube said:
For those who are a little too bleeding edge and like to adventure outside the recommended method that @electrikjesus recommends, here's how to "prep" a USB using syslinux EFI to run Bliss 7.x/10.x.
Also, I'd appreciate it if he could link it in the first post as a "experimental syslinux EFI" method, because this is what I recommend if some Chinese tablets don't want to boot grub.
DO NOT BLAME HIM IF YOUR DEVICE CATCHES FIRE AFTER DOING THIS. BLAME ME INSTEAD.
I strongly recommend using a Linux VM or a Linux box for this. Ensure you have the latest version of unsquashfs (part of squashfs-tools) too. Grab the latest build of Bliss x86 7.x/10.x before continuing!
Grab the ZIP file from my original post, https://forum.xda-developers.com/showpost.php?p=74977694&postcount=1237, and extract it to the root of your USB drive. This will bootstrap syslinux EFI onto it.
Make a folder, if you haven't already done so, called "android".
Now, open up the ISO in an archiver. Extract from the root directory of the ISO image the following to your USB drive's "android" folder: initrd.img, ramdisk.img, kernel.
Extract system.sfs to a folder somewhere, maybe in /tmp.
Open a terminal and change directory (using 'cd') to /tmp. Run 'ls' and confirm you see system.sfs shown in the file list. If you get no output, start over as you misplaced a file.
Code:
cd /tmp && ls -al system.sqs
Run the following code:
Code:
unsquashfs ./system.sqs
This will make a new directory called "squashfs_root".
Bliss 7.x users, this is important: If you are using Bliss 10.x then skip just this step. Change directory to squashfs_root and run a 'ls'. You should have only one file, a system.img inside that directory. Copy that file to your USB's "android" folder.
Bliss 10.x users, this is important: If you are using Bliss 7.x then skip just this step. If you take a look inside squashfs_root, you will notice it's a complete android root filesystem. What we need to do is to move the stuff into a system image. The following will make a 2GB system.img file, format it, mount it and copy the contents of the extracted squashfs into that new disk image.
Code:
mkdir /mnt/tempMount
truncate /tmp/system.img --size=2G
mkfs.ext4 -m0 /tmp/system.img
sudo mount -o loop /tmp/system.img /mnt/tempMount
sudo cp -prv /tmp/squashfs_root/* /mnt/tempMount/
sync
sudo umount /mnt/tempMount
The sync process might take some time. Now copy the /tmp/system.img file to your USB's android folder.
Alright, now that's the system image done. Now you need to make a data image. That's easier than system image. First, find where your USB drive is mounted, it might be at "/media/icedcube/DROIDUSB" or something and cd to the android folder on it:
Code:
cd /media/icedcube/DROIDUSB/android
. If you're using Ubuntu or any other good distro and have a "Open location in Terminal" option in your File Manager, use that as a shortcut. Now run these commands to make a 3GB data image file - you could try with 4GB but FAT32 maxes out at 4GB per file and I prefer using FAT32 as I'm not sure if the kernel supports exFAT or NTFS properly.
Code:
truncate data.img --size=3G
mkfs.ext4 -m0 data.img
sync
This will be an completely empty ext4 disk image, but will be enough to kickstart Bliss.
Finally, check to ensure everything is in check like so:
Code:
<ROOT>
- syslinux.cfg
- android/
-- kernel
-- system.img
-- data.img
-- ramdisk.img
-- initrd.img
- EFI/
-- BOOT/
--- bootia32.efi
--- bootx64.efi
--- ldlinux.e32
--- ldlinux.e64
Need to add some kernel parameters? Don't panic. Just open syslinux.cfg and add them onto the append before the "initrd=/android/initrd.img" statement.
Unmount the USB from your computer. Carefully plug it into your tablet or laptop and use the BIOS to boot UEFI from USB Drive, partition 1. If all goes well, you will get a black screen with small white text saying "Booting Android..." followed by loading files. You should get the Linux kernel text, then see the Bliss Oreo animation play after a few seconds/minutes depending on your USB drive read/write speed.
Click to expand...
Click to collapse
Custom Install For Bliss-x86 8.x/10.x UEFI/ESP (64bit)
***Again, Team Bliss is not responsible for any damage, tears, lost time, alien abductions, experimental relationships or anything else if things go south with this install. Don't even think about blaming us. You automatically agree to these terms upon continuing the install.***
Part 1 - Mounting Your UEFI/ESP Partition
You will want to make sure you can view hidden and system files in Explorer options (if you need to , google it), Once you do that, hit the start menu, and type in CMD, and then right click, and open as administrator. It should look like the window image attached to this post.
Once that is open, type in:
Code:
mountvol X: /S
Then check to see if it is mounted already
Start Task Manager; a) CTRL+ALT+DEL -> Task Manager b) CTRL+Shift+ESC c) Right click the taskbar and select Task manager.
Click "File" tab -> "Run new task" -> "Browse" -> "This computer" -> SYSTEM (X or type in "x:" in the filepath bar"
If you cannot access X:, then that could mean one of three things. 1) You have an ESP setup, and just need to scroll down to the ESP System Partition setups section, or 2) You have a legacy MBR setup and just don't know it. or 3) Your setup falls within the other category. Check below for some insight, or the second post for more links to help you figure things out.
ESP System Partition setups
Windows 10 has EFI partition sometimes already mounted under Z: letter, but it's hidden.
A very quick and easy way to access ESP (EFI System Partition) in Windows 10: (no command line use needed!)
Start Task Manager; a) CTRL+ALT+DEL -> Task Manager b) CTRL+Shift+ESC c) Right click the taskbar and select Task manager.
Click "File" tab -> "Run new task" -> "Browse" -> "This computer" -> SYSTEM (Z or type in "z:" in the filepath bar"
Now go to boot/grub/grub.cfg and edit it accordingly with Notepad++ or other editor
Save the file and your're ready to go
If this still doesn't work - try this:
Run CMD.exe as Admin <- IMPORTANT Then enter following commands:
Code:
taskkill /im explorer.exe /f
This will kill explorer.exe process - don't be surprised It's needed, because by default it's ran by "currently logged in user" and it has to be run as Administrator in order to view the mounted system drive. Administrator account is not the same as an account with administrative privileges.
Code:
Code:
mountvol X: /s
This will mount the system partition that usually consists of uefi related files. X: is the letter of the drive - you can use whatever letter you want, but it has to be free.
Then type:
Code:
explorer
This will run explorer as Administrator and will allow you to browse the mounted system partition.
The above may not work for all devices, as some handle UEFI differently.
Part 2 - Run Explorer as Admin
Run CMD.exe as Admin <- IMPORTANT and enter following commands:
Code:
taskkill /im explorer.exe /f
This will kill explorer.exe process - don't be surprised It's needed, because by default it's ran by "currently logged in user" and it has to be run as Administrator in order to view the mounted system drive. Administrator account is not the same as an account with administrative privileges.
Then type:
Code:
explorer
This will run explorer as Administrator and will allow you to browse the mounted system partition.
Part 3 - Roll You Own UEFI Install
Let's start by downloading the needed files. Here is a customized UEFI boot for 32 & 64 bit machines. https://www.androidfilehost.com/?w=files&flid=143191
**NOTE: If you came from our nougat builds to our Bliss-x86 8.x builds, you will have to edit the grub.cfga bit. Please see below **
If you are using Bliss-x86 8.x/10.x, please use the grub entry below as a guide:
Code:
menuentry 'Bliss-x86' --class android {
search --file --no-floppy --set=root /AndroidOS/system.sfs
linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive quiet DATA=
initrd /AndroidOS/initrd.img
}
(EXT3/EXT4 installs) (NOTE: Due to a bug on ext3/ext4 installs, please use the grub setup below)
Code:
menuentry 'Bliss-x86' --class android {
search --file --no-floppy --set=root /AndroidOS/system.sfs
linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive quiet DATA=
initrd /AndroidOS/initrd.img
}
Now that we have the partition mounted, we can copy that BOOT dir to your UEFI partition using Explorer as admin or using the New Task dialog from Task Manager. (look up for a refresher on both of those) Once it is copied, go back to the admin CMD prompt and type:
Code:
mountvol X: /D
or if you used Z:, type:
Code:
mountvol Z: /D
This will dismount the UEFI/ESP volume for safe reboot. we then suggest you use EasyUEFI here to create the UEFI boot entry. Open the app, and create a new entry. Select your UEFI partition, and in the File Path, click Browse and use the file manager window to browse to your BOOT/grub/grubx64.efi file. Click OK, and then choose the new grub entry and move it to the top. Make sure secure boot is turned off or else it likely will just boot back to Windows.
Part 4 - The Manual Blissification of Your PC
To do a manual "Wubi like" install of Bliss-x86 after you install the UEFI entry, you will need to open the Bliss-x86 .iso/img with 7zip, and then drag all the .img & .sfs files to C:/android-x86 or whatever your target drive is (make sure your grub entries match where you are putting these). Then create your data.img, we suggest using a tool like one from XDA called RMXtools (use ver 1.7) to create it. Check the tool's thread for how to use it, but when you figure it out, you will want to create your data.img inside that android-x86 folder.
You can now reboot, if you have installed the custom UEFI entry right and selected it using EasyUEFI, you should boot right to the Android-x86 grub theme. There you can use up and down to select, and return to boot that entry. You can also hit e to edit the selected entry. You will want to pay attention to which entry you select, since there will be one for Bliss-x86(32bit) and one or Bliss-x86_64(64bit).
Install Bliss-x86 using a VM (virtualbox)
This method does require some beefy PC specs, so it might not work for all. (Info provided by Chih-Wei Huang, from Android-x86 Project)
We could fill up an entire section on this part alone, so here's a couple videos to help you figure things out.
If things still aren't working right for you, chances are it's hardware related.
( check cat /proc/cpuinfo )
USB based install of Bliss-x86 8.0/10.x (32bit or 64bit)
Part 1 - Gather Your Tools
** Please note that our Bliss-x86 builds do not currently support this install method for all machines **
For this method, we are going to want to download Rufus, and the 32bit .iso or 64bit .iso/.img file of Bliss-x86. And you are going to need a decent speed USB drive (4gb or larger is recommended). Once we have those tools, we can move on.
Part 2 - Flashing Bliss-x86 to the USB drive
Plug in your USB drive, and load up Rufus. Once loaded, click on the icon next to the ISO Image dropdown menu. Now browse to where you have your Bliss-x86 (32bit) .ISO, or your Bliss-x86_64 (64bit) .ISO/.IMG file. Once chosen, the dropdown should switch to the correct image type, and fill the rest in for you. Once you are ready, click Start.
Part 3 - Testing Bliss on your system !!IMPORTANT STEP!!
### If you as a user do not test the OS first to make sure it is compatible with your device, please do not expect us to support you if you happen to just install it and something goes wrong. You continued to scroll past all of our warnings about reading and understanding what you are doing, so it's all on you###
From here, you can choose to reboot your machine, and make sure it can boot to USB from BIOS. Once that is set, reboot and choose the USB. If everything went smoothly on the install process, you should see a Grub boot screen. Select the "Live CD" option, and if your machine is compatible, you should then see a little bit of text, and then the Bliss bootanimation. This will go on for a few minutes, but should eventually boot to Bliss-x86. If the system never boots to Bliss-x86, this is a good sign that your system might not be able to run it. If it does boot, and you would like to install it, continue to the next step.
Part 3.5 - Using Bliss-x86 from your USB drive
If you so choose to use Bliss from the USB drive, your data will be saved in a temporary state unless you create a data.img to store the data. We can create a data.img in the root dir of the USB drive (make sure you have a minimum 4-5gb free). We suggest using a tool like one from XDA called RMXtools to create it (we suggest you use version 1.7). Check the tool's thread for how to use it, but when you figure it out, you will want to create your data.img inside the root directory of your USB drive, with all the other .img files. From there, just boot into live mode, setup your system the way you want. and the data should be persistant across a reboot now.
Part 4 - Setting up and Installing Bliss-x86 on your HDD/SSD/SDcard
***Team Bliss is not responsible for any damage, tears, lost time, broken marriages, hallucinations or anything of the sort if things go south with this install. Don't even think about blaming us. You automatically agree to these terms upon continuing the install.***
This is where things start to get a little tricky, especially with how PC's vary. Make sure you have a backup plan in case something goes wrong.
Start off by opening your favorite Partition Management software, and create a new partition, making it the size you want (suggested minimum is 8gb.). Just format it to NTFS for now, because it will be changed by the installer later anyways. Remember what drive you setup here, it's important. For Windows machines, it will typically be Sda4 or Sda5. Also create another 300mb FAT32 partition for Grub to install to. (This part might require a third-party partition manager, Windows disk manager won't let it be that small)
Boot up the Bliss-x86 USB, and select the Installation option from Grub. (second one down)
The installer will load, and you will have an option to choose which partition you created earlier. Pick it, and select Ext4. ***You don't want to get this step wrong. If you are unsure, please boot back to Windows, and write it down this time. It will be Sd** typically.***
When it asks if you want to install System as R/W, select YES.
When it asks if you want to install Grub, select Grub for Legacy BIOS boot type, Grub2 for UEFI boot type, or neither if you are already running a Linux system.
If you chose to install a Grub option, the installer will allow you to choose. Make sure you select the 300mb partition you setup earlier for Grub.
The process will install and create the data directory/img, so go get a drink or something and come back to it.
When finished, the installer will then ask if you want to run Android-x86, you can just reboot here, and make sure you remove the USB drive.
If we have followed all the directions correctly, you should be presented with a Grub boot menu. You can choose your bliss_android_x86 option (or android-x86), and it will boot into Bliss-x86. If you feel the need to customize your grub boot entry, please search the web first. We use the same grub setup that Android-x86 project uses. so their forums will contain just about all the info you will need.
Common command line options (Grub commands)
With Bliss OS on the PC, we tend to use quite a few command line options to get things working right. we've gathered a few of them here to explain them a little bit.
sleep=1
This will enable the system.prop value for sleep.earlysuspend=1, and on some machines, it enables the proper sleep state.
acpi_sleep=s3_bios,s3_mode
Sometimes needed for older machines to enter sleep mode properly
SETUPWIZARD=0
This command will skip SetupWizard on boot. (Only needs to be run once)
AUTO_LOAD=old
This will load android-x86 variants using the old modprobe method to init devices. We sometimes use this to debug devices not starting.
DEBUG=1 & DEBUG=2
These enable verbose console debugging, giving another command shell after loading kernel modules, but before Android init
vga=xxx & video=
These are the common video modes that you can boot into if it doesn't pick the best choice automagically
You can also use video= as resolution parameters: video=LVDS-1:d video=1366x800 , learn more from our own
Henri Koivuneva: https://groups.google.com/forum/#!msg/android-x86/jSF3RnADnqA/1sfYdGV_AQAJ
nomodeset
This will load mostly everything in software rendering/support mode. No hardware acceleration. Good for debugging.
HWACCELL=1
This will disable graphics hardware acceleration, enabling rendering through Swiftshader. (Must use this if running headless)
buildvariant=eng, user, userdebug
This is the command line perimeter to run the current build as eng, userdebug, or user
DPI=xxx
This will manually set the DPI on init. Use this if things are too big/small for you.
As an example, here are a few of the boot options I use in testing:
Code:
menuentry 'Bliss-x86 Test-Oreo' --class bliss {
search --file --no-floppy --set=root /AndroidOS/android.boot
linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive buildvariant=eng quiet sleep.earlysuspend=2 DATA=
initrd /AndroidOS/initrd.img
}
menuentry 'Bliss-x86 Test-Oreo AUTO_LOAD=old' --class bliss {
search --file --no-floppy --set=root /AndroidOS/android.boot
linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive buildvariant=eng quiet DATA= AUTO_LOAD=old
initrd /AndroidOS/initrd.img
}
menuentry 'Bliss-x86 Test-Oreo - SETUP_WIZARD=0' --class bliss {
search --file --no-floppy --set=root /AndroidOS/android.boot
linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive buildvariant=eng SETUPWIZARD=0 quiet DATA=
initrd /AndroidOS/initrd.img
}
menuentry 'Bliss-x86 Test-Oreo - debug=1' --class bliss {
search --file --no-floppy --set=root /AndroidOS/android.boot
linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive buildvariant=eng SETUPWIZARD=0 quiet DATA= DEBUG=1
initrd /AndroidOS/initrd.img
}
menuentry 'Bliss-x86 Test-Oreo - debug=2' --class bliss {
search --file --no-floppy --set=root /AndroidOS/android.boot
linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive buildvariant=eng SETUPWIZARD=0 quiet DATA= DEBUG=2
initrd /AndroidOS/initrd.img
}
Downloads:
!!!!BEFORE YOU SCROLL DOWN!!!
We offer a few different types of downloads for Bliss-x86. Stable, EDU, & Bleeding Edge builds. Below is a short run-down of what that means to you.
Stable Builds - kernel-4.9.x/etc
These builds use the most stable branches we have for the kernel & OS. This is usually right in line with what the Android-x86 project has unless there are some incompatibilities. These are updated regularly, but least often.
EDU Builds (discontinued for now) - Kernel-4.4.x/kernel-4.9.x/4.11.x
These builds are a rootless version of Bliss, packaged with rootless Substratum and a ton of features to still allow customization without compromising security. Perfect for not only the classroom, but the corporate environment as well. These builds are released with both kernel-4.4 & kernel-4.10/4.11 for a broad compatibility range. This branch is still a work in progress
Bleeding Edge Builds - kernel-4.9.x/Kernel-4.10.x/4.11.x/4.12.x/4.14x/4.15x/4.16x/4.17x
These builds will usually contain one of the newer kernels we are working on, and these builds could be almost weekly, as this will be used as our testing branch. This also means, these builds will see features that may or may not be included in the stable releases. Eventually, once this branch is stable enough, it is what gets pushed to the Stable branch for release.
Nightlies - kernel-4.9.x/4.15x/4.16x/4.17x
These are where our most recent changes can be seen. We use Jenkins for tasking these builds, so some may have issues, some may not. !!These builds may break things!! So please tread carefully when testing the nigltlies.
What do all the extra things in the filenames mean?
Our builds include a ton of changes between each build, so to make things easier for all of you, we try to add some extra info to the filenames.
Typical build name: Bliss-v10.0-Beta-android_x86_64-OFFICIAL-20180312-1933_k4.15-sb-ga-jwd_m17.3.6_surface-book.iso
So, we will break this down into parts for you. We always list it by Kernel ver, then Mesa ver, followed by abreviations for the changes in that build or trailed with a target device label.
Kernel ver: k4.15-sb-ga-jwd
This represents the kernel branch name used in this build. But what do the acronyms mean? Well, when I add any number of commits from a given remote, I usually use a three letter acronym for the remote. For example, jwd stands for this remote: https://github.com/jwrdegoede/linux-sunxi Or when I use ga, it is short for GalliumOS: https://github.com/GalliumOS/linux
Mesa ver: 17.3.6
This represents also, the branch name for mesa
Trailing notes (not always)
These are usually the last word or two of the filename. The represent any device specific commits that have been added to the builds.
!!Please Note!!
Just because you see a target device in the filename, doesn't mean that build won't work for other devices. It only means that that build contains specific commits or firmware files for that target device. In the case of our Surface builds, they will ALL work on other devices. The drivers and firmware is still there for those to work.
Bliss OS for PC Downloads - Stable, EDU, Nightlies & Bleeding Edge Builds
Current Releases: https://downloads.blissroms.com/BlissOS/
Archived Releases: https://sourceforge.net/projects/blissos-x86/files/Official
https://www.androidfilehost.com/?w=files&flid=136638
n7x / mm6.0 - Bliss-x86 - 6.4-7.x - NO LONGER SUPPORTED
**Development on our Bliss-6.4 through 7.x builds have stopped in favor for oreo builds. Please do not ask for any further development on our marshmallow builds. You will be answered with sarcasm**
Archived Released: https://www.androidfilehost.com/?w=files&flid=127970
LATEST UPDATE:
https://forum.xda-developers.com/showpost.php?p=77160012&postcount=2209
!!New Bliss-x86 v10.1 PC Beta - 07/16/2018
We have a somewhat transitional update for you all today. I rebased BlissOS off our GSI project (Bliss-Bass), and the outcome is actually pretty stable. Some old issues have returned, and some have been resolved. Most of the details can be found below in the Updates/Additions or the Changelog. Build might take a while to upload, so keep checking back.
Have FUN!!
Bliss-v10.1-Beta-android_x86_64-OFFICIAL-20180716-1838_k4.15.18-ipts_18.1.0-devel_w14_dev-kernel.org.iso - This contains firmware for all current devices included in kernel.org. - THIS BUILD INCLUDES OpenGapps
Updates / Additions:
Kernel 4.15.18 - reworked for all devices, and added IPTS commits *Surface devices will require manual firmware update*
Moved to old way of packaging the system image. (for root to work, you must extract the system.img file from within the system.sfs, then delete the system.sfs file)
Rooted with Superuser. Access Superuser settings from Settings>Users (R/W works if you extract system.img, read above)
Substratum Service mode enabled (now fully working, but reboot required after you build/enable a theme. select from Settings>Display>Advanced>Themes)
A few fixes and updates for Bluetooth
Fixes for some devices that didn't boot right
Using Android-x86's newest updates to bootable/newinstaller (this comes with a new UEFI grub menu)
Maybe more... I've been busy
Bugs / Issues:
Android Service Has Stopped dialog is back. It does not harm anything though.
Bluetooth issues still exist on some devices
you will get Play Store and process crashes until WiFi is connected. Just dismiss these for now. Once connected to WiFi, things should work properly. **ONLY ON OPENGAPPS BUILDS**
Sound or keyboard might not work, try to boot using the secondary modprobe option
Expect more. It's only a beta release. Report your issues, but make sure you SEARCH the thread first to make sure it hasn't been answered. And post logs too (I know, WTF are logs anyways??)
As always, check the Bliss download site for the newest builds. The rest are all on AFH as a backup archive. Hope you all enjoy this one
https://downloads.blissroms.com/BlissOS/bleeding_edge/
Archived Instructions for old versions of Bliss OS for PC
**These instructions are based on the Android-x86 project's installation guide. We have not changed the installer, so all actions still apply. Also thanks to @bg260 for his contributions, this guide was adapted partially from his work**
*** Team Bliss will not accept any responsibility for users who have not read or understand the instructions, or any damage done to user machines due to lack of understanding all risks involved. You accept all responsibility by continuing beyond this point. ***
*** Any questions, install issues, bug reports, etc will be delightfully ignored unless accompanied with a log, device info, build info, install method, and any other information required to diagnose your issue as NOT user error ***
For Bliss-x86 6.4/7.x USB based installs (32bit or 64bit)
Part 1 - Gather Your Tools
** Please note that our Bliss-x86 n7.x builds do not currently support this install method for all machines **
For this method, we are going to want to download Rufus, and the 32bit .iso or 64bit .iso/.img file of Bliss-x86. And you are going to need a decent speed USB drive (4gb or larger is recommended). Once we have those tools, we can move on.
Part 2 - Flashing Bliss-x86 to the USB drive
Plug in your USB drive, and load up Rufus. Once loaded, click on the icon next to the ISO Image dropdown menu. Now browse to where you have your Bliss-x86 (32bit) .ISO, or your Bliss-x86_64 (64bit) .ISO/.IMG file. Once chosen, the dropdown should switch to the correct image type, and fill the rest in for you. Once you are ready, click Start.
Part 3 - Testing Bliss on your system
From here, you can choose to reboot your machine, and make sure it can boot to USB from BIOS. Once that is set, reboot and choose the USB. If everything went smoothly on the install process, you should see a Grub boot screen. Select the "Live CD" option, and if your machine is compatible, you should then see a little bit of text, and then the Bliss mm6.0 bootanimation. This will go on for a few minutes, but should eventually boot to Bliss-x86. If the system never boots to Bliss-x86, this is a good sign that your system might not be able to run it. If it does boot, and you would like to install it, continue to the next step.
Part 3.5 - Using Bliss-x86 from your USB drive
If you so choose to use Bliss from the USB drive, your data will be saved in a temporary state unless you create a data.img to store the data. We can create a data.img in the root dir of the USB drive (make sure you have a minimum 4-5gb free). We suggest using a tool like one from XDA called RMXtools to create it (we suggest you use version 1.7). Check the tool's thread for how to use it, but when you figure it out, you will want to create your data.img inside the root directory of your USB drive, with all the other .img files. From there, just boot into live mode, setup your system the way you want. and the data should be persistant across a reboot now.
Part 4 - Setting up and Installing Bliss-x86 on your HDD/SSD/SDcard
***Team Bliss is not responsible for any damage, tears, lost time, broken marriages, hallucinations or anything of the sort if things go south with this install. Don't even think about blaming us. You automatically agree to these terms upon continuing the install.***
This is where things start to get a little tricky, especially with how PC's vary. Make sure you have a backup plan in case something goes wrong.
Start off by opening your favorite Partition Management software, and create a new partition, making it the size you want (suggested minimum is 8gb.). Just format it to NTFS for now, because it will be changed by the installer later anyways. Remember what drive you setup here, it's important. For Windows machines, it will typically be Sda4 or Sda5. Also create another 300mb FAT32 partition for Grub to install to. (This part might require a third-party partition manager, Windows disk manager won't let it be that small)
Boot up the Bliss-x86 USB, and select the Installation option from Grub. (second one down)
The installer will load, and you will have an option to choose which partition you created earlier. Pick it, and select Ext4. ***You don't want to get this step wrong. If you are unsure, please boot back to Windows, and write it down this time. It will be Sd** typically.***
When it asks if you want to install System as R/W, select YES.
When it asks if you want to install Grub, select Grub for Legacy BIOS boot type, Grub2 for UEFI boot type, or neither if you are already running a Linux system.
If you chose to install a Grub option, the installer will allow you to choose. Make sure you select the 300mb partition you setup earlier for Grub.
The process will install and create the data directory/img, so go get a drink or something and come back to it.
When finished, the installer will then ask if you want to run Android-x86, you can just reboot here, and make sure you remove the USB drive.
If we have followed all the directions correctly, you should be presented with a Grub boot menu. You can choose your bliss_android_x86 option (or android-x86), and it will boot into Bliss-x86. If you feel the need to customize your grub boot entry, please search the web first. We use the same grub setup that Android-x86 project uses. so their forums will contain just about all the info you will need.
Easy Install For Bliss-x86 6.4/7.x MBR (32bit or 64bit)
** This method is the easiest install method for MBR/GPT boot setups, but it does require Windows to install. **
For the overall instructions on using this method, please refer to the tools original thread: https://forum.xda-developers.com/showthread.php?t=2142563
I have taken some time to update the tool for easy install on UEFI/ESP machines. The builds I modified can be found here: https://www.androidfilehost.com/?w=files&flid=185778
Part 1 - Using the Installer
The installer has been modified, and will read and install any 32bit or 64bit Bliss-x86 build onto a GPT/MBR type setup. Just run the installer, pick the Bliss-x86 .iso file, and select your size data.img. If you require a size data.img larger than what is available, please use the RMXtools v1.7 mentioned in this post elsewhere.
Easy Install For Bliss-x86 6.4/7.x UEFI/ESP (32bit or 64bit)
** This method might be the easiest currently, but there's a trick to get proper root for now. **
For the overall instructions on using this method, please refer to the tools original thread: https://forum.xda-developers.com/android/software/winapp-android-x86-installer-uefi-t3222483
I have taken some time to update the tool for easy install on UEFI/ESP machines. The builds I produce can be found here:
https://www.androidfilehost.com/?w=files&flid=140019
And the source for those builds can be found here: https://github.com/BlissRoms-x86/Androidx86-Installer-for-Windows
This tool should work on RemixOS as well, but I have not tested it yet (been too busy on this project)
Part 1 - Using the Installer
The installer has been updated, and it will accept the .iso files just fine now, as well as allow proper root with one simple trick. If you do not want to use root (which is needed for Substratum to work), then just install as normal.
If you do want root, go through the directions like normal, and after install is finished, browse to the AndroidOS directory it created and delete the system.sfs file.
Part 2- Switching the UEFI/EFS boot entry
Open the EasyUEFI tool mentioned above, then switch the UEFI/EFI entry it created to boot first. Close and reboot.
Custom Install For Bliss-x86 6.4/7.x UEFI/ESP (32bit or 64bit)
***Again, Team Bliss is not responsible for any damage, tears, lost time, alien abductions, experimental relationships or anything else if things go south with this install. Don't even think about blaming us. You automatically agree to these terms upon continuing the install.***
Part 1 - Mounting Your UEFI/ESP Partition
You will want to make sure you can view hidden and system files in Explorer options (if you need to , google it), Once you do that, hit the start menu, and type in CMD, and then right click, and open as administrator. It should look like the window image attached to this post.
Once that is open, type in:
Code:
mountvol X: /S
Then check to see if it is mounted already
Start Task Manager; a) CTRL+ALT+DEL -> Task Manager b) CTRL+Shift+ESC c) Right click the taskbar and select Task manager.
Click "File" tab -> "Run new task" -> "Browse" -> "This computer" -> SYSTEM (X or type in "x:" in the filepath bar"
If you cannot access X:, then that could mean one of three things. 1) You have an ESP setup, and just need to scroll down to the ESP System Partition setups section, or 2) You have a legacy MBR setup and just don't know it. or 3) Your setup falls within the other category. Check below for some insight, or the second post for more links to help you figure things out.
ESP System Partition setups
Windows 10 has EFI partition sometimes already mounted under Z: letter, but it's hidden.
A very quick and easy way to access ESP (EFI System Partition) in Windows 10: (no command line use needed!)
Start Task Manager; a) CTRL+ALT+DEL -> Task Manager b) CTRL+Shift+ESC c) Right click the taskbar and select Task manager.
Click "File" tab -> "Run new task" -> "Browse" -> "This computer" -> SYSTEM (Z or type in "z:" in the filepath bar"
Now go to boot/grub/grub.cfg and edit it accordingly with Notepad++ or other editor
Save the file and your're ready to go
If this still doesn't work - try this:
Run CMD.exe as Admin <- IMPORTANT Then enter following commands:
Code:
taskkill /im explorer.exe /f
This will kill explorer.exe process - don't be surprised It's needed, because by default it's ran by "currently logged in user" and it has to be run as Administrator in order to view the mounted system drive. Administrator account is not the same as an account with administrative privileges.
Code:
Code:
mountvol X: /s
This will mount the system partition that usually consists of uefi related files. X: is the letter of the drive - you can use whatever letter you want, but it has to be free.
Then type:
Code:
explorer
This will run explorer as Administrator and will allow you to browse the mounted system partition.
The above may not work for all devices, as some handle UEFI differently.
Part 2 - Run Explorer as Admin
Run CMD.exe as Admin <- IMPORTANT and enter following commands:
Code:
taskkill /im explorer.exe /f
This will kill explorer.exe process - don't be surprised It's needed, because by default it's ran by "currently logged in user" and it has to be run as Administrator in order to view the mounted system drive. Administrator account is not the same as an account with administrative privileges.
Then type:
Code:
explorer
This will run explorer as Administrator and will allow you to browse the mounted system partition.
Part 3 - Roll You Own UEFI Install
Let's start by downloading the needed files. Here is a customized UEFI boot for 32 & 64 bit machines. https://www.androidfilehost.com/?w=files&flid=143191
**NOTE: For our Bliss-x86 n7.x builds, you will have to editr the grub.cfg and remove the androidboot.hardware... command. I will update this post more in the future with more details **
If you are using Bliss-x86 n7.x, please use the grub entry below as a guide:
Code:
menuentry 'Bliss-x86' --class android {
search --file --no-floppy --set=root /AndroidOS/system.img
linux /AndroidOS/kernel root=/dev/ram0 androidboot.selinux=permissive quiet DATA=/AndroidOS
initrd /AndroidOS/initrd.img
}
(EXT3/EXT4 installs) (NOTE: Due to a bug on ext3/ext4 installs, please use the grub setup below)
Code:
menuentry 'Bliss-x86' --class android {
search --file --no-floppy --set=root /AndroidOS/system.img
linux /AndroidOS/kernel root=/dev/ram0 androidboot.selinux=permissive quiet DATA=
initrd /AndroidOS/initrd.img
}
Now that we have the partition mounted, we can copy that BOOT dir to your UEFI partition using Explorer as admin or using the New Task dialog from Task Manager. (look up for a refresher on both of those) Once it is coppied, go back to the admin CMD prompt and type:
Code:
mountvol X: /D
or if you used Z:, type:
Code:
mountvol Z: /D
This will dismount the UEFI/ESP volume for safe reboot. we then suggest you use EasyUEFI here to create the UEFI boot entry. Open the app, and create a new entry. Select your UEFI partition, and in the File Path, click Browse and use the file manager window to browse to your BOOT/grub/grubx64.efi file. Click OK, and then choose the new grub entry and move it to the top. Make sure secure boot is turned off or else it likely will just boot back to Windows.
Part 4 - The Manual Blissification of Your PC
To do a manual "Wubi like" install of Bliss-x86 after you install the UEFI entry, you will need to open the Bliss-x86 .iso/img with 7zip, and then open the system.sfs inside 7zip, and extract the system.img file to C:/android-x86 or whatever your target drive is. After that, extract the rest rest of the contents to the android-x86 folder. Then create your data.img, we suggest using a tool like one from XDA called RMXtools (use ver 1.7) to create it. Check the tool's thread for how to use it, but when you figure it out, you will want to create your data.img inside that android-x86 folder.
You can now reboot, if you have installed the custom UEFI entry right and selected it using EasyUEFI, you should boot right to the Android-x86 grub theme. There you can use up and down to select, and return to boot that entry. You can also hit e to edit the selected entry. You will want to pay attention to which entry you select, since there will be one for Bliss-x86(32bit) and one bor Bliss-x86_64(64bit).
Bliss-x86 6.4/7.x Custom UEFI/ESP Method Update Instructions:
To do this you will have to make some sacrifices to let this go through successfully. This will of course cause a few of your ROOT apps and tweaks that were written to system to vanish, so after we are done, you will have to reapply/reinstall those
Using the .iso/.img from the Bliss website
You need to grab the .iso/img file for the updated version of Bliss-x86, then we can upgrade manually with no issues usually, but you will have to do this from Windows (or your OS of choice). Open the Bliss-x86 .iso/img with 7zip, and then open the system.sfs inside 7zip, and extract the system.img file to C:/android-x86 or whatever your target drive is, overrighting the existing file. After that, extract the rest rest of the contents to the android-x86 folder:
initrd.img
ramdisk.img
kernel
I also replace the install.img and isolinux.sys files, but I don't think they are needed. I'm just lazy and drag it all over from the .zip
Once that is done, you can reboot
Bliss-x86 6.4 Xposed Install Instructions (32bit or 64bit):
*** There is the potential to screw up your Bliss-x86 install by installing Xposed. Do not continue if you do not know what you are doing. Team Bliss will not be held responsible.***
Part 1 - Installing Xposed APK:
Start off from your Bliss-x86 installation by heading to this thread and downloading DVDandroid's XposedInstaller. Once you have it downloaded, install the .apk file.
Part 2 - 32bit Xposed Install (scroll down for 64bit):
You need to grab this Xposed.zip while using the 32bit Bliss-x86 (Thanks to Martin over on the Android-x86 Google Groups for this). Once you have the download, use SolidExplorer or a simular file explorer to extract the contents to your data partition. We recommend extracting it to sdcard/xposed . Now we need to open a terminal app, and type:
Code:
su
Grand it permissions, and then type:
Code:
cd sdcard/xposed
Then type:
Code:
sh flash-script.sh && reboot
If everything goes smoothly, your PC should finish the install, and reboot. Choose your version of Bliss-x86 upon reboot, and wait. It might take a little longer to boot up this time. **Please note that this does not work on all machines. There are some that it will not work for. If you are using one, you will need to extract the system.img file from the iso back to the system partition or directory you have Bliss-x86 installed on**
Part 2 - 64bit Xposed Install:
You need to grab this Xposed64.zip while using the 64bit Bliss-x86 (This one comes from HypoTurtle over on XDA). Once you have the download, use SolidExplorer or a simular file explorer to extract the contents to your data partition. We recommend extracting it to sdcard/xposed . Now we need to open a terminal app, and type:
Code:
su
Grand it permissions, and then type:
Code:
cd sdcard/xposed64
Then type:
Code:
sh flash-script.sh && reboot
If everything goes smoothly, your PC should finish the install, and reboot. Choose your version of Bliss-x86 upon reboot, and wait. It might take a little longer to boot up this time. **Please note that this does not work on all machines. There are some that it will not work for. If you are using one, you will need to extract the system.img file from the iso back to the system partition or directory you have Bliss-x86 installed on**
Adding ARISE Sound Systems to Bliss-x86 n7.1.1 (64bit only)
**NOTE: This might not work as intended on some 32bit installs, and it also will break standard AOSP audio visualization. You have been warned!! **
(Basic Tutorial)
To start off, I would like to state that this can mess things up if you don't know what you're doing, or if you have already added stuff to your system.img, or if you copy/delete the wrong files, etc. You get the point. Team Bliss is not responsible for your mistakes. If your having second thoughts, please ask first and provide as much detail as possible. This isn't a Twitter post.
Now that we're through the ugly part, let's get on to making Bliss-x86 sound better First you will need to grab the files. [URL]https://www.androidfilehost.com/?fid=24651430732237629
All the work done on this is due to A.R.I.S.E. Sound Systems™, so make sure you thank them properly if you like what you hear
PART 1
Once you download the .Zip, use a root file manager, like SolidExplorer to extract it to a folder on your SD. Open that folder up and navigate to the numbers directory. Select all the contents of that directory and copy it to the /root/system/ folder. Overight and files and merge any folders needed.
View attachment 4023464
PART 2
Now we have to navigate to the priv-app folder in /root/system/, and create a new folder called ViPER4Arise . Then navigate back to the root of the extracted zip, and go to /customize/app. Copy the two .apk's there, along with the x86 folder to the new directory you created in /root/system/ then install each one and reboot.
View attachment 4023478
PART 3
Once reboot is complete, load up the ViPER4Arise app, and it will ask to install the driver. Grant it su permissions and any other permissions it might ask. Install might take a few, but it will complete if you let it. Once it completes, it will tell you to reboot. Do it. And when you come back to Bliss, it will have some nice sound controls
View attachment 4023486
Enjoy!!
Setting Taskbar v3.3+ as default navbar in Bliss-x86 n7.1.x
!!WARNING!! This must be done after first boot and setup is complete. Setup wizard uses default navbar.
Follow this link to read the walkthrough: https://forum.xda-developers.com/showpost.php?p=71757350&postcount=290
https://drive.google.com/open?id=0B2hjuvxuncgYQ3Z2dUE1YUo3TX not found
Can I use D:\android-x86 ?
Dunard said:
https://drive.google.com/open?id=0B2hjuvxuncgYQ3Z2dUE1YUo3TX not found
Can I use D:\android-x86 ?
Click to expand...
Click to collapse
My bad... I will move that to my AFH as well. And yes, you can use whatever folder/drive combo you want. Just make sure you edit the grub.cfg to match the location, or keep the folder name the same as I describe, and change the drive. It will search the mounted drives for the first folder matching that name
EDIT: Updated the link
@social-design-concepts would this work on baytrail android tablets?
Wow looks great. Thanks for all the hard work. @electrikjesus et al.
---------- Post added at 06:48 AM ---------- Previous post was at 06:15 AM ----------
Madlad003 said:
would this work on baytrail android tablets?
Click to expand...
Click to collapse
There's only one way to find out. My guess is you'll have a few minor incompatibilities.
Thank you very much @electrikjesus . All working fine. Amazing rom.
UPDATE
I have pushed an update to the Android-x86 UEFI installer, it should work for root now with one simple trick. I updated the second post accordingly as well. Thanks peeps for all the support on this project so far
Second Update:
There is now also a 32bit n7.1.1 build in the download folder. Only known difference so far is root is not working right. I'll fix that here soon.
UPDATES:
Bliss-x86 32bit - I have fix the issue with how supersu is integrated on the 32bit builds, so a new build can be found in the Bliss-x86 n7.1.x folder
I also had a couple people asking questions about how to use Taskbar and Substratum. So I went and made a couple short videos on that too.
Taskbar:
Substratum:
UPDATE - 01.11.17 - OS is now in line with 7.1.1r12, all the Surface patches have been correctly applied. So support for all M$ Surface product up to Surface Book should be there. 32-bit version didn't have any touch issues on my end. 64-bit still did eventually though. Could be my hardware I'm testing with though too. (I'll eventually be able to afford something new)
Builds are available in the Bliss-x86 n7.1x folder for my AFH. ENJOY!!
Xposed instructions are a bit wrong - despite the screenshots from groups
As you are replacing critical system files, you need to run the script in debug mode: DEBUG=1 rather than from a running system.
Feel free to verify but pretty sure on that.
Getting reboots as soon as android text on black screen appears, checked debug option and it got stuck at this point
It happens after I update apps or install new apps
HypoTurtle said:
Xposed instructions are a bit wrong - despite the screenshots from groups
As you are replacing critical system files, you need to run the script in debug mode: DEBUG=1 rather than from a running system.
Feel free to verify but pretty sure on that.
Click to expand...
Click to collapse
I use the local terminal accessed from Dev Options. My instructions work fine from there once I request su
muzab a said:
Getting reboots as soon as android text on black screen appears, checked debug option and it got stuck at this point
Click to expand...
Click to collapse
How odd. It says it can't access the local time... Never seen that before. Try to change persist.rtc_local_time in build.prop to persist.rtc_local_time = 0
electrikjesus said:
I use the local terminal accessed from Dev Options. My instructions work fine from there once I request su
Click to expand...
Click to collapse
You sure? Xposed installed and running correctly. There are some system libs and bins that I'm pretty sure can't be replaced while in use.
HypoTurtle said:
You sure? Xposed installed and running correctly. There are some system libs and bins that I'm pretty sure can't be replaced while in use.
Click to expand...
Click to collapse
I've done it my way since I put them up there. Just make sure you're superuser and reboot afterwards. If it gives you trouble, then do it your way. If they both work, I'll add your method to the instructions as well.
If I had to guess, it is because of how we reworked how SuperSU is built into Bliss-x86. Android-x86 Project uses a variation of CM's AppOps/Privacy Manager, and that was tied to the root terminal like you describe, as well as the filesystem, buildtype, etc. You likely had to access it using DEBUG=1 grub boot option. With Bliss-x86 (and remixOS I think) just using the root terminal with proper su access should do the trick.
@HypoTurtleI installed xposed as @electrikjesus mentioned. All fine, no problem to install. After reboot I could install youtube adaway. I tried it in Remix os for pc as well. It worked.

Categories

Resources