diff --git a/.gitbook/assets/advanced-startup (1) (1).png b/.gitbook/assets/advanced-startup (1) (1).png deleted file mode 100644 index b08a6913..00000000 Binary files a/.gitbook/assets/advanced-startup (1) (1).png and /dev/null differ diff --git a/.gitbook/assets/advanced-startup (1).png b/.gitbook/assets/advanced-startup (1).png deleted file mode 100644 index b08a6913..00000000 Binary files a/.gitbook/assets/advanced-startup (1).png and /dev/null differ diff --git a/.gitbook/assets/booting-into-installer.png b/.gitbook/assets/booting-into-installer.png deleted file mode 100644 index 1f124229..00000000 Binary files a/.gitbook/assets/booting-into-installer.png and /dev/null differ diff --git a/.gitbook/assets/choose-partition.png b/.gitbook/assets/choose-partition.png deleted file mode 100644 index 172ea6f7..00000000 Binary files a/.gitbook/assets/choose-partition.png and /dev/null differ diff --git a/.gitbook/assets/clean-usb-select-ok.png b/.gitbook/assets/clean-usb-select-ok.png deleted file mode 100644 index f432197e..00000000 Binary files a/.gitbook/assets/clean-usb-select-ok.png and /dev/null differ diff --git a/.gitbook/assets/do-not-reformat.png b/.gitbook/assets/do-not-reformat.png deleted file mode 100644 index 69981bf1..00000000 Binary files a/.gitbook/assets/do-not-reformat.png and /dev/null differ diff --git a/.gitbook/assets/downloading-rufus.png b/.gitbook/assets/downloading-rufus.png deleted file mode 100644 index cfe9e578..00000000 Binary files a/.gitbook/assets/downloading-rufus.png and /dev/null differ diff --git a/.gitbook/assets/grab-a-coffee.png b/.gitbook/assets/grab-a-coffee.png deleted file mode 100644 index 5e1860d2..00000000 Binary files a/.gitbook/assets/grab-a-coffee.png and /dev/null differ diff --git a/.gitbook/assets/install-grub.png b/.gitbook/assets/install-grub.png deleted file mode 100644 index c6a1a87e..00000000 Binary files a/.gitbook/assets/install-grub.png and /dev/null differ diff --git a/.gitbook/assets/installation-window.png b/.gitbook/assets/installation-window.png deleted file mode 100644 index 7fd7fc55..00000000 Binary files a/.gitbook/assets/installation-window.png and /dev/null differ diff --git a/.gitbook/assets/notice-select-yes.png b/.gitbook/assets/notice-select-yes.png deleted file mode 100644 index 3566152f..00000000 Binary files a/.gitbook/assets/notice-select-yes.png and /dev/null differ diff --git a/.gitbook/assets/root-installation.png b/.gitbook/assets/root-installation.png deleted file mode 100644 index 6533422b..00000000 Binary files a/.gitbook/assets/root-installation.png and /dev/null differ diff --git a/.gitbook/assets/select-iso-mode.png b/.gitbook/assets/select-iso-mode.png deleted file mode 100644 index be5021f3..00000000 Binary files a/.gitbook/assets/select-iso-mode.png and /dev/null differ diff --git a/.gitbook/assets/select-iso.png b/.gitbook/assets/select-iso.png deleted file mode 100644 index 66754b55..00000000 Binary files a/.gitbook/assets/select-iso.png and /dev/null differ diff --git a/.gitbook/assets/start-flashing.png b/.gitbook/assets/start-flashing.png deleted file mode 100644 index ec2841ea..00000000 Binary files a/.gitbook/assets/start-flashing.png and /dev/null differ diff --git a/.gitbook/assets/uefi-android.png b/.gitbook/assets/uefi-android.png deleted file mode 100644 index d5e89c1c..00000000 Binary files a/.gitbook/assets/uefi-android.png and /dev/null differ diff --git a/.gitbook/assets/uefi-boot-installer.png b/.gitbook/assets/uefi-boot-installer.png deleted file mode 100644 index 811db5d6..00000000 Binary files a/.gitbook/assets/uefi-boot-installer.png and /dev/null differ diff --git a/.gitbook/assets/uefi-create.png b/.gitbook/assets/uefi-create.png deleted file mode 100644 index c43c301d..00000000 Binary files a/.gitbook/assets/uefi-create.png and /dev/null differ diff --git a/.gitbook/assets/uefi-ext4.png b/.gitbook/assets/uefi-ext4.png deleted file mode 100644 index 80ef010e..00000000 Binary files a/.gitbook/assets/uefi-ext4.png and /dev/null differ diff --git a/.gitbook/assets/uefi-grub.png b/.gitbook/assets/uefi-grub.png deleted file mode 100644 index bcd5323e..00000000 Binary files a/.gitbook/assets/uefi-grub.png and /dev/null differ diff --git a/.gitbook/assets/uefi-partitioned.png b/.gitbook/assets/uefi-partitioned.png deleted file mode 100644 index 05dd5d63..00000000 Binary files a/.gitbook/assets/uefi-partitioned.png and /dev/null differ diff --git a/.gitbook/assets/uefi-risks.png b/.gitbook/assets/uefi-risks.png deleted file mode 100644 index 32cc6e2b..00000000 Binary files a/.gitbook/assets/uefi-risks.png and /dev/null differ diff --git a/.gitbook/assets/using-rufus-to-flash-usb.png b/.gitbook/assets/using-rufus-to-flash-usb.png deleted file mode 100644 index e239a58d..00000000 Binary files a/.gitbook/assets/using-rufus-to-flash-usb.png and /dev/null differ diff --git a/.gitbook/assets/using-the-installer.png b/.gitbook/assets/using-the-installer.png deleted file mode 100644 index df4e6dc9..00000000 Binary files a/.gitbook/assets/using-the-installer.png and /dev/null differ diff --git a/Installation/advanced-installation.md b/Installation/advanced-installation.md deleted file mode 100644 index f8862330..00000000 --- a/Installation/advanced-installation.md +++ /dev/null @@ -1,109 +0,0 @@ -# Advanced Installation - -This is only for **advanced users**. For regular users, please visit our main [Installation Guide found here.](installation-guide.md) - -## Custom Install - Bliss OS 8.x/10.x/11.x UEFI/ESP \(64-bit\) - -Just as a reminder, Team Bliss is **NOT** responsible for any damage caused by this guide. By continuing, you automatically agree to these terms. - -### Part 1 - Mounting Your UEFI/ESP Partition - -You will want to make sure you can view hidden and system files in Explorer options. Once you do that, hit the start menu, and type in `cmd`. Once "Command Prompt" shows up, right click on it and choose "Open as administrator". - -#### `cmd` is not showing up, what should I do? - -Press the Windows key and the R key to bring up the "Run..." dialog. Type in `cmd`, and then press Ctrl-Shift-Enter. Press "Yes" on the UAC popup. - -Run the following: - -```text -mountvol X: /S -``` - -Then check to see if it is mounted already. Run "Task Manager" by either - -* Pressing Ctrl-Alt-Del and then clicking on "Task Manager", or -* Pressing Ctrl-Shift-Esc - -Click on "File", "Run new task", "Browse", "This computer", and SYSTEM \(X or type in `X:` in the filepath bar. If you cannot access `X:`, then that could mean one of three things. - -* You have an ESP setup \(follow the installation method below\) -* You have a legacy MBR setup -* Your setup has a custom boot sequence - -### Part 1 \(alternate\) - ESP setup - -Windows 10 sometimes has an EFI partition already mounted under drive letter `Z:`, hidden. A very quick and easy way to access the ESP \(EFI System Partition\) in Windows 10 without using the command line is to start "Task Manager" \(check above if you forgot the steps\), and then click on "File", "Run new task", "Browse", "This computer", and SYSTEM \(Z or type in `Z:` in the filepath bar\). - -Now go to `boot/grub/grub.cfg` and edit it accordingly with Notepad++ or another text editor. Save the file and your're ready to go! - -### Part 1 \(alternate\) - Killing the `explorer.exe` - -Run `cmd` as admin and enter the following command: - -```text -taskkill /im explorer.exe /f -``` - -This will kill the `explorer.exe` process - don't be surprised if it shows a warning. This step is sometimes required, because by default `explorer.exe` is ran by the currently logged in user, and it has to be run by the "Administrator" in order to view the mounted system drive. **The "Administrator" account is not the same as an account with administrative privileges.** - -```text -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 for assignment. Then type: - -```text -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 - UEFI installation - -Let's start by downloading the required files. [Here is a customized UEFI boot for 32/64-bit machines.](https://www.androidfilehost.com/?w=files&flid=143191) - -Please note that if you came from our Nougat builds to our Bliss OS 8.x builds, you will have to edit the `grub.cfg`. - -If you are using Bliss OS 8.x/10.x, please use the `grub` entry below as a guide: - -```text -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 androidboot.hardware=android_x86_64 quiet DATA= - initrd /AndroidOS/initrd.img -} -``` - -If you are installing on `ext3`/`ext4`, due to a bug in the install you will have to use the following `grub` entry setup: - -```text -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 androidboot.hardware=android_x86_64 quiet DATA= - initrd /AndroidOS/initrd.img -} -``` - -Now that we have the partition mounted, we can copy that `BOOT` directory to your UEFI partition using `explorer` as the Administrator or by using the "New Task" dialog from Task Manager. \(See above if you forgot the steps!\) Once it is copied, go back to the Administrator `cmd` prompt and type: - -```text -mountvol X: /D -``` - -or if you used `Z:`, type: - -```text -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 OS after you install the UEFI entry, you will need to open the Bliss OS `.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 RMXtools \(use version 1.7\) from XDA to create it. Check the tool's thread for detailed instructions. 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)`. - diff --git a/Installation/collecting-bug-reports.md b/Installation/collecting-bug-reports.md index 58fe85ee..5bb7f48f 100644 --- a/Installation/collecting-bug-reports.md +++ b/Installation/collecting-bug-reports.md @@ -1,7 +1,7 @@ ## Collecting Bug Reports This process is mostly the same as Android-x86 builds, but with a few additions that help things along. -If you need to collect logs in order to [submit a bug report](https://github.com/BlissRoms-x86/support), then the first thing you will want to do is reboot your Bliss OS install using debug mode. We do this through Grub with the command: +If you need to collect logs in order to submit a bug report, then the first thing you will want to do is reboot your Bass OS install using debug mode. We do this through Grub with the command: ``` DEBUG=2 ``` @@ -9,4 +9,4 @@ Once your device starts to boot, you will be presented with a root console, just From here, you can use root commands to remount as read/write, or do basic filesystem and kernel debugging. In order to proceed to Android, you will need to type 'exit' followed by Return twice in the console, and the system will continue to boot. -While in debug mode, there are logs and dmesg found in both /tmp/ as well as /data/. You will need those logs to [submit a bug report](https://github.com/BlissRoms-x86/support). +While in debug mode, there are logs found in both /tmp/log for early boot, as well as /data/log for Android boot. You will need those logs to submit a bug report. diff --git a/Installation/install-from-bootable-usb.md b/Installation/install-from-bootable-usb.md index 6a821e03..0c09c026 100644 --- a/Installation/install-from-bootable-usb.md +++ b/Installation/install-from-bootable-usb.md @@ -2,77 +2,19 @@ description: Install Bliss OS from bootable USB Installer --- -# Install Legacy From Bootable USB +# Install From Bootable USB -## Introduction +## Manual Install Bass OS -**This is the current recommended method for beginners!** - -We recommend beginners to use this method as it is the least error-prone and non-destructive. The following instructions were adapted from the Android-x86 project, so some of the images are from them. To look at Android-x86's original installation guide, [click here.](https://www.android-x86.org/installhowto.html) - -## Download Bliss OS - -You can download a stable Bliss OS build from the website [here](https://blissos.org). - -## Install Bliss OS - -{% hint style="info" %} -If you are looking for a GUI based installer for Windows, we do include one in some of the .ISO's we produce, and we also support the [Supreme-Gamers Advanced Android-x86 Installer](https://supreme-gamers.com/r/advanced-android-x86-installer-for-windows.61/). -We also have a second option for Windows install that can be found on our repo here: [Android-x86 UEFI Installer](https://github.com/BlissRoms-x86/Androidx86-Installer-for-Windows/blob/S12.1-2.8/bin/Androidx86-Installv28.5800_A12.1.7z) -{% endhint %} - -When booting into the installer, choose "Installation - Install Android-x86 to harddisk": - -![Booting into the installer](../.gitbook/assets/booting-into-installer.png) - -Once the installer boots, you will be asked to select the target drive. Choose the NTFS drive that houses your current Windows install. You do **not** need a separate partition, as the installer will create an image on your Windows partition. - -![Choose partition](../.gitbook/assets/choose-partition.png) - -Choose "Do not re-format" on the next screen. It is important that you choose "Do not re-format", as any other option will cause the installer to continue with the ["Bootable installation method"](install-from-bootable-usb.md#bootable-installation-method-mbruefiesp-3264-bit), which **will** result in **permanent data loss**, including your Windows partition! - -![Do not reformat](../.gitbook/assets/do-not-reformat.png) - -Choose "Yes" when prompted about the `GRUB` bootloader: - -![Install GRUB](../.gitbook/assets/install-grub.png) - -The installer will ask whether or not you want to make the system partition read/write-able. If you want to root your installation, you will choose "Yes" here. Otherwise, choose "No." - -![Root installation](../.gitbook/assets/root-installation.png) - -The installer will begin to write the changes to the disk. This will take some time. Go grab a coffee! - -![Grab a coffee](../.gitbook/assets/grab-a-coffee.png) - -Then the installer will ask you how much space you want to allocate for the data image. Most users choose 8 GB, 16 GB, or 32 GB. - -Congratulations! You should now have a functional dual-boot with Bliss OS! - -# Install EFI From Bootable USB - -## Download Bliss OS - -You can download a stable Bliss OS build by clicking on the link [here](https://sourceforge.net/projects/blissos-x86/), non-stable builds can be found [here.](https://sourceforge.net/projects/blissos-dev/) - -## Install Bliss OS - -{% hint style="info" %} -If you are looking for a GUI based installer for Windows, we do include one in some of the .ISO's we produce, and we also support the [Supreme-Gamers Advanced Android-x86 Installer](https://supreme-gamers.com/r/advanced-android-x86-installer-for-windows.61/). -We also have a second option for Windows install that can be found on our repo here: [Android-x86 UEFI Installer](https://github.com/BlissRoms-x86/Androidx86-Installer-for-Windows/blob/S12.1-2.8/bin/Androidx86-Installv28.5800_A12.1.7z) -{% endhint %} - -When booting into the installer, choose "Android-x86 ... Installation": - -![Booting into the uefi installer](../.gitbook/assets/uefi-boot-installer.png) - -Once the installer boots, you will be asked to select the target drive. You will need to choose what drive to install it too, this could be a pre-existing install of something, or a new drive, shown will be a new drive. you will need to select "Create/Modify partitions" +##### Install Steps: {% hint style="info" %} WARNING THIS WILL DELETE ANY DATA ON THE DRIVE {% endhint %} -![Partitioning p1](../.gitbook/assets/uefi-create.png) +We will want to start by booting into the installer by selecting the top Install option from Grub + +From here we will want to change the drive partition scheme to be A) EFI (VFAT) B) Android (ext4). This means that we need to delete all partitions except for the top EFI partition, and create a single new partition with the remaining space. You will need to start by selecting "Create/Modify partitions", then remove all partitions on the device. ![Partitioning p1](../.gitbook/assets/uefi-create.png) In the next screen, we need to make **two** partiitons for this to work, as Bliss needs to install a bootloader to boot to. if you have a pre-existing install of linux, this step may be unnecessary. @@ -81,7 +23,7 @@ First create the EFI partition, this is the partition that is used to install th 1. Create a [ new ] partition 2. leave First Sector default (Just press enter) 3. for "Size in Sectors" all we need to do is enter `+512M` -4. Set type as ef00 +4. Set type as ef00 (or EFI) 5. We don't necessairly need to name this partition, but it is best practice to name it `EFI` ![Partitioning p2](../.gitbook/assets/uefi-android.png) @@ -103,13 +45,10 @@ The installer will procede to format and install android, you will then be promp ![Install Grub](../.gitbook/assets/uefi-grub.png) -The installer will ask whether or not you want to make the system partition read/write-able. If you want to root your installation, you will choose "Yes" here. Otherwise, choose "No." - -![Root installation](../.gitbook/assets/root-installation.png) - - -And just like with legacy, The installer will begin to write the changes to the disk. This will take some time. Go grab another coffee! +The installer will begin to write the changes to the disk. This will take some time. Go grab another coffee! ![Grab a coffee](../.gitbook/assets/grab-a-coffee.png) -Congratulations! You should now have a functional UEFI-boot with Bliss OS! +After this step, it will also prepare the install for A/B updates. This process will take a couple minutes at most. + +Congratulations! You should now have a functional UEFI-boot with Bass OS! diff --git a/Installation/install-in-a-virtual-machine.md b/Installation/install-in-a-virtual-machine.md deleted file mode 100644 index 98562a5c..00000000 --- a/Installation/install-in-a-virtual-machine.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -description: Install Bliss OS in a Virtual Machine of your choice ---- - -# Install in a Virtual Machine - -This method is **incomplete**, a **work-in-progress**. Android in general do not run great in VMs, because they do not have the proper drivers. As such performance is greatly reduced if you use this method. Please only install Bliss OS in VMs for evaluation, and keep in mind that the performance exhibited by Bliss OS in such an environment is not a true representation of actual performance on bare metal. With that in mind, let's get started! - -First, make sure your CPU is capable of running VMs. For Intel, it is usually Intel VT-x and VT-d. For AMD, it is usually AMD-V. You may also need IOMMU support, although it is probably not necessary since you won't be passing through GPUs. - -Download the latest Bliss OS `.iso` from our website. Then, download the latest version of VirtualBox, and the latest VirtualBox **extension pack**. Install both executables. - -Once inside VirtualBox, click on "New." For the name, type "Bliss OS." For the type, select `Linux`, and then `Linux 2.6 / 3.x / 4.x (64-bit)` for the version. Set memory size to 2048 MB \(2 GB\) or more. For the disk, accept the default options for the disk type. For the size, set it to 20 GB. VirtualBox should initialize a new virtual machine. - -We need to tweak a couple more settings. Click on "Settings" on the top bar. Allocate more logical processors in System > Processor. Drag the slider to the right, keeping it **inside** the green bar, as you want to leave a couple of logical processors for the host operating system. For the display, try allocating all of the VRAM. \(128 MB most likely\) Enable 3D Acceleration. Click OK to save settings. - -Now click on Start. VirtualBox will ask you for the CD image. Click on the folder with the green up arrow, and then select the ISO you downloaded earlier. - -Select "Installation - Install Bliss-OS to harddisk" Press D to detect devices. Press C to create and modify partitions. If asked, select No for GPT. Select New, Primary, full size, and then make it bootable. Write to disk. Quit. Select the partition and then reformat to ext4. Select Yes to install GRUB. (**On Bliss OS 9.x - 11.x**) Select Yes to make the /system directory writable. - -[**PLEASE NOTE**]: Recent versions of Bliss OS require manually extracting the system.img from within the system.sfs, removing the system.sfs afterwards from the installed directory in order to allow the system to be mounted as R/W. Please follow further instructions here for that process: [Remount System as Read-Write](https://docs.blissos.org/knowledgebase/troubleshooting/remount-system-as-read-write/) - -At this point the installation should be complete. But when you reboot, you will notice that the screen is completely black with a cursor at the top-left. This is because there is no display drivers for the virtual machine. Reset the instance, edit the boot parameters, and add `nomodeset` to the end. Bliss OS should then boot fully. - -Congratulations! You should have a fully working Bliss OS install in a VM, or at least something that works... even if it may be slow. Again, Android on VM is generally not a good idea and you will get a lot more performance if you install Bliss OS to the actual hardware. - diff --git a/Installation/install-in-a-virtual-machine/README.md b/Installation/install-in-a-virtual-machine/README.md deleted file mode 100644 index 6b3f4052..00000000 --- a/Installation/install-in-a-virtual-machine/README.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -description: Install Bliss OS in a Virtual Machine of your choice ---- - -# Install in a Virtual Machine - -This method is **incomplete**, a **work-in-progress**. Android in general does not run great in VMs, because they do not have the proper drivers. As such performance is greatly reduced if you use this method. Please only install Bliss OS in VMs for evaluation, and keep in mind that the performance exhibited by Bliss OS in such an environment is not a true representation of actual performance on bare metal. With that in mind, let's get started! - -{% page-ref page="install-in-virtualbox.md" %} - -{% page-ref page="install-in-qemu.md" %} - - - diff --git a/Installation/install-in-a-virtual-machine/advanced-qemu-config.md b/Installation/install-in-a-virtual-machine/advanced-qemu-config.md deleted file mode 100644 index b35de613..00000000 --- a/Installation/install-in-a-virtual-machine/advanced-qemu-config.md +++ /dev/null @@ -1,540 +0,0 @@ ---- -layout: post -title: 'Advanced configuration for qemu' -date: '' ---- -# Advanced configuration for qemu cli - -Qemu is a very powerful tool that may be confusing for a lot of people. However when using it we can get some very detailed and custom setups, this page will document some more advanced features that folk may wish to utilize with qemu. The majority of this page will assume running on linux. Many of these will not be compatible with windows. While this guide is oriented towards Android. Many of the same concepts apply to general VM usage. - -Many of the concepts on this page will not apply to all users, If you have been linked This document is a document and this warning is still present. Any questions or corrections can be asked and posted on the Bliss OS telegram, Matrix, and Discord groups. Ping `@quackdoc` `@Quack Doc`. - -[comment]: <> (TODO: update when virt-manager docs are available) -This guide is for for qemu's cli. while many concepts still apply, virt-manager/libvirt documentation is being worked on. - -## Evdev - -One of the more useful and easy to implement features of qemu is evdev passthrough. Doing this can enable low latency and a better by using hotkeys to globally toggle device passthrough. - -There are two methods of doing this, we can use `virtio-input-host` and we can attach evdev to `virtio-mouse` and `virtio-keyboard`.Using `virtio-input-host` will give the guest exclusive access to the device, and will implicitly setup the proper device. This may cause bugs, and is likely not what all users would like, however this might be helpful for unique devices that don't fall under traditional inputs, and won't work with usb passthrough. - -`virtio-input-host` is fairly easy to setup and simply add. It does however come at the detriment that you cannot use a hotkey to bind it back to the host without closing the VM. It accepts both `eventx` device files, as well as works with `by-id` paths. However the strength of it comes from being able to use any evdev device. This includes gamepads, some multi-touch screens and more. - -The below to add a multi-touch device through to the VM. - -``` --device virtio-input-host,id=touch0,evdev=/dev/input/eventX -``` - -A minimal example of this would be - -```bash - #!/bin/bash - qemu-system-x86_64 \ - -enable-kvm \ - -M q35 -m 4096 -smp 4 -cpu host \ - -bios /usr/share/ovmf/x64/OVMF.fd \ - -drive file=disks/bliss.qcow2,if=virtio \ - -device virtio-vga-gl -display sdl,gl=on \ - -device virtio-input-host,id=touch0,evdev=/dev/input/eventx -``` - -The more common option would be attaching evdev devices to `virtio-keyboard` and `virtio-mouse`. This will allow us to toggle back and forth between the guest VM and the host OS. We need to attach the below output to qemu corresponding device ids. - -``` - -object input-linux,id=mouse1,evdev=/dev/input/by-id/MOUSE_NAME - -object input-linux,id=kbd1,evdev=/dev/input/by-id/KEYBOARD_NAME,grab_all=on,repeat=on -``` -A functional example of this would be - -```bash - #!/bin/bash - qemu-system-x86_64 \ - -enable-kvm \ - -M q35 -m 4096 -smp 4 -cpu host \ - -bios /usr/share/ovmf/x64/OVMF.fd \ - -drive file=disks/bliss.qcow2,if=virtio \ - -device virtio-tablet,id-mouse1 \ - -device virtio-keyboard,id=kbd1 \ - -device virtio-vga-gl -display sdl,gl=on \ - -object input-linux,id=mouse1,evdev=/dev/input/by-id/MOUSE_NAME \ - -object input-linux,id=kbd1,evdev=/dev/input/by-id/KEYBOARD_NAME,grab_all=on,repeat=on -``` - -By default you can use left and right `ctrl` together to change whether the device is used by the host or the VM. - -## Flexible bash scripting - -Some people who add and remove options from qemu often may find that the current script setups are more of a hassle to use. However we can set up scripts using arrays instead this can allow users to comment out arguments from the script without breaking script. This is very useful for prototyping as this allows us to more efficiently test and comment out various arguments. This does however pose some issues which will be explained under the `booting a physical install` section. - - -```bash -#!/bin/bash - -## cd image "bliss.iso" -array=( --enable-kvm --M q35 --m 6000 --smp 3 --cpu host --bios /usr/share/ovmf/x64/OVMF.fd --drive file=android.qcow2,if=virtio -#-cdrom ~/Downloads/bliss.iso --device virtio-tablet --device virtio-keyboard --device qemu-xhci,id=xhci --machine vmport=off --device virtio-vga-gl --display sdl,gl=on --net nic,model=virtio-net-pci -net user,hostfwd=tcp::4444-:5555 -) - -qemu-system-x86_64 ${array[@]} -``` - -## VFIO - -You may wish to pass a physical PCIe through to the VM. This can be helpful for people looking to make a gaming setup using Bliss, or perhaps more unique setups. Qemu and Crosvm both allow doing this. With libvirt this is unbinding, and binding is handled mostly automatically. You still need to load the vfio module yourself (see below). - -This article will assume you have prepared IOMMU for passthrough, there are many guides on how to find your IOMMU grouping. If you have a bad grouping it is typically possible to override them using ACS override. Be warned, this is a potential security risk and could be dangerous for host security. ACS will not be elaborated any further in this and it is totally an `At your own risk` solution. - -First we need to prepare the device(s) we are going to passthrough, the command to achieve this is below. It requires root being done by root, not simply with root permissions. The easiest way to do this is to use `su -c`. but first we need the pcie function address and the pcie driver. To get this we can use `lspci | grep -i ` to find the function address. We can then use `lspci -vvnn -s xx:xx.x` to get the pci device driver too. It will be listed under `kernel modules: `. After that we need to append the domain to it, for the majority of users it will be `0000:`. Below is an example command line. - - -```bash -su -c 'echo 0000: > /sys/bus/pci/drivers//unbind' -``` - -After we have unmounted the drive we need to bind to vfio. This is done in a similar manner with the command below, however we need to load the vfio module and use the vid:pid of the device. The VID and PID will be printed in `lspci -nn xx:xx.x` an example output would, in the case below where the vid and pid would be `8086 56a5` be; - -``` -0d:00.0 VGA compatible controller [0300]: Intel Corporation DG2 [Arc A380] [8086:56a5] (rev 05) -``` - -Using the above output we would do the below command to bind the DG2 graphics card to VFIO. - -If you have multiple GPUs with the same vendor and product IDs, you will need to use same GPU passthrough techniques. Arch wiki's PCI_passthrough page provides a number of possible scripts one can use to make this possible. - -This needs to be done for all the devices in the IOMMU group until all of them are bound to VFIO. - -```bash -sudo modprobe vfio -su -c 'echo 8086 56a5 > /sys/bus/pci/drivers/vfio-pci/new_id"' -``` - - -You can instead add this to module autoload using your init system, this can be done various ways such as mkinitcpio and systemd, an example of a systemd setup would be; - -``` -/etc/modules-load.d/vfio.conf -~~~~~~~~~~~~~~~~~~~~~~~~~ -vfio-pci -``` - -After the card is loaded into VFIO we can then load it into qemu using the below argument. The second device is because we need to passthrough any additional function devices separately, this include audio and on some gpus USB controllers. - -All devices in the iommu group should too be bound to the VM. - -``` --device vfio-pci,host=,multifunction=on,x-vga=on \ --device vfio-pci,host= -``` - -It may also be necessary to specify the `pcie-root-port` device. Below is a small example of this - -``` - -device pcie-root-port,id=pcie.1,bus=pcie.0,addr=1c.0,slot=1,chassis=1,multifunction=on \ - -device vfio-pci,host=,bus=pcie.1,addr=00.0,x-vga=on,multifunction=on \ - -device vfio-pci,host=,bus=pcie.1,addr=00.1 -``` - -It is a good idea to explicitly disable attaching any other displays to qemu by passing the arguments. This may or may not be needed. - -``` --nographic -vga none -``` - -## Booting physical media - -Below is an example of booting a physical install where a second drive is mounted to `nvme` and bliss is installed in the folder called `android`. However there is a small issue, due to how arrays work under bash, this can complicate how variables and strings work, meaning that sometimes it is better to simply avoid using them in the array, thankfully that does not pose too much issues in the majority of cases. - - -```bash -#!/bin/bash - -install_location=/nvme/android - -#common kernel arguments; -#root=/dev/ram0 console=ttyS0 HWC=drm_minigbm GRALLOC=minigbm_arcvm video=800x480 DATA=/dev/vdb quiet DEBUG=2 -#'-drive index=0,if=virtio,id=system,file=${install_location}system.efs,format=raw,readonly=on' - - -args=( - ##CPU - '-smp 4' - '-M q35' - '-m 4096' - '-cpu host' - '-accel kvm' - ##GPU - '-device virtio-vga-gl,edid=on' - '-display sdl,gl=on,show-cursor=true' - ##devices - '-usb' - '-audiodev pa,id=snd0' - '-device AC97,audiodev=snd0' - '-device virtio-tablet' - '-device virtio-keyboard' - ##net - '-net nic,model=virtio-net-pci -net user,hostfwd=tcp::4444-:5555' - ##drives - '-drive index=0,if=virtio,id=system,file=/nvme/android/system.efs,format=raw,readonly=on' - '-drive index=0,if=virtio,id=system,file=/nvme/android/data.img,format=raw,readonly=on' - '-initrd /nvme/android/initrd.img' - '-kernel /nvme/android/kernel' - ##misc - '-monitor stdio' - #`-serial stdio` - #'-serial mon:stdio' -) - -qemu-system-x86_64 ${args[@]} \ - -append "root=/dev/ram0 console=ttyS0 HWC=drm_minigbm GRALLOC=minigbm_arcvm DATA=/dev/vdb" -``` - -## USB passthrough - -In qemu, there are three main ways to achieve USB passthrough. `Spice`, `VFIO` and `usb-host`. When using `usb-host` we can passthrough either a `hub` device or a specific usb device. I have typically had poor experience using hub passthrough in the past so I would recommend preferring single device passthrough. - -The most simple way to do this is typically the best, simply run `lsusb` and grab the `VID:PID` of the device you wish to passthrough, Then use `-device usb-host` to add it to the VM. - -Instead of simply adding `-usb` we can add specific controllers instead, an example would be. - -``` - -device qemu-xhci \ - -device usb-host,vendorid=0xVID,productid=0xPID,id=$SOMETHINGHERE -``` - -In some cases it might be more suitable to attach the device using it's address; -``` - -usb \ - -device usb-host,hostbus=bus,hostaddr=addr -``` -In other cases you can use the below command to passthrough via hostbus and host port, which is useful for passing through usb hubs. Finding the appropriate hub or device can be done using `lsusb -t` -``` - -usb \ - -device usb-host,hostbus=bus,hostport=port -``` - -It is always a good idea to append an appropriate ID to the device, in case of a keyboard, simply do `id=keyboard` in the case of a thumbdrive, you can do `id=usb-drive`. This is largely preference. - -For using Spice, - -It will be explained in more depth below, however in the spice client you will need to enable usb-passthrough and select the appropriate device there. - -For VFIO, - -Simply pass the appropriate USB controller through to the VM using vfio above. Using `lsusb -t` to locate the controller and `lspci` can be useful for determining what devices to passthrough. - -USB devices can be hotplugged using the Qemu Human Monitor explained below. - -## Low latency PipeWire/Jack audio - -Using qemu, we can instead of using pulse audio backend, use jack. This is very useful since we can use jack for higher quality and lower latency audio, as well as a highly configurable two way audio. This is great because Bliss and other Android x86 operating systems have a quite high base latency. - -Using jack you can manage to cut a round trip from 240ms to 200ms. It's important to remember that this is a Round Trip numbers, meaning the time it takes from audio to go from the host to the virtualized microphone, into Android, to the speakers, and back to the host. This is not the android -> host latency, currently this is not something tested. however it could be anywhere from 1/3 of this to 2/3 of this. This will assume using PipeWire since it is the easiest and most convenient option. - -Using `jack_lsp` to list ports we can connect to the ports I am interested are - -``` -speakers - -Family 17h (Models 00h-0fh) HD Audio Controller Analog Stereo:playback_FL -Family 17h (Models 00h-0fh) HD Audio Controller Analog Stereo:playback_FR - -microphone -Realtek Audio USB Analog Stereo:capture_FL -Realtek Audio USB Analog Stereo:capture_FR -``` -qemu uses regex to match, so here we want to choose a name that will match the devices we want, but not the extras -``` - -audiodev jack,id=jack0,out.connect-ports=Family,in.connect-ports=USB \ - -device ich9-intel-hda -device hda-duplex,audiodev=jack0 -``` -If you remove the `out.connect-ports=Family,in.connect-ports=USB` part of the command line, it will create an output not connected to anything. In this case you could either manually connect ports using helvum or PipeWire direcly, or you could setup a WirePlumber profile to handle automatic connections. however this is far out of scope - - -We can also do a bit more tuning by setting `PIPEWIRE_LATENCY` When we do this, we can actually ignore the output qemu tells us when it starts as if we check pw-top we can see that it is indeed running when we check pw-top - -``` -export PIPEWIRE_LATENCY=128/48000 -``` - -However jack is not the only options we have, we also have Alsa output. this is about as direct as you can get automatically outputs to headphones and microphone properly, and is still controlled via PipeWire. however audio quality of it can be greatly dependant on the host PC. so while not recommended you can try it by using `-audiodev alsa,id=alsa0` instead of `-audiodev jack,id=jack0...` - -Testing `SDL` audio output is fine, but is higher latency than `Jack` so it would be typically not recommended. - -As for the emulated audio devices, AC97 is the lowest latency, but may suffer in audio quality. There are multiple other audio devices however at this time I do not have a method for testing latency in them. The recommendation for low latency audio is `AC97` but for general use it is `-device ich9-intel-hda -device hda-duplex`. - -This open the doors to advanced audio manipulation and high quality audio from Android. This can be useful for gaming as well as game recording since you could connect to a virtual device which could then be connected to both headphones and OBS. - -This also opens the way for high fidelity audio though it is currently not recommended to go above 48000 hz on bliss at this time due to potential audio distorting. - -## EGL-headless for remote VMs -Egl headless is useful for remote VMs. A remote VM being a virtual machine hosted on a separate machine that the user is connecting from. Much like `-display sdl,gl=on` or `-display spice,gl=on` this provides 3D acceleration. However unlike the two previous, this does not open a window on the server. This means you can use spice-app to connect to the VM over a network. It may also have lower preformance then the alternative. - -You can use `rendernode=` to specify the GPU, this can be helpful to select a secondary GPU, or perhaps if you have many VMs running at the same time to spread the load across multiple GPUs. - -``` --display egl-headless,rendernode=/dev/dri/renderD128 -``` -Note: you can not at the current time use multiple `-display` arguments, so you will need either spice server, or some other remote graphics solution. (IE. scrcpy) - -## Spice - -Spice is a method of interacting with VMs that can work both locally and over a network. It supports relatively advanced features such as usb redirection, video compression, and more. There are two ways to add spice to the VM, one for local machine, and one for remote machine. Below is an example of a local machine. - -``` - -device virtio-vga-gl -display spice-app,gl=on -device ac97 \ - -device virtio-serial -chardev spicevmc,id=vdagent,debug=0,name=vdagent \ - -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \ -``` - -And below this is an example of a remote machine. It's important to remember to setup firewall and/or port forwarding to allow remote connections. - -```bash - -spice port=3001,disable-ticketing -device ac97 -device virtio-vga-gl -display egl-headless \ - -device virtio-serial -chardev spicevmc,id=vdagent,debug=0,name=vdagent \ - -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \ -``` - -To setup usb redirection you can copy the below block into your config. For each device you want to be able to redirect, you need to add a `chardev` device and a `usb-redir` slot. These will let you dynamically change what devices you want to passthrough. - -```bash -#redirect up to 3 devices - -chardev spicevmc,name=usbredir,id=usbredirchardev1 \ - -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 \ - -chardev spicevmc,name=usbredir,id=usbredirchardev2 \ - -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2 \ - -chardev spicevmc,name=usbredir,id=usbredirchardev3 \ - -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3 -``` -https://www.spice-space.org/spice-user-manual.html - -## Human Monitor - -Instead of connecting tty to the terminal, we can also connect Qemu Human Monitor to the terminal. This is an interface that allows us to send commands to a running VM in order to interact with it. We can send shutdown and reset signals, add and remove usb and storage devices. As well as more advanced features like resize disks, dump the framebuffer (a sort of over glorified screenshot) and create VM snapshots. It is a very powerful tool and only some of the more common uses will be outlined here. - -First thing is to add it to the VM. While with bliss it might be common to use `-serial stdio`, that will conflict with using qemu human monitor, what we instead want to use is `-monitor stdio`. If you need both, we can use `-serial mon:stdio` which will multiplex the serial connection and the qemu human monitor. You can swap between the two using `CTRL + a` then press `c`. That will swap between the serial and the human monitor. - -When using spice, the human monitor will already be attached to it, so do not add commands to attach human monitor to qemu itself. - -The other option you have is to connect either the serial connection or the monitor connection to a socket, then interfacing with it over said socket. However most people will likely not use this route. It is therefore recommended to simply use; - -``` --serial mon:stdio -``` -However a short list of examples alternatives are below, there are more options. - -```bash --monitor tcp:127.0.0.1:55555,server,nowait #tcp session --monitor telnet:127.0.0.1:55555,server,nowait #telnet session --monitor unix:qemu-monitor-socket,server,nowait #unix socket -``` - -Now that we have the human monitor attached to the VM, we can get to some of the commands we can do with it. Below will be some commands with a brief writeup, to learn more about how to use the command read the link below; - -```bash -system_reset #reboot the system -system_powerdown #powerdown the system -sendkey # sendkey ctrl-alt-f1 #send specific keys to the VM - -quit # quit the VM -stop # pause the VM # may cause bugs on resume -cont # continue the VM -system_wakeup # wake VM - -device_add #usb-host,hostbus=2,hostport=1.2.2,id=idofyourdevice # Add device -device_del # #delete device -drive_add # add pci drive -netdev_add # add nic -change #ide1-cd0 /path/to/some.iso #change device config - -info #subcommand (snapshot to view snapshots) #print info about device -savevm #creates a snapshot live, while the VM is still running -loadvm #loads a snapshot while the VM is still running - -mouse_move #move the mouse -screendump #screenshot.ppm # dump screen into ppm image -``` - -https://qemu-project.gitlab.io/qemu/system/monitor.html - - -## Disk Optimization - -There is a LOT we can do for disk optimization! This section will be as condensed as possible while still giving you a good idea at what these features are doing. Because of this do not expect this section to be as clear as the other sections.Because there is a lot we need to cover here. - -NOTE: If you want to run many VMs off of a single drive, or an array, your considerations may be very different and some of these will not apply for you! This section is written based on the assumption that one, or maybe a couple VMs are being run on the computer. - -### Qcow2 vs raw image - -When it comes to whether or not you should use qcow2 vs raw image, this really comes down to what you as a user want out of the images. First talking about performance. Raw vs Qcow2, under normal circumstances, should typically have similar performance. However, Qcow2 can certainly be slow under the right (or perhaps better put wrong) circumstances. - -If you want a simple answer to the question "Which format will give me the best performance?'' The answer is a raw image. If you don't want any advanced features or configuration like compression or snapshots, you can skip the rest of the disk section. - -### Preallocation - -Preallocation is put simply, how the VM decides to assign storage blocks when no data is actually inside of them. with `preallocation=none` no data is pre assigned. this means that the disk image is very small, and will grow as more data gets written to it. when you choose `metadata` it pre allocates space for metadata, this means an empty VM disk will take up more space then one with `none`. - -In most cases, the user will probably just want metadata. as it gives the best performance to space and features. falloc and full preallocation will cause the VM to use up more space. however in accordance with the chart below, performance goes up when you go down the chain. But you do start to lose some features, as `full` will cause snapshots to no longer work. - -``` -none -metadata -falloc -full -``` - -### Compression -Using compression to save space on your image can be a very valuable tool. while there are multiple ways to do this, but the focus of this will be on using qemu-img's qcow2 compression, you can simply run `qemu-img create -f qcow2 -o compression_type=zstd disk.qcow2 10G` and this will create a zstd compressed disk image for you to use. - -### Cache Modes - -Qemu supports a variety of disk write `cache` modes. These cache modes can be changed to tweak I/O speed below are the ones qemu support, See the link below for an explanation on these. Using none will essentially be the best performance option. - -``` -writethrough -writeback -none -directsync -unsafe -``` -https://documentation.suse.com/sles/12-SP4/html/SLES-all/cha-cachemodes.html - -### Custom cache size -With qemu we can set both `cache` size and `l2 cache` size - -`...disk.qcow2,cache-size=16M` - -`...disk.qcow2,l2-cache-size=4M` where `1M` is good for `8Gb` of random R/W. `Areasize / (clustersize / 8)` where default cluster size is `64kb`. and area size is the total ammount of space you want cache to cover. `1/8th` of `64kb` is a nice `8kb`. - -In this example we can say we want `16gb` of r/w headroom, we do `16gb / 8kb`. An easier way to calculate this by hand would be scientific notation. This would be `32x10^9 / 8x10^3 = 4x10^6 = 4mb` - -``` -1KB = 10^3 -1MB = 10^6 -1GB = 10^9 -1PB = 10^12 -etc -``` - -Try increasing cluster size instead `qemu-img create -f qcow2 -o cluster_size=2M`. - -*Try mixing `2m cluster` and `metadata` for a good blend of preformance!* - - -### Backups and snapshots -Utilizing snapshots is a key feature in doing development, as well as making sure that any downtime is minimal. This is particularly useful for preventing a corruption inside of the machine from causing a re-install. - -There are two main ways of doing this, you can create a full backup of the drive. This is as simple as doing rclone. This does however waste a lot of space. What we can do instead is use qemu-snapshot. - -Qemu-snapshot redirects the writes to a new image, so that you can save space. say you have `disk.qcow2` you can run the command `qemu-img create -f qcow2 -b disk.qcow2 disk-snap1.qcow2` and that will create a new image. Now you modify qemu to use `disk-snap1.qcow2` it will read from `disk.qcow2` but will never write to it. All modifications made are made in `disk-snap1.qcow2`. and to revert the snapshot, you can simply delete the `disk-snap1.qcow2`. - -Another use of this is to do `qemu-img create -f qcow2 -b base.qcow2 vm1.qcow2` && `qemu-img create -f qcow2 -b base.qcow2 vm2.qcow2`. by making two separate snapshots, we can now run multiple VMs each with their own unique writable disk, that is based on the `base.qcow2`. this is great for running multiple VMs without needing to waste space and setup time. **REMEMBER** writing to the base disk will corrupt the snapshots. It's a wise idea to change the permissions of the base disk to read only, this prevents user error. Even professionals with many hours can slip up and accidentally make an error. Remember to practice safe VM handling. - -The above paragraph is about creating external snapshots which is great for when the VM is off, and should be done when you wish to create a new VM. However qemu also supports internal snapshots and live snapshots. The snapshots work internally in the single qcow2 (or qed) image. It may not be as flexible, however it is bother faster, and for many people more convenient and nice to use internal snapshots. - -Using the human monitor above it is shown the commands `savevm` `loadvm` `info snapshots` these can be used to save, load and view the current snapshots available. Live snapshots save the entire state of the `cpu`, `devices`, `Ram`, as well as the entire disk contents, so the live snapshots can be a good amount larger. It is very akin to using an emulator "save state". - -Removable devices can sometimes cause issues, so it's preferred to disconnect any before taking a snapshot and before loading one. However as long as all the devices are there when the snapshot is made and loaded it will be fine. - -### full device passthrough - -For passing storage devices to qemu there are multiple ways of doing so. To pass a sata controller, the most typical way of doing this will be via pci passthrough. You can accomplish this with the `vfio` instructions listed previously. - -As for `Nvme` devices, you can actually do something similar, you can use vfio, however a better way of doing it would be to actually use qemu's built in functionality for this listed below - -``` -qemu-system-x86_64 -drive file=nvme://HOST:BUS:SLOT.FUNC/NAMESPACE -``` - -You can also passthrough `raw block devices` or better known as partition passthrough. you can pass it through a lot like you could with a standard file, an example is given below - -``` - -drive file=/dev/sdb2,if=none,id=drive-virtio-disk0,format=raw \ - -device virtio-blk-pci,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0 -``` - -### IoThread - -IO threads can help both raw and qcow2 when using virtio drives - -``` --object iothread,id=iothread0 --device virtio-blk-pci,iothread=iothread0,id=... --device virtio-scsi-pci,iothread=iothread0,id=... -``` - -### EroFS to SFS and the other way around. - -Bliss is currently shipping with `SquashFS` or `EroFS`. `EroFS` has the best raw read speed of the supported read only filesystems. however it has a significant compromise in being the compression. `EroFS` only supports `LZMA` and `LZ4` compression. `LZMA` is quite slow, and LZ4 doesn't offer great compression ratios. - -So there are two reasons why you would want to recompress `system.img` using `SquashFS` or `EroFS`. The first one being wanting to simply shrink the the size of system.img. - -if you have an `eroFS` image and want to compress it further, you may want to convert it to an `SquashFS` image. Likewise, if you have an `SFS` image, you might be better suited to convert it to `EroFS` if you want better performance if you are willing to sacrifice a bit of storage space. - -```bash -sudo modprobe erofs # Many distros will ship EroFS but it won't be enabled by default -sudo mount -o loop system.efs /mnt -mksquashfs /mnt system.sfs -comp zstd # you can choose from a couple different formats but ZSTD is the main benefit here -sudo umount /mnt -rm system.efs -``` - -If you wanted to keep using `EroFS` but use the slower but best in class compression LZMA, you could use the below sample. - -```bash -sudo modprobe erofs -mv system.efs system-old.efs -sudo mount -o loop system-old.efs -mkfs.erofs -c xz system.efs /mnt -sudo umount /mnt -rm system-old.efs -``` - -### Q&A about qemu's drives -``` -Q: `virtio-blk` vs `virtio-scsi` -A: `Virtio-blk` is usually faster across the board, however is limited in the amount of drives, probably not an issue for most -``` -``` -Q: what is the best `Cache` mode to use? -A: you typically want `cache=none` -``` -``` -Q: My VM has terrible write speeds, and it is even effecting my host -A: check if you are using a COW fs. if so disable COW on btrfs and other COW systems for the VM -``` -``` -Q: `lazy_refcounts` Can cause corruption! but is it worth it? -A: Typically yes. performance can increase by a good amount at the trade off of accidental power off. But disable it if you change the `cache` mode to `none`. -``` -https://events19.lfasiallc.com/wp-content/uploads/2017/11/Storage-Performance-Tuning-for-FAST-Virtual-Machines_Fam-Zheng.pdf - - -## Finishing Notes - -Handling multiple VMs efficiently can be a complicated topic, and is largely out of scope for this guide. This bit is just a few tips to make running more than a couple VMs a better experience. This would be a stopgap between a more professional solution such as `proxmox` or a `libvirt`. This is just a rough guideline, and may not apply across the board or when you scale up. - -When installing `Bliss`, It might be a good idea to break up the Disks, you only need one `system` disks for the VMs if it's read only. This can save many gigabytes of data storage, and increase storage performance across the storage of any potentially affected drives. - -Another good idea is to consider what VMs need persistent memory and which ones don't. If you are running many VMs at once, whether it be for a cloud solution or a more tailored setup, you may find that you don't want many, or even any of the VMs to retain any modifications to them. - -It is **highly** recommend reading the free `redhat` docs on setting up and tuning VMs if you need more than what this guide offers. It will be a lot of reading. It will however be more valuable than most resources you can freely find on the internet. It should be the first stop for anyone wanting to actually learn more and implement these kinds of setups for yourself. - -The next freely accessible resource is the `oVirt` forums, documentation, and most importantly Mailing list. `oVirt` is an enterprise grade solution built upon libvirt so many of the solutions and concepts will directly apply when using libvirt, and can be used to gain a further understanding of VM infrastructure in general. - -https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_tuning_and_optimization_guide/index - diff --git a/Installation/install-in-a-virtual-machine/install-in-qemu.md b/Installation/install-in-a-virtual-machine/install-in-qemu.md deleted file mode 100644 index 083d16b9..00000000 --- a/Installation/install-in-a-virtual-machine/install-in-qemu.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -layout: post -title: 'Bliss OS: How to install Bliss OS on Qemu' -date: '2021-10-27' ---- -# Install with Qemu Script - -This article is a guide to install `Android Generic` builds on Qemu. Bliss 14 at the current moment does not work. Gearlock causes resizefs errors that do not occur in the current Project Sakura build. There is a version of Bliss 11.13 that does have a working Gearlock in the BLISS OS telegram group. - -Also tested is AOSP 12. with AOSP 12 you may need to boot with hwcomposer.drm to get it to work properly when using virgl graphics. currently default boot does not work, and while using gbm mesa, the android UI crashes when a mouse is drawn. so while a keyboard works. no mouse control even with a real mouse passed through to the VM. this is not an issue when using hwcomposer.drm. I recommend duplicating or editing the hwcompser.drm entry, remove 'DEBUG=2' from it. as it will allow usage as normal. - -## Background - -Qemu while simple in use, can be complicated to understand for beginners. This is because Qemu has a LOT of options for customization, many of which are useful, but more so that are not. - -Qemu on windows as of time of writing this will NOT work on bliss 14. but may work on bliss 11. this is due to lack of software rendering on bliss 14. assuming Gearlock issues get fixed. in the mean time, use Project Sakura OS. - -If you wish to use this guide on windows 10 or above, It may be possible to use WSL, however to get Qemu KVM support on WSL you will need a custom kernel. Another possible method is to use an unofficial patch from the `qemu-3dfx` project to get virgl working on windows. but at this current time. it has not been tested with any android generic project. - - -## Make the image. - -When you have Qemu installed be it on Linux or windows, you will have installed a plethora of Qemu related tools. the tool we need for this is `qemu-img`, Navigate to the folder you want your image installed in and run the following command. - -`qemu-img create -f qcow2 Bliss14.qcow2 20G` - - Breaking this down a little bit running - `qemu-img create` is used to tell the program we want to create. - - `-f qcow2` is used to tell it we want to create the image using qcow2 format. `qemu-img` supports many formats so we want to specify this one. - - `Bliss14.qcow2` is the name of the image - - `20G` is the image size. - -## Make a script to run the VM. - -Below is a sample bash script used to run Bliss14 in a Qemu VM - - ``` - #!/bin/bash - qemu-system-x86_64 \ - -enable-kvm \ - -M q35 \ - -m 4096 -smp 4 -cpu host \ - -bios /usr/share/ovmf/x64/OVMF.fd \ - -drive file=disks/bliss14-k54-gapps.qcow2,if=virtio \ - -cdrom images/Bliss14-k54-gapps.iso \ - -usb \ - -device virtio-tablet \ - -device virtio-keyboard \ - -device qemu-xhci,id=xhci \ - -machine vmport=off \ - -device virtio-vga-gl -display sdl,gl=on \ - -audiodev pa,id=snd0 -device AC97,audiodev=snd0 \ - -net nic,model=virtio-net-pci -net user,hostfwd=tcp::4444-:5555 - ``` - -If you don't want an in-depth explanation, you can skip the next section, Just make sure to replace `-drive` and `-cdrom` with the proper disk image, and cdrom image for your use. - -## Explanation - -While this looks a little complicated, when we break this down we can see that it isn't. we are just telling Qemu what we want our virtual machine to have attached to it. if you don - -`qemu-system-x86_64` is used to launch the program, there are various other commands that can launch different versions of Qemu, but this is the one we want in the majority of cases. - -`-enable-kvm` tells Qemu to use KVM hypervisor, this is how we get near native CPU performance from our VM - -`-M q35` This tells Qemu what Machine type to run as, we need to specify this as `i440fx` will not work it is simple too old. - -`-m 4096 -smp 4` tells Qemu How much ram to use, and how many cores to add the the VM - -`-cpu host` This tells Qemu what CPU it should be trying telling the guest it is. Generally it is the preferred option. However in case you start to get instability `-cpu qemu64` may be the option you need as it presents a very bare bones cpu to the VM. see `qemu-cpu-models` of the Qemu docs to learn more. - - `-bios /usr/share/ovmf/x64/OVMF.fd \` is needed to tell Qemu to boot using UEFI, which is necessary as right now there is a bug that prevents android-generic based roms from being installed when in legacy mode. It is important to note that the location of this can vary depending on the host OS. - -`-drive file=disks/bliss14-k54-gapps.qcow2,if=virtio \` is how we mount the disk. Using this method instead of `-hda` lets us use virtio driver instead of emulated driver, giving us greater performance in the VM. - -`-cdrom images/Bliss-v11.iso \` Just mount the iso for bliss, while we could use virtio driver for this, there is no real need to, because it's only use is installing the OS, this can be removed when the VM is installed - -`-usb` is used to tell Qemu to add a USB controller, no real need to give it any additional arguments - -`-device virtio-tablet ` is one of two options for mouse capture the other being `-device virtio-mouse` using Tablet will allow you to use Qemu as if it were any other app, using `virtio-mouse` on the other hand will capture the mouse, and lock it to the VM. and to free it you will need to click `ctrl+alt` to free it. You may use `usb-mouse` or `usb-tablet` to use a emulated mouse and tablet instead of the paravirtualized ones. which incurs a very minor preformance hit. but also a measurable latency one. - -`-device virtio-keyboard` is for keyboard, no need to change anything here, `usb-kbd` also exists for using emulated keyboard instead. - -`-device qemu-xhci,id=xhci` tells Qemu what USB version to use, no need to change this - -`-machine vmport=off \` this option turns of vmware I/O emulation. this has caused me some bugs in the past, so I leave it off. - -`-device virtio-vga-gl` this is needed for graphics acceleration, and while you can add a plethora of arguments, none are really beneficial at this time. - -`-display sdl,gl=on` This is used for the display, there are three main options here `-display sdl,gl=on` `display gtk.sdl-on` and `-display spice-app,gl=on` The difference between these are some features. each one has pros and cons, feel free to experiment. Though do take note that even if you close the VM's window with `-display spice-app,gl=on` the VM will still be running, you will need to kill it from the terminal. - -`-audiodev pa,id=snd0 -device AC97,audiodev=snd0` this is needed to add audio to the VM. `--audiodev pa,id=snd0` is used to create a pulseaudio backend with the id of `snd0`. this is important as we then use `-device AC97,audiodev=snd0` to create an emulated AC97 audio device and attach it to the audiodev we created just before. - -`-net nic,model=virtio-net-pci -net user,hostfwd=tcp::4444-:5555` This really long command is the network command, `-net nic,model=virtio-net-pci` is what is used to add the network device to the guest in which case we are using virtio drivers again for best performance. `-net user` tells Qemu how to pass the network through and the argument `hostfwd=tcp::4444-:5555` forwards port 4444 and port 5555 together, meaning if we open another terminal and type `adb connect localhost:4444` we can get an adb connection to the VM. - -## Install -The rest of the installation is the same as real hardware. You should be able to proceed as normal. - -## Known Issues - -Currently we cannot properly set resolution using qemu and virgl. Because of this we need to manually edit the grub file in the VM to do so. There are a plethora of ways to do this. However the easiest is to use qemu-nbd to manually edit the grub entry and use `video=1920x1080` to manually set resoltuon to 1080p. Change this value to a resolution that suits your needs. - -Qemu does not currently support vulkan acceleration. While there was a work in progress patch that had support. It has not made it into qemu yet, nor does it seem like it will anytime soon. You may use physical gpu passthrough to get around this issue. - -Qemu does not currently support video decode/encode acceleration. There is no news when this might be availible in qemu. You may use physical gpu passthrough to get around this issue. - -## Additional customizations -Qemu is an incredibly powerful tool. this quick guide barely scratches the surface of some of the advanced customizations that are possible. if you are looking for more advanced features to step up your VM. To make it closer to a hardware install. Here are some potential further customizations that are possible with Qemu. - - 1. USB passthrough - 2. EVDEV usb+mouse passthrough for easy switching - 3. PCIe passthrough - 4. egl-headless for remote VM's with graphics acceleration - 5. emulate USB storage device - 6. It may also be possible to use multiple virtual monitors, though this has not yet been tested. - -This is all possible using virt-manager, or any other libvirt solution given they too support it. no guide has been written up for it yet. diff --git a/Installation/install-in-a-virtual-machine/install-in-virtualbox.md b/Installation/install-in-a-virtual-machine/install-in-virtualbox.md deleted file mode 100644 index 595eddef..00000000 --- a/Installation/install-in-a-virtual-machine/install-in-virtualbox.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: post -title: '[deprecated]Bliss OS: How to install Bliss OS on VirtualBox' -date: '2020-08-27 23:17 +0800' ---- - -# Install in VirtualBox - -This article is a draft content to describe how to install `Bliss OS` on `VirtualBox`. It combines [`android-x86` `VirtualBox` howto](https://www.android-x86.org/documentation/virtualbox.html) and our old article:"Install Bliss OS on a VM \(`virtualbox`\)". - -## Create a new VM - -If you have not already created a `VirtualBox` virtual machine for `Bliss OS` yet, do so as follows: - -1. Click the "New" button, and name your new virtual machine however you like. Set Type to Linux, and Version to Linux 2.6 / 3.x / 4.x. Note that you should choose the appropriate bit type for the version of `Bliss OS` that you downloaded. -2. Specify how much RAM will be allocated to your virtual machine when you run it. `Android` doesn't specify a bare-minimum requirement for memory, just keep in mind what apps you plan on running. 2GB \(2048MB\) is a good place to start, and you can change this later if you need to. -3. Create a new Hard disk image which will act as your machine's storage. The recommended starting size of 8GB is enough. Click through the rest of the options for creating your Hard disk. - -Your virtual machine has now been created. It still needs to be initially installed at this point. - -## Settings - -Tested on `VirtualBox` 64-bit for `Ubuntu` 20.04 with `Intel` and `AMD` \(`Ryzen R7 4800H`\) processors, version 6.1. `Bliss OS` version `v11.11`, 64-bit. - -Select your machine, then click the Settings button and refer to the below recommended configuration to make sure your settings match. - -1. \[_System_\] Recommended: Processor\(s\) should be set above 1 if you have more than one virtual processor in your host system. Failure to do so means every single app \(like Google Chrome\) might crush if you try to use it. -2. \[_Display_\]: - - 2.1. _Optional_: Video Memory may be increased beyond the minimum selected automatically. The affects of this are unknown. - - 2.2 _Mandatory_: Unless guest additions are installed, change the default VMSVGA to VBoxVGA. - - 2.3 _Optional_: Enable 3D Acceleration may be checked. The Linux Guest Additions must \(`VirtualBox` v6.1+\) / may \(`VirtualBox` v6.0 and below\) need to be installed to get any benefit from this. - - Failure to do so means you won't even be able to launch `Bliss OS` in the first place. - -3. \[_Storage_\] Find the first "Empty" item \(this should have an icon of a CD\). In the Attributes, click on the CD icon with a small down arrow, and pick "Choose Optical Virtual Disk File...". Specify the `Bliss OS` ISO that you downloaded. -4. \[_Audio_\] Intel HD Audio seems to be natively supported in `Bliss OS`. -5. \[_Network_\] By default, your installation of `Bliss OS` will be able to automatically connect to the internet. If not, you can try to enable WiFi in "Settings/Network & Internet", and connect to showing `VirtWifi`. If you do not want to connect to the internet in `VirtualBox`, uncheck "Enable Network Adapter" under the Adapter 1 tab. - -## Install - -Now we can click the start on `VirtualBox` to start the VM. - -When entering installation page, 1. select "Installation - Install Bliss-OS to harddisk". 2. Press `D` to detect devices. 3. Press `C` to create and modify partitions. If asked, select "No" for `GPT`. 4. Select "New", "Primary", "full size", and then make it bootable. 5. "Write to disk". 6. "Quit". 7. Select the partition and then reformat to `ext4`. 8. Select "Yes" to install `GRUB`. 9. Select "Yes" to make the `/system` directory writable. - -After than, just closing the installing window, and restart this VM instance, and select "Advanced Options" and "Boot from local device" to select `Bliss OS` with different options to start. - -To here, you should have a fully working Bliss OS install in a VM, or at least something that works... even if it may be slow. Again, `Android` on VM is generally not a good idea and you will get a lot more performance if you install `Bliss OS` to the actual hardware. - diff --git a/Installation/install-on-mac-os.md b/Installation/install-on-mac-os.md deleted file mode 100644 index 4a423ba0..00000000 --- a/Installation/install-on-mac-os.md +++ /dev/null @@ -1,57 +0,0 @@ -# Install on Mac OS - -## **Triple boot macOS, Windows and Bliss OS** - -\(Thanks to @lconstantin for this guide\) - -_**Alternative:**_ _It should be possible to skip the Windows installation. Read at the end._ - -1. BACKUP ALL DATA with TimeMachine - -2. Disable FileVault \(disk encryption in macOS\). This can take a long time \(hours\) if you already have it turned on and sometimes it can result in a locked state where the filesystem is not fully decrypted and the option to turn FileVault on or off is greyed out. Recovering from this state might require wiping the entire SSD from macOS recovery. This happened to me and I couldn't find a solution. Apparently it's a fairly common problem as I found many reports online. - -Note: I have not tried this multiboot process with FileVault enabled because I read FileVault does not play nicely with multiboot so I just decided to disable FileVault. I don't know if it might actually work with FileVault on, but probably not. - -3. Download the Windows 10 installation ISO from Microsoft's website. It’s freely available. - -4. Launch Boot Camp Assistant and follow the instructions to install Windows using the downloaded ISO. The process will allow you to resize the macOS partition and will create the Windows partition called BOOTCAMP for you. When you choose the size of the BOOTCAMP partition please account for the extra space you will need for Bliss OS including its data. I wanted 32GB for the Bliss OS data image so I accounted for 50GB extra for BlissOS when choosing the size of the BOOTCAMP partition. - -Note: Once Boot Camp is done installing Windows you will be able to boot into it and select it as boot option when the Mac starts up. At this point the system will still use Apple's bootloader, which by design is capable of booting Windows too. - -5. Boot into Windows and download a\) the latest version of Bliss OS, b\) [the latest version of the rEFInd boot manager](https://www.rodsbooks.com/refind/getting.html) and c\) [Rufus](https://rufus.ie/en/), a program for creating bootable USB sticks. - -6. Install Rufus and create a bootable stick for Bliss OS using the ISO you downloaded earlier. - -7. Unpack the rEFInd zip and copy its directory to the Bliss OS bootable stick. DON’T SKIP. - - -8. OPTIONAL: You have the option to either install Bliss OS on the same partition as Windows or you can resize the Windows partition using the Disk Manager in Windows and create a new partition for Bliss OS. I chose to resize and create a new partition of 50GB for Bliss OS and I formatted this new partition as NTFS. - -9. Reboot the Mac and keep COMMAND + R pressed during the booting process. This will boot into macOS recovery. Go to Applications > Utilities in the top bar and choose Terminal. This will open a terminal shell. Type: - -`cd / -cd Volumes -cd BLISS-xx (the name of the USB stick) -cd refind-xx (the name of the refind directory on the stick) -./refind-install` - -This will launch the rEFInd installation script and will install the boot manager. - -10. Reboot and now you will see the rEFInd boot screen with multiple options for booting into macOS and Windows that will be automatically detected. Note: For macOS Big Sur and later the option that works is the one that says "Boot macOS from Preboot." You can hide the other option by selecting it and pressing the - \(minus\) key. For Windows it’s the Boot with EFI option. You can hide the rest. You can test that booting into both systems works at this stage before continuing. - -11. rEFInd will also provide you with an option to boot into the Bliss OS stick if it’s plugged in. This will launch the GRUB bootloader that comes with Bliss OS and will show you multiple options: to start Bliss OS Live which can be used to test if Bliss works on your system or to install the OS to disk. - -12. Choose the install option and go through the normal process \([detailed here](https://docs.blissos.org/install-bliss-os/install-from-bootable-usb)\). Select either the Windows partition or the new partition you created for Bliss \(my case\). Do not reformat. Choose YES when asked to install GRUB \(this will replace rEFInd temporarily\). Create the BlissOS data image with the size you want. - -**Notes:** If you created a separate NTFS partition, you could choose to format it as ext3/4 during the Bliss OS installation. If you choose this option the installer will no longer ask you to create a data image. - -Also, because you chose to install GRUB, rEFInd will get replaced with GRUB as the default boot manager on the EFI partition at this stage. You can choose not to install GRUB during installation and manually create a boot entry for Bliss in rEFInd which will not be explained in this guide. - -However, note that rEFInd does not install an NTFS driver by default and does not install an ext3/4 driver either unless a Linux installation is present on the disk when rEFInd is installed. There are ways to fix this and include drivers \(see rEFInd documentation on drivers\), but it's easier to just use rEFInd to start GRUB which will boot Bliss regardless of whether it's on an NTFS or ext4 partition. - -13. At this stage if you reboot your system you will only see GRUB and you will only be able to boot into the Bliss OS installation. You need to reinstall rEFInd to restore booting into macOS and Windows. \(In reality rEFInd is still there on the EFI partition, but not the default option anymore\). Luckily you still have the rEFInd directory on your BlissOS bootable stick, so repeat the instructions from step 9 again to boot into macOS recovery, open terminal, navigate to the USB stick and run the ./refind-install script again. This will restore rEFInd as the default boot manager with all the options it had \(the previous configuration doesn't get replaced.\) - -14. Remove the USB stick and reboot your system. You will now see the rEFInd screen again with options to boot into macOS, Windows and multiple options for BlissOS, which will be detected with a Linux icon. Choose the option that says Boot with /EFI/Android/grubx64 and you can hide the rest. This will launch the familiar GRUB screen with all the normal BlissOS boot options. - -**Alternative:** It should be possible to skip the Windows installation. You can boot into macOS recovery and use the Disk Utility from there to resize the macOS partition and create a new partition for BlissOS formatted as FAT32 \(macOS does not support many filesystems natively\). You can then create the BlissOS bootable stick from macOS using UNetbootin instead of Rufus and also make sure you download rEFInd, unpack it and copy its directory to the stick. Then boot into recovery again, install rEFInd, boot into rEFInd to start the BlissOS installation. You can reformat the FAT32 partition as NTFS during the BlissOS installation and then follow all the steps. Install Grub. Go into recovery again, install rEFInd again and you're done. - diff --git a/Installation/live-boot-bliss-os.md b/Installation/live-boot-bliss-os.md deleted file mode 100644 index aed2ca36..00000000 --- a/Installation/live-boot-bliss-os.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -description: Try out Bliss OS before installation via live boot ---- - -# Live boot Bliss OS - -## Downloading Rufus - -Giving our Android builds a try on your PC is pretty simple and straight forward. To start out, let's head over to [https://rufus.ie](https://rufus.ie/en_US/) and download the latest version of Rufus \(I use the portable version\) - -![Download Rufus](../.gitbook/assets/downloading-rufus.png) - -## Using Rufus to flash your USB drive - -Once downloaded, plug in your USB drive, and launch Rufus and give it permissions to make changes to your device. Then press the "**Select**" button to browse for the .iso or .img file. - -![Using Rufus to flash the USB](../.gitbook/assets/using-rufus-to-flash-usb.png) - -Select the .iso by pressing the "**Open**" button on that dialog: - -![Selecting the iso](../.gitbook/assets/select-iso.png) - -Once selected, keep all the rest of the settings as default and click the Start button: - -![Start flashing the USB using Rufus](../.gitbook/assets/start-flashing.png) - -It will then show an ISOHybrid dialog, we will want to select .iso mode: - -![Select ISO mode](../.gitbook/assets/select-iso-mode.png) - -There might also be a notice about Syslinux, asking to download something. Select "**Yes**" and it will then continue. - -![Notice, select yes](../.gitbook/assets/notice-select-yes.png) - -Once that is done, it may ask you to "**OK**" the cleaning of your USB drive. Please select "**OK**" - -![Clean USB, select OK](../.gitbook/assets/clean-usb-select-ok.png) - -Rufus will then start to write the USB drive with what is on the Android .iso you downloaded. This process may take some time. - -## Rebooting from windows into your USB drive - -From Windows, hit the Start Button > Settings > Update & Security > Recovery and select the Restart Now button under Advanced Startup. - -![Advanced startup](../.gitbook/assets/advanced-startup%20%281%29.png) - -This will start to restart your PC, and show a Blue screen \(Metro bootloader\) where you will want to select "Use a Device" -Then on the next screen, your USB Drive should show up as either Bliss OS, Android OS or something to that effect. Select that, and it will reboot to grub and let you select the boot options to Live Boot Android from there. - diff --git a/Installation/manual-install-on-linux.md b/Installation/manual-install-on-linux.md deleted file mode 100644 index d3095433..00000000 --- a/Installation/manual-install-on-linux.md +++ /dev/null @@ -1,54 +0,0 @@ -# Manual Install on Linux - -## Installation - -Create a directory at / as /blissos - -1. Extract `initrd.img`, `ramdisk.img`, `kernel` and system.\* from your desired blissOS ISO into the /blissos directory. `ramdisk.img` can be ignored for Android 10 and newer as it is already merged into the system (system-as-root). -2. Make a directory called `/blissos/data`. This will only work for ext4 filesystems, for NTFS and other filesystems or if you are having bootloop you need data.img, can be created with make\_ext4fs. -3. Create a new grub entry with this the following code: - -``` -menuentry "BlissOS (Default) w/ FFMPEG" { - set SOURCE_NAME="blissos" search --set=root --file /$SOURCE_NAME/kernel - linux /$SOURCE_NAME/kernel FFMPEG_CODEC=1 FFMPEG_PREFER_C2=1 quiet root=/dev/ram0 SRC=/$SOURCE_NAME - initrd /$SOURCE_NAME/initrd.img -} - -menuentry "BlissOS (Intel) w/ FFMPEG" { - set SOURCE_NAME="blissos" search --set=root --file /$SOURCE_NAME/kernel - linux /$SOURCE_NAME/kernel HWC=drm_minigbm_celadon GRALLOC=minigbm FFMPEG_CODEC=1 FFMPEG_PREFER_C2=1 quiet root=/dev/ram0 SRC=/$SOURCE_NAME - initrd /$SOURCE_NAME/initrd.img -} - -menuentry "BlissOS PC-Mode (Default) w/ FFMPEG" { - set SOURCE_NAME="blissos" search --set=root --file /$SOURCE_NAME/kernel - linux /$SOURCE_NAME/kernel quiet root=/dev/ram0 SRC=/$SOURCE_NAME - initrd /$SOURCE_NAME/initrd.img -} - -menuentry "BlissOS PC-Mode (Intel) w/ FFMPEG" { - set SOURCE_NAME="blissos" search --set=root --file /$SOURCE_NAME/kernel - linux /$SOURCE_NAME/kernel PC_MODE=1 HWC=drm_minigbm_celadon GRALLOC=minigbm FFMPEG_CODEC=1 FFMPEG_PREFER_C2=1 quiet root=/dev/ram0 SRC=/$SOURCE_NAME - initrd /$SOURCE_NAME/initrd.img -} -``` - -### **Example for making a 8gb image:** - -``` -dd if=/dev/zero of=data.img bs=1 count=0 seek=8G -sudo mkfs.ext4 -F data.img -``` -Alternatively, one can use `truncate` -``` -truncate -s 8G data.img -mkfs.ext4 -F -b 4096 -L "/data" data.img -``` - -Here are some additional tips for installing BlissOS on Linux: -- Do not try to install Bliss OS on exotic linux filesystems such ZFS, XFS, BtrFS, currently not every filesystem has built-in support in the Bliss OS kernel, ext4 is supported. If you install it on an unsupported filesystem, it will be stuck at `Detecting Android-x86...`. You will probably have to compile your own kernel and use a modified initrd.img to boot from other filesystems. -- If you want read-write /system or being able to make changes to the system, simply extract system.img from system.img using a tool that support Zstandard compressed squashFS images. It can also be mounted. -- For `data.img`, it would be good to repair/check filesystem regularly using command `e2fsck -f data.img`. - -**!!ATTENTION!!** Bliss OS 14.3 and below versions also support Jaxparrow's Android-x86 Installer for Linux. Source can be found here: [https://github.com/jaxparrow07/Androidx86-Installer-Linux](https://github.com/jaxparrow07/Androidx86-Installer-Linux) diff --git a/Installation/run-from-docker.md b/Installation/run-from-docker.md deleted file mode 100644 index f643b06c..00000000 --- a/Installation/run-from-docker.md +++ /dev/null @@ -1,156 +0,0 @@ -# Run from Docker - -We have gained support for running our images from Docker thanks to @sickcodes and his Dock-Droid project. - -Our stable Android 9 based images are default, but you can load up a specific image as well \(helpful for testing in a development environment\) - -#### Exerpt below taken from: [https://github.com/sickcodes/dock-droid](https://github.com/sickcodes/dock-droid) - -## Initial setup - -Before you do anything else, you will need to turn on hardware virtualization in your BIOS. Precisely how will depend on your particular machine \(and BIOS\), but it should be straightforward. - -Then, you'll need QEMU and some other dependencies on your host: - -```text -# ARCH -sudo pacman -S qemu libvirt dnsmasq virt-manager bridge-utils flex bison iptables-nft edk2-ovmf - -# UBUNTU DEBIAN -sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager - -# CENTOS RHEL FEDORA -sudo yum install libvirt qemu-kvm -``` - -Then, enable libvirt and load the KVM kernel module: - -```text -sudo systemctl enable --now libvirtd -sudo systemctl enable --now virtlogd - -echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs - -sudo modprobe kvm -``` - -## Quick Start - -### Run Bliss OS 11.x Image [![https://img.shields.io/docker/image-size/sickcodes/dock-droid/latest?label=sickcodes%2Fdock-droid%3Alatest](https://camo.githubusercontent.com/efcc83e99f50dcdb78a8e0dd46e66ebb79aeb3d7a2539c9367e7be7c6fdd96b8/68747470733a2f2f696d672e736869656c64732e696f2f646f636b65722f696d6167652d73697a652f7369636b636f6465732f646f636b2d64726f69642f6c61746573743f6c6162656c3d7369636b636f646573253246646f636b2d64726f69642533416c6174657374)](https://hub.docker.com/r/sickcodes/dock-droid/tags?page=1&ordering=last_updated) - -```text -docker run -it \ - --device /dev/kvm \ - -v /tmp/.X11-unix:/tmp/.X11-unix \ - -e "DISPLAY=${DISPLAY:-:0.0}" \ - -p 5555:5555 \ - sickcodes/dock-droid:latest -``` - -Increase RAM by adding this line: `-e RAM=4 \` - -Want to use your WebCam and Audio too? - -`v4l2-ctl --list-devices` - -`lsusb` to get the `hostbus` and `hostaddr` - -```text -Bus 003 Device 003: ID 13d3:56a2 IMC Networks USB2.0 HD UVC WebCam -``` - -Would be `-device usb-host,hostbus=3,hostaddr=3` - -```text -docker run -it \ - --privileged \ - --device /dev/kvm \ - -v /tmp/.X11-unix:/tmp/.X11-unix \ - -e "DISPLAY=${DISPLAY:-:0.0}" \ - -p 5555:5555 \ - -p 50922:10022 \ - --device /dev/video0 \ - -e EXTRA='-device usb-host,hostbus=3,hostaddr=3' \ - --device /dev/snd \ - sickcodes/dock-droid:latest -``` - -Want to use SwiftShader acceleration? - -```text -docker run -it \ - --privileged \ - --device /dev/kvm \ - -v /tmp/.X11-unix:/tmp/.X11-unix \ - -e "DISPLAY=${DISPLAY:-:0.0}" \ - -p 5555:5555 \ - -p 50922:10022 \ - --device=/dev/dri \ - --group-add video \ - -e EXTRA='-display sdl,gl=on' \ - sickcodes/dock-droid:latest -``` - -In development by BlissOS team: mesa graphics card + OpenGL3.2. - -#### Use your own image/naked version - -```text -# get container name from -docker ps -a - -# copy out the image -docker cp container_name:/home/arch/dock-droid/android.qcow2 . -``` - -Use any generic ISO or use your own Android AOSP raw image or qcow2 - -Where, `"${PWD}/disk.qcow2"` is your image in the host system. - -```text -docker run -it \ - -v "${PWD}/android.qcow2:/home/arch/dock-droid/android.qcow2" \ - --privileged \ - --device /dev/kvm \ - --device /dev/video0 \ - -v /tmp/.X11-unix:/tmp/.X11-unix \ - -e "DISPLAY=${DISPLAY:-:0.0}" \ - -p 5555:5555 \ - -p 50922:10022 \ - -e EXTRA='-device usb-host,hostbus=3,hostaddr=3' \ - sickcodes/dock-droid:latest -``` - -#### Custom Build - -```text -CDROM_IMAGE_URL='https://sourceforge.net/projects/blissos-x86/files/Official/bleeding_edge/Generic%20builds%20-%20Pie/11.13/Bliss-v11.13--OFFICIAL-20201113-1525_x86_64_k-k4.19.122-ax86-ga-rmi_m-20.1.0-llvm90_dgc-t3_gms_intelhd.iso' - -docker build \ - -t dock-droid-custom \ - -e CDROM_IMAGE_URL="${CDROM_IMAGE_URL}" . -``` - -#### How to connect using ADB - -In the Android terminal emulator: - -Edit `/default.prop` - -Change `ro.adb.secure=1` to `ro.adb.secure=0` - -E.g. - -```text -su -sed -i -e 's/ro\.adb\.secure\=1/ro\.adb\.secure\=0/' /default.prop -``` - -In the Android terminal emulator, run `adbd` - -Then from the host, you can can connect using either: `adb connect localhost:5555` - -`adb connect 172.17.0.2:5555` - -For further information, and even information. on a dockerized build environment for Bliss OS, please visit: [https://github.com/sickcodes/dock-droid](https://github.com/sickcodes/dock-droid) - diff --git a/Installation/syslinux-efi-stub-installation.md b/Installation/syslinux-efi-stub-installation.md deleted file mode 100644 index 44fb8343..00000000 --- a/Installation/syslinux-efi-stub-installation.md +++ /dev/null @@ -1,103 +0,0 @@ -# Syslinux EFI Stub Installation - -## Use syslinux EFI to run Bliss OS 7.x/10.x/11.x/12.x/14.x - -Thanks to @IcedCube for the original post! This method is **NOT recommended** as it is fairly bleeding-edge and experimental, but it should help booting on Chinese tablets that do not want to run `grub`. - -Use a Linux installation for the following procedure. - -### Part 1 - Grab the required tools - -Install `unsquashfs` \(part of `squashfs-tools`\). - -### Part 2 - Get Bliss OS - -Grab the latest build of Bliss OS 7.x/10.x/11.x/12.x/14.x - -### Part 3 - Get the syslinux EFI bootstrap - -[Grab the `.zip` file from @IcedCube's original post](https://forum.xda-developers.com/showpost.php?p=74977694&postcount=1237), and extract it to the root of the USB drive. This will bootstrap syslinux EFI onto it. - -Then, make a folder called `android`. - -Now, open up the `.iso` in an archive program. Extract the following files form the root directory of the `.iso` image to the USB drive's `android` folder \( ramdisk.img is not used in Android 10+ \): - -* `initrd.img` -* `ramdisk.img` -* `kernel` - -Extract `system.sfs` to a folder somewhere, such as `/tmp`. - -Open a terminal and change directory \(using `cd`\) to `/tmp`. Run `ls` and confirm that `system.sfs` is shown in the file list. If there is no output, start over as the file is misplaced. - -Run the following: - -`unsquashfs ./system.sfs` - -This will make a new directory called `squashfs_root`. - -### Part 4 - Version specific - -#### If you are using Bliss 7.x - -Change directory to `squashfs_root` and run `ls`. There should only be one file - a `system.img` inside the directory. Copy the file to the USB's `android` folder. - -### If you are using Bliss 10.x/11.x/12.x/14.x - -Change directory to `squashfs_root`. The structure is a complete Android root filesystem. To install Bliss OS, the files will need to be in a system image. The following steps will guide you through creating a 2 GB `system.img` file, formatting it, mounting it, and copying the contents of `squashfs_root` into the new disk image. - -Execute: - -```text -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` command might take some time. - -Now copy the `/tmp/system.img` file to your USB's Android folder. - -### Part 5 - Creating the data image - -First, find where your USB drive is mounted. It is usually in `/mnt` or `/media` \(ex. `/media/USB`\). - -`cd` into the `android` folder. - -We will create a 3 GB data image file. You can attempt to create a 4 GB image but FAT32 maxes out at 4 GB per file. If your system supports exFAT or NTFS, you may try and use it. - -```text -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 run Bliss. - -Finally, check to ensure everything is in structured like so: - -```text - -- 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? Open `syslinux.cfg` and add them before the `initrd=/android/initrd.img` statement. - -Unmount the USB from your computer. Plug it into your device and use the BIOS to boot from your UEFI 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 boot animation play after a couple minutes depending on your USB drive read/write speed. - diff --git a/Installation/updating-bliss-os-ag-builds.md b/Installation/updating-bliss-os-ag-builds.md deleted file mode 100644 index e6b33148..00000000 --- a/Installation/updating-bliss-os-ag-builds.md +++ /dev/null @@ -1,12 +0,0 @@ -# Updating Bliss OS/AG builds - -Somethmes you might want to update your Bliss OS/AG install when a new release is pushed out. Doing this is simple, as long as you used our documented methods to install. - -**Bootable USB Method:** - -This process is exactly the same as when you installed, except now it will ask if you want to update and existing install instead. - -**Windows Installer Method:** - -Use 7-Zip to open the new .iso, and simply drag the kernel, initrd.img \(and ramdisk.img if on Pie\) to the install folder, overwriting the old ones, then in 7-Zip, double click on the system.sfs file and drag the system.img inside over to replace your existing system.img. If you only have a system.sfs file, replace that with the system.img, and delete the old .sfs file. Then reboot and boot into your newly updated release - diff --git a/Installation/using-auto-install.md b/Installation/using-auto-install.md deleted file mode 100644 index 0a58aec1..00000000 --- a/Installation/using-auto-install.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -description: >- - For those that want to use the auto-install feature, there are a few things - you should know first. ---- - -# Using Auto-Install - -Android-x86's bootable USB Auto-Install feature will only work for Android 9 and below. and it requires a MBR or Legacy boot setup and not EFI. - -It sets a fixed size for the data image and does not allow for proper root as well. So if you still require the use of Auto Install, please note that we do not support this method as it is outdated. diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670048_x.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670048_x.jpg deleted file mode 100644 index 99506e2c..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670048_x.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670049_y.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670049_y.jpg deleted file mode 100644 index 263036a0..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670049_y.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670050_m.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670050_m.jpg deleted file mode 100644 index 63948f41..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670050_m.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670051_m.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670051_m.jpg deleted file mode 100644 index 8aeee8f4..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670051_m.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670052_x.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670052_x.jpg deleted file mode 100644 index 56decc68..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670052_x.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670053_x.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670053_x.jpg deleted file mode 100644 index 391d5060..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670053_x.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670054_x.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670054_x.jpg deleted file mode 100644 index 111e55b3..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670054_x.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670055_m.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670055_m.jpg deleted file mode 100644 index 062a4ecb..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670055_m.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670056_x.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670056_x.jpg deleted file mode 100644 index 4084db9e..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670056_x.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670057_x.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670057_x.jpg deleted file mode 100644 index 30d8cb88..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670057_x.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670060_y.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670060_y.jpg deleted file mode 100644 index 87c7228f..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670060_y.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670061_y.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670061_y.jpg deleted file mode 100644 index e2b34e13..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670061_y.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670062_y.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670062_y.jpg deleted file mode 100644 index b85fa5ea..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670062_y.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100430151589670063_y.jpg b/Installation/using-the-windows-installer/images/photo_5100430151589670063_y.jpg deleted file mode 100644 index a6360c3e..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100430151589670063_y.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100728918104714417_y.jpg b/Installation/using-the-windows-installer/images/photo_5100728918104714417_y.jpg deleted file mode 100644 index 809e5d12..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100728918104714417_y.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/images/photo_5100728918104714418_y.jpg b/Installation/using-the-windows-installer/images/photo_5100728918104714418_y.jpg deleted file mode 100644 index e45634ff..00000000 Binary files a/Installation/using-the-windows-installer/images/photo_5100728918104714418_y.jpg and /dev/null differ diff --git a/Installation/using-the-windows-installer/using-the-windows-installer.md b/Installation/using-the-windows-installer/using-the-windows-installer.md deleted file mode 100644 index d9ea2ce1..00000000 --- a/Installation/using-the-windows-installer/using-the-windows-installer.md +++ /dev/null @@ -1,63 +0,0 @@ -## Using the Windows Installer - -We maintain an installer for Windows, but we still recommend using the standard EFI install method from our bootable USB in order to take advantage of the stability, security and updatability of Bliss OS builds. - -#### Downloading the installer - -Start off by heading to the github repo for the installer and downloading the latest .exe usually found in the /bin/make_installer folder of that repo. -https://github.com/BlissRoms-x86/Androidx86-Installer-for-Windows/tree/2.9.0.1/bin/make_installer - -There is an .exe file in there named Androidx86-Installv29.0000.exe. That is the one you will need to grab. Save it to your Computer along with the latest Bliss OS/Bass .iso you wish to install along side Windows. - -#### Installing Android - -When you launch the application, the UI is mostly self explanitory, but just in case, we will run through the steps here with you. - -![alt text](images/photo_5100430151589670048_x.jpg) - -If you have a pervious install attempt that did not work for Bliss, Remix OS, Prime OS, etc. We recommend that you use the **Cleanup** option first before installing. This will help avoid any configuration or installation issues. This step will ask for verification, and confirm with a dialog when complete. - -![alt text](images/photo_5100430151589670057_x.jpg) -![alt text](images/photo_5100430151589670051_m.jpg) - -From here, we can relaunch the installer or continue using it, and select the .iso by clicking the icon to the right of the **Android OS Image** field. This will open a Windows File Explorer window and let you navigate to your download and select the .iso. - -![alt text](images/photo_5100430151589670049_y.jpg) - -From here, we can select the **Target Drive**, and then drag the **Data Size** slider to the space we want to use for our data.img (Android Data partition). - -(**!!PLEASE NOTE!!**): The **Extract** option is only useful for users that want to be able to remount the system as RW. We provide an immutable root method (KernelSU) in all recent Bliss builds, so this option can be ignored. - -![alt text](images/photo_5100430151589670048_x.jpg) - -When you are done setting up the build, go ahead and click the **Install** button. -The process of the install will display at the lower lefthand side of the app window. - -![alt text](images/photo_5100430151589670054_x.jpg) - -When complete, the installer will popup a dialog stating so. - -![alt text](images/photo_5100430151589670052_x.jpg) - -#### Rebooting into Android - -In order to reboot into Android, we start off by entering Settings, and navigating to the System tab on the left, and scroll down, selecting **Recovery** on the right. - -![alt text](images/photo_5100728918104714417_y.jpg) - -In the **Recovery** tab, you want to find the **Advanced startup** option, and click the **Restart now** button. - -![alt text](images/photo_5100728918104714418_y.jpg) - -This will restart your PC into the Advanced Startup menu. You want to select the **Use a device** option - -![alt text](images/photo_5100430151589670061_y.jpg) - -Followed by the **Android OS** option - -![alt text](images/photo_5100430151589670060_y.jpg) - -From here, your PC should reboot into Grub, and display the Grub menu for the .iso you installed - -![alt text](images/photo_5100430151589670062_y.jpg) - diff --git a/README.md b/README.md index 251b8b31..0db2a7b1 100644 --- a/README.md +++ b/README.md @@ -6,58 +6,43 @@ icon: home # Table of contents -## Install Bliss OS +## Install Bass OS -* [Live boot Bliss OS](Installation/live-boot-bliss-os.md) * [Install From Bootable USB](Installation/install-from-bootable-usb.md) -* [Install in a Virtual Machine](Installation/install-in-a-virtual-machine/README.md) - * [Install in VirtualBox](Installation/install-in-a-virtual-machine/install-in-virtualbox.md) - * [Install in Qemu](Installation/install-in-a-virtual-machine/install-in-qemu.md) - * [Advanced QEMU Config](Installation/install-in-a-virtual-machine/advanced-qemu-config.md) -* [Syslinux EFI Stub Installation](Installation/syslinux-efi-stub-installation.md) -* [Updating Bliss OS/AG builds](Installation/updating-bliss-os-ag-builds.md) -* [Advanced Installation](Installation/advanced-installation.md) -* [Manual Install on Linux](Installation/manual-install-on-linux.md) -* [Run from Docker](Installation/run-from-docker.md) -* [Install on Mac OS](Installation/install-on-mac-os.md) -* [Using Auto-Install](Installation/using-auto-install.md) -* [Using The Windows Installer](Installation/using-the-windows-installer/using-the-windows-installer.md) +* [Collecting bug reports](Installation/collecting-bug-reports.md) ## Configuration -* [Configuration through Command Line Parameters](configuration/Configuration-through-Command-Line-Parameters.md) -* [Calibrate and configure IPTSD](configuration/Calibrate-and-configure-iptsd.md) +* [Configuration through Command Line Parameters](setup_and_configuration/Configuration-through-Command-Line-Parameters.md) +* [Booting into generic builds](setup_and_configuration/booting-into-generic-builds.md) +* [Booting into lockdown builds](setup_and_configuration/booting-into-lockdown-builds.md) + +## Features + +* [Admin Restriction](features/admin-restriction.md) +* [DNS Internet Restriction](features/dns-internet-restriction.md) +* [Updates and OTA](features/updates-and-ota.md) + +## Applications + +* [Bliss Ethernet Manager](applications/BlissEthernetManager/BlissEthernetManager.md) +* [Bliss Kiosk Launcher](applications/BlissKioskLauncher/BlissKioskLauncher.md) +* [Bliss Restricted Launcher](applications/BlissRestrictedLauncher/BlissRestrictedLauncher.md) + +## Interfaces + +* [Power Management API](interfaces/power-management-aidl.md)* +* [Bliss Ethernet Manager](applications/BlissEthernetManager/BlissEthernetManager.md) ## Development -* [\[GUI Method\] Build Bliss OS 14.x](development/gui-method-build-bliss-os-14.x.md) -* [Build Bliss OS 11.x](development/build-bliss-os-11.x.md) -* [Build Bliss OS 14.x](development/build-bliss-os-14.x.md) +* [Building Bass OS](development/building-bass.md) * [Development FAQ](development/development-faq.md) * [Maintaining Proper Authorship](development/maintaining-proper-authorship.md) * [Contributing Documentation](development/contributing-documentation.md) * [What are Linux Drivers?](development/what-are-linux-drivers.md) * [Porting Linux Drivers](development/porting-linux-drivers.md) -## Knowledgebase - -* [XDA Threads](knowledgebase/external-threads-and-links/xda-threads.md) -* [FAQ - Build Filenames](knowledgebase/frequently-asked-questions/build-filenames.md) -* [FAQ - General](knowledgebase/frequently-asked-questions/faq.md) -* [FAQ - Desktop Mode](knowledgebase/frequently-asked-questions/desktop-mode.md) -* [FAQ - Hardware Compatibility](knowledgebase/frequently-asked-questions/hardware-compatibility.md) -* [FAQ - Collecting Logs](knowledgebase/frequently-asked-questions/how-to-log.md) -* [FAQ - Keyboard Shortcuts](knowledgebase/frequently-asked-questions/keyboard-shortcuts.md) -* [FAQ - App Sandboxing](knowledgebase/frequently-asked-questions/sandboxing-apps.md) -* [FAQ - Vulkan Mode](knowledgebase/frequently-asked-questions/vulkan-mode.md) -* [Resource - Advanced Android-x86 Installer](knowledgebase/supreme-gamers-resources-we-like/advanced-android-x86-installer.md) -* [Resource - Gearlock Recovery](knowledgebase/supreme-gamers-resources-we-like/gearlock.md) -* [Resource - Linux Installer](knowledgebase/supreme-gamers-resources-we-like/linux-android-x86-installer.md) -* [Troubleshooting - Boot](knowledgebase/troubleshooting/debug-booting.md) -* [Troubleshooting - Graphics](knowledgebase/troubleshooting/graphics-troubleshooting.md) -* [Troubleshooting - Mounting EXT on Boot](knowledgebase/troubleshooting/how-to-mount-ext-partition-on-boot.md) -* [Troubleshooting - Surface IPTS Package](knowledgebase/troubleshooting/microsoft-surface-ipts-gearlock-package.md) -* [Troubleshooting - Linux Boot](knowledgebase/troubleshooting/not-booting-after-install-on-linux.md) -* [Troubleshooting - Remount as RW](knowledgebase/troubleshooting/remount-system-as-read-write.md) -* [Troubleshooting - Sound](knowledgebase/troubleshooting/sound-issues.md) -* [Troubleshooting - WiFi](knowledgebase/troubleshooting/wifi-issues.md) +## Other Resources + +* [Bliss OS Documentation](https://docs.blissos.org) diff --git a/knowledgebase/bliss-bass/applications/BlissEthernetManager/BlissEthernetManager.md b/applications/BlissEthernetManager/BlissEthernetManager.md similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissEthernetManager/BlissEthernetManager.md rename to applications/BlissEthernetManager/BlissEthernetManager.md diff --git a/knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image10.png b/applications/BlissEthernetManager/images/image10.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image10.png rename to applications/BlissEthernetManager/images/image10.png diff --git a/knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image11.png b/applications/BlissEthernetManager/images/image11.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image11.png rename to applications/BlissEthernetManager/images/image11.png diff --git a/knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image22.png b/applications/BlissEthernetManager/images/image22.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image22.png rename to applications/BlissEthernetManager/images/image22.png diff --git a/knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image27.png b/applications/BlissEthernetManager/images/image27.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image27.png rename to applications/BlissEthernetManager/images/image27.png diff --git a/knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image28.png b/applications/BlissEthernetManager/images/image28.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image28.png rename to applications/BlissEthernetManager/images/image28.png diff --git a/knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image6.jpg b/applications/BlissEthernetManager/images/image6.jpg similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image6.jpg rename to applications/BlissEthernetManager/images/image6.jpg diff --git a/knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image8.jpg b/applications/BlissEthernetManager/images/image8.jpg similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissEthernetManager/images/image8.jpg rename to applications/BlissEthernetManager/images/image8.jpg diff --git a/knowledgebase/bliss-bass/applications/BlissKioskLauncher/BlissKioskLauncher.md b/applications/BlissKioskLauncher/BlissKioskLauncher.md similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissKioskLauncher/BlissKioskLauncher.md rename to applications/BlissKioskLauncher/BlissKioskLauncher.md diff --git a/knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image1.png b/applications/BlissKioskLauncher/images/image1.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image1.png rename to applications/BlissKioskLauncher/images/image1.png diff --git a/knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image14.png b/applications/BlissKioskLauncher/images/image14.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image14.png rename to applications/BlissKioskLauncher/images/image14.png diff --git a/knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image16.png b/applications/BlissKioskLauncher/images/image16.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image16.png rename to applications/BlissKioskLauncher/images/image16.png diff --git a/knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image19.png b/applications/BlissKioskLauncher/images/image19.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image19.png rename to applications/BlissKioskLauncher/images/image19.png diff --git a/knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image21.png b/applications/BlissKioskLauncher/images/image21.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image21.png rename to applications/BlissKioskLauncher/images/image21.png diff --git a/knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image25.png b/applications/BlissKioskLauncher/images/image25.png similarity index 100% rename from knowledgebase/bliss-bass/applications/BlissKioskLauncher/images/image25.png rename to applications/BlissKioskLauncher/images/image25.png diff --git a/applications/BlissRestrictedLauncher/BlissRestrictedLauncher.md b/applications/BlissRestrictedLauncher/BlissRestrictedLauncher.md new file mode 100644 index 00000000..02af8faa --- /dev/null +++ b/applications/BlissRestrictedLauncher/BlissRestrictedLauncher.md @@ -0,0 +1,61 @@ +# Setting Up Bliss Restricted Launcher + +If your BlissBass builds comes with Bliss Restricted Launcher, then you have the ability to restrict it’s access to various packages on the device, as well as set specific packages to auto-launch across multiple connected displays when booting the device into Lockdown mode (Default), or locking the device while in Admin mode (Other Options > Admin). + +### Admin Mode: + +Admin mode will display both the sprocket and the lock button on the top right of the display, and allow access to navigation, statusbar, recents, and other Android features by default. + +![Admin mode desktop](images/admin-mode_main.png "image_tooltip") + +This mode is open by default and allows for the launcher defaults to be configured. + +### Configuration: + +Clicking on the sprocket from the home screen will launch the Restricted Launcher Settings screen: + +![Initial Settings Screen](images/main-settings.png "image_tooltip") + +The main settings screen has a number of suboptions to select from: + +#### Appearance + +The appearance settings screen allows you to change a number of details about the overall look and feel of the kiosk interface. Depending on the Free or Pro version of the app, there may be some options that are unavaialable like setting custom logo, and hiding/changing the logo overlay options. + +![Appearance Settings](images/apparance-settings.png) + +#### Apps + +Apps settings has all the options related to selecting your whitelisted apps and auto-launching them across multiple displays: + +![Apps Settings](images/apps-settings.png) + +The auto-start app options will show a list of apps for you to select from: + +![auto-start app selection](images/autostart.png) + +#### Security + +The Security options is where you will initially want to set the Kiosk password, and enable/disable the various features on the kiosk that you want to be available in lockdown mode: + +![Security Settings](images/features2.png) + +#### System + +The system settings page allows you to set the kiosk screen timeout and enable/disable the on-screen keyboard (if your device has a secondary keyboard attaches, this override may be needed): + +![System Settings](images/system-settings.png) + +### Lockdown Mode: + + +![lockdown mode](images/lockdown.png "image_tooltip") + + +You can configure Restricted Launchers Lockdown mode to have navigation bar, gesture handle and status bar are all disabled, and the app drawer will only display allowed packages. + +While in Lockdown mode, you can access the Restricted Launcher Settings by clicking the sprocket at the top right of the screen, and a password prompt will display requiring the password set from Admin mode to be input: + +![lockdown password prompt](images/lockdown-password.png "image_tooltip") + + diff --git a/applications/BlissRestrictedLauncher/images/about-settings.png b/applications/BlissRestrictedLauncher/images/about-settings.png new file mode 100644 index 00000000..12297401 Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/about-settings.png differ diff --git a/applications/BlissRestrictedLauncher/images/admin-mode_main.png b/applications/BlissRestrictedLauncher/images/admin-mode_main.png new file mode 100644 index 00000000..0aa9246e Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/admin-mode_main.png differ diff --git a/applications/BlissRestrictedLauncher/images/admin.png b/applications/BlissRestrictedLauncher/images/admin.png new file mode 100644 index 00000000..ae5578eb Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/admin.png differ diff --git a/applications/BlissRestrictedLauncher/images/apparance-settings.png b/applications/BlissRestrictedLauncher/images/apparance-settings.png new file mode 100644 index 00000000..bb3d9837 Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/apparance-settings.png differ diff --git a/applications/BlissRestrictedLauncher/images/apps-settings.png b/applications/BlissRestrictedLauncher/images/apps-settings.png new file mode 100644 index 00000000..755f05db Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/apps-settings.png differ diff --git a/applications/BlissRestrictedLauncher/images/autostart.png b/applications/BlissRestrictedLauncher/images/autostart.png new file mode 100644 index 00000000..86b16b89 Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/autostart.png differ diff --git a/applications/BlissRestrictedLauncher/images/features.png b/applications/BlissRestrictedLauncher/images/features.png new file mode 100644 index 00000000..b624e91e Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/features.png differ diff --git a/applications/BlissRestrictedLauncher/images/features2.png b/applications/BlissRestrictedLauncher/images/features2.png new file mode 100644 index 00000000..c6a00214 Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/features2.png differ diff --git a/applications/BlissRestrictedLauncher/images/features3.png b/applications/BlissRestrictedLauncher/images/features3.png new file mode 100644 index 00000000..c1f5df45 Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/features3.png differ diff --git a/applications/BlissRestrictedLauncher/images/lockdown-password.png b/applications/BlissRestrictedLauncher/images/lockdown-password.png new file mode 100644 index 00000000..8b6a6d42 Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/lockdown-password.png differ diff --git a/applications/BlissRestrictedLauncher/images/lockdown.png b/applications/BlissRestrictedLauncher/images/lockdown.png new file mode 100644 index 00000000..167879e5 Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/lockdown.png differ diff --git a/applications/BlissRestrictedLauncher/images/lockdown_2.jpeg b/applications/BlissRestrictedLauncher/images/lockdown_2.jpeg new file mode 100644 index 00000000..e5bede66 Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/lockdown_2.jpeg differ diff --git a/applications/BlissRestrictedLauncher/images/main-settings.png b/applications/BlissRestrictedLauncher/images/main-settings.png new file mode 100644 index 00000000..421e700d Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/main-settings.png differ diff --git a/applications/BlissRestrictedLauncher/images/security-settings.png b/applications/BlissRestrictedLauncher/images/security-settings.png new file mode 100644 index 00000000..ad78aa32 Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/security-settings.png differ diff --git a/applications/BlissRestrictedLauncher/images/system-settings.png b/applications/BlissRestrictedLauncher/images/system-settings.png new file mode 100644 index 00000000..aa9ae608 Binary files /dev/null and b/applications/BlissRestrictedLauncher/images/system-settings.png differ diff --git a/configuration/Calibrate-and-configure-iptsd.md b/configuration/Calibrate-and-configure-iptsd.md deleted file mode 100644 index a860392c..00000000 --- a/configuration/Calibrate-and-configure-iptsd.md +++ /dev/null @@ -1,78 +0,0 @@ -# Calibrate and configure iptsd - -This section is a copy of [linux-surface iptsd wiki](https://github.com/linux-surface/iptsd/wiki/Calibrating-iptsd) with a few edit for BlissOS's iptsd. If you have any trouble with configuring iptsd, please file a bug report [here for BlissOS 14 & 15](https://github.com/BlissRoms-x86/support/issues) and [here for BlissOS 16+](https://github.com/BlissOS/bug_reports/issues). You can also file a bug report at [the main iptsd repo](https://github.com/linux-surface/iptsd/issues). - -The palm rejection of iptsd relies on measuring the size and aspect ratio of every contact and then comparing these values to a reference to determine whether the contact is valid or not. The default values will try to cover the finger size of most people, but it is possible (and recommended) to tune these values to better match your fingers. This by extension will also improve palm rejection. - -The values that are interesting for calibration are: - * `SizeMin` (Default: 0.2 cm) - * `SizeMax` (Default: 2.0 cm) - * `AspectMin` (Default: 1.0) - * `AspectMax` (Default: 2.5) - -To calibrate iptsd, you need to measure the size of your own fingers and then input those values into the configuration file of the daemon. But before you go away and grab a ruler (or just go away), wait! To make this easier, iptsd includes a tool that will do these measurements for you: `iptsd-calibrate`. - -The first thing you need to do is stop iptsd. Grant Termux root permission using KernelSU Manager and then : - -```bash -su -stop iptsd_runner -killall iptsd -``` - -Once that is done you can run the calibration tool. - -```bash -su -iptsd-calibrate $(iptsd-find-hidraw) -``` - -You will see something like this: - -``` -[17:46:55.678] [info] Connected to device 045E:0021 -[17:46:55.678] [info] Samples: 0 -[17:46:55.678] [info] Size: 0.000 (Min: 0.000; Max: 0.000) -[17:46:55.678] [info] Aspect: 0.000 (Min: 0.000; Max: 0.000) -``` - -The values will update as soon as you touch the display and iptsd registers a contact. You can now start the actual calibration process. Touch the screen with each of your fingers, one time pressing hard and one time pressing lightly. Then put all your fingers on the display at the same time. You should also do some common gestures like pinch-to-zoom or swiping across the display with three or four fingers, since gestures tend to deform the contact. If you only press your fingers straight on the display, iptsd will detect touches fine but will fail to detect gestures. - -There is no need for extensively long contacts. Keeping the finger on the display for a long time won't improve calibration accuracy, since you only need a minimal and a maximal value. But it has the potential to introduce noise into the calibration process which will distort the Min/Max values. 3000 to 4000 samples should be plenty. - -**NOTE**: During the calibration, palm rejection is not active! So dont put your palm on the display. If you can, detach the display from the keyboard. - -When you are done with the calibration, you should see something like this in the terminal: - -``` -[17:46:55.678] [info] Connected to device 045E:0021 -[17:46:57.186] [info] Samples: 3629 -[17:46:57.186] [info] Size: 0.636 (Min: 0.425; Max: 0.859) -[17:46:57.187] [info] Aspect: 1.298 (Min: 1.021; Max: 2.323) -``` - -In this case the new values would be: - * `SizeMin`: 0.425 cm - * `SizeMax`: 0.859 cm - * `AspectMin`: 1.021 - * `AspectMax`: 2.323 - -Create a file `/data/vendor/ipts/90-calibration.conf` with a text editor of your choice, and enter the above values like this: - -```ini -[Contacts] -SizeMin = 0.425 -SizeMax = 0.859 -AspectMin = 1.021 -AspectMax = 2.323 -``` - -After you did that, you can restart iptsd and try out your new calibration. - -```bash -start iptsd_runner -``` - -If you have issues with iptsd not detecting a particular gesture or contact, you should repeat this process and only do the gesture that iptsd has problems with. Then compare the reported values with the ones from your earlier run and adjust them accordingly. - -Also check out [this iptsd.conf sample](https://github.com/linux-surface/iptsd/blob/master/etc/iptsd.conf) if you want reference for manual tweaking. diff --git a/development/assets/bass-customization.png b/development/assets/bass-customization.png new file mode 100644 index 00000000..e7da4555 Binary files /dev/null and b/development/assets/bass-customization.png differ diff --git a/development/build-bliss-os-11.x.md b/development/build-bliss-os-11.x.md deleted file mode 100644 index c978ecc3..00000000 --- a/development/build-bliss-os-11.x.md +++ /dev/null @@ -1,386 +0,0 @@ ---- -description: Instructions on how to build Bliss OS yourself ---- - -# Build Bliss OS 11.x - -## Introduction - -This is the official guide to build Bliss OS for PCs. In this guide, we will only cover building for x86 & x86\_64 devices. We will also go over the details of using the patch system for testing and recompiling a build with a different kernel branch. - -The golden rule to building is patience. If something breaks, pay attention to the console output or take logs of the issue and ask for guidance in our build support chat. - -Let’s get started. - -## Preparation - -To get started, you need a computer with Ubuntu 18.04 \(LTS\), at least 200GB space of HDD, and at least 8GB RAM. A decent CPU \(or CPUs if you have a server motherboard\) is recommended. Other distros can work but is not officially supported in this guide. - -Underpowered machines may crash during compilation. If that happens, you may try and restart the build as most crashes are caused by lack of memory. If your storage space has run out, then you will need to build on a different hard drive. - -## Install the JDK - -Install OpenJDK: - -```text -sudo apt install openjdk-8-jdk -``` - -## Install build tools - -To install the required build tools, run the following command: - -```text -sudo apt-get install git-core gnupg flex bison maven gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip squashfs-tools python-mako libssl-dev ninja-build lunzip syslinux syslinux-utils gettext genisoimage gettext bc xorriso libncurses5 -``` - -## Install source code tools - -Now we need to get the source code via a program named `repo`, made by Google. The primary function of `repo` is to read a manifest file located in Bliss OS's GitHub organization, and find what repositories you need to actually build Android. - -Create a `~/bin` directory for `repo`: - -```text -mkdir -p ~/bin -``` - -The `-p` flag instructs `mkdir` to _only_ create the directory if it does not exist in the first place. Now download the `repo` tool into `~/bin`: - -```text -curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo -``` - -Make `repo` executable: - -```text -chmod a+x ~/bin/repo -``` - -And add it to PATH: - -```text -nano .bashrc -``` - -Scroll to the end of the file and type these lines: - -```text -# Export ~/bin -export PATH=~/bin:$PATH -``` - -Ctrl-O and enter to save, then Ctrl-X to exit nano. Now either logout and login again \(or reboot\), or `source` the file: - -```text -source .bashrc -``` - -Which can be shortened to: - -```text -. .bashrc -``` - -### What is `source`? - -`source` is a `bash` command to read aliases, functions, and commands from the specified file. Typically, you'll supply `bash` with a configuration file such as `.bashrc` or `.bash_profile`, or an initialization file such as `envsetup.sh`. The difference is that while the configuration file lists configuration and user-defined aliases and functions, initialization files typically hold build commands such as `breakfast`, `brunch`, and `lunch`. Without those commands building would be significantly harder as you would have to memorize the long command to invoke a build manually! - -But why do you need to run it after modifying a file? Well, `bash` cannot automatically detect changes in our files. To solve this, we either `source` it or log out and log back in, forcing `bash` to reload configuration files. Keep this in mind, because unlike configuration files, if you forget to `source` initialization files, build commands will not function! - -### What if I need `repo` globally? - -If you need the `repo` tool to be available anywhere, you will need to first download `repo` to your home directory, move it with `sudo` and give it executable permissions. The exact commands are as follows: - -```text -curl https://storage.googleapis.com/git-repo-downloads/repo > ~/repo -sudo mv ~/repo /usr/bin/ -chmod a+x /usr/bin/repo -``` - -`repo` will now work anywhere, without any `.bashrc` modifications. However, these steps aren’t recommended as `repo` might become a security risk if a vulnerability is found. - -Now we’re ready to download the source code. - -## Download - -Create a directory for the source: - -```text -mkdir -p ~/blissos/p9.0 -cd ~/blissos/p9.0 -``` - -Before we download, we need to tell `repo` and `git` who we are. Run the following commands, substituting your information: - -```text -git config --global user.email “randy.mcrandyface@hotmail.net” -git config --global user.name “Randy McRandyface” -``` - -Now, we’re ready to initialize. We need to tell `repo` which manifest to read: - -```text -repo init -u https://github.com/BlissRoms-x86/manifest.git -b p9.0-x86 -``` - -`-b` is for the branch, and we’re on `p9.0-x86`, Android Pie. It’ll take a couple of seconds. You may need to type `y` for the color prompt. - -Sync repo : - -```text -repo sync -j24 -c --no-tags --no-clone-bundle -``` - -Problems syncing? : - -```text -repo sync -j4 -c --no-tags --no-clone-bundle --force-sync -``` - -`-j` is for threads. Typically, your CPU core count is your thread count, unless you’re using an older Intel CPU with hyperthreading. In that case, the thread count is double the count of your CPU cores. Newer CPUs have dropped hyperthreading unless you have the i9, so check how many threads you have. If you have four threads, you would run: - -```text -repo sync -j4 -c -``` - -`-c` is for pulling in only the current branch, instead of the entire history. This is useful if you need the downloads fast and don’t want the entire history to be downloaded. This is used by default unless specified otherwise. - -`repo` will start downloading all the code. That’s going to be slow, even on a fiber network. Expect downloads to take more than a couple hours. - -{% hint style="info" %} -To find out how many CPU threads you have, run `nproc`. -{% endhint %} - -## Easy build instructions - -This will build an x86 based .ISO for PCs. - -Usage: `$ bash build-x86.sh options buildVariants blissBranch extraOptions` Options: - -```text --c | --clean : Does make clean && make clobber and resets the efi device tree --s | --sync: Repo syncs the rom (clears out patches), then reapplies patches to needed repos --p | --patch: Just applies patches to needed repos --r | --proprietary: build needed items from proprietary vendor (non-public) -``` - -BuildVariants: - -```text -android_x86-user : Make user build -android_x86-userdebug |: Make userdebug build -android_x86-eng : Make eng build -android_x86_64-user : Make user build -android_x86_64-userdebug |: Make userdebug build -android_x86_64-eng : Make eng build -``` - -BlissBranch: - -```text -select which bliss branch to sync, default is p9.0 -``` - -ExtraOptions: - -```text -foss : packages microG & FDroid with the build -go : packages Gapps Go with the build -gapps : packages OpenGapps with the build -gms : packages GMS with the build (requires private repo access) -none : force all extraOption flags to false. -``` - -To start, you must first use the -s \(--sync\) flag, then on following builds, it is not needed. Initial generation of the proprietary files from ChromeOS are also needed on the first build. We are able to use the -r \(--proprietary\) flag for that. **This step needs to be on its own because the mounting process requires root permissions, so keep a look out for it asking for your root password**. - -First you must sync with the new manifest changes: - -```text -bash build-x86.sh -p -``` - -This will do initial patching. Some of the patches will show as `already applied` or `conflict`. This is normal behavior and will not effect the build process if you continue to the next step without addressing any of the conflicts. - -**The only times you should worry about the conflicts is when you are adding or changing patches in `vendor/x86`**. - -Next step is to download the proprietary files from ChromeOS: - -```text -mkdir vendor/bliss_priv/proprietary -mkdir vendor/bliss_priv/source -bash build-x86.sh -r android_x86_64-userdebug -``` - -After that, you can build your release file: - -```text -bash build-x86.sh android_x86_64-userdebug (to build the userdebug version for x86_64 CPUs) -``` - -## Advanced build instructions - -Set up the build environment: - -```text -. build/envsetup.sh -``` - -This is the initialization file we talked about earlier up top. This "initializes" the environment, and imports a bunch of useful build commands required to build your device. Again, you need to remember to `source` this file every time you log out and log back in, or launch a new `bash`/Terminal instance. - -Define what device you’re going to build. For example, the Nexus 5X, has a codename of `bullhead`. You can check your specific device's codename on GitHub or on Google. Execute: - -For 32 bit devices: - -```text -lunch android_x86-userdebug -``` - -For 64 bit devices: - -```text -lunch android_x86_64-userdebug -``` - -Let's break down the command. `lunch` initializes the proper environmental variables required for the build tools to build your specific device. Things like `BLISS_DEVICE` and other variables are set in this stage, and the changed variables will be shown as output. `x86` or `x86_64` is the specific device we are building. Finally, `userdebug` means that we will build a user-debuggable variant. This is usually what most ROMs use for publishing their builds. Manufacturers typically use `user` which disables most of the useful Android Logcats. - -### My device isn't booting, and `userdebug` won't print any `adb logcat`s. What gives? - -There is a third build variant called `eng`, short for engineering builds. These builds will activate `adb logcat` during boot, and will show you exactly what is going wrong, where, and why. However, these builds are **NOT** recommended for normal usage as they are not securely hardened, have log spam that will slow down your device, and other unexpected problems like userspace utilities crashing during runtime. If you want to submit your device for mainline, do **NOT** submit an `eng` build! - -If this is the first time you're running the build, you're going to want to run the proprietary build command first from the easy build instructions. Alternatively, you could also run those commands manually. - -```text -mkdir vendor/bliss_priv/proprietary && mkdir vendor/bliss_priv/source -``` - -Then: - -```text -lunch android_x86_64-userdebug -mka update_engine_applier -mka proprietary -``` - -After that is complete, we can start the main building process. Run: - -`mka iso_img` - -And the build should start. The build process will take a long time. Prepare to wait a few hours, even on a decent machine. - -### Why `mka` and not `make`? - -`make` only runs with 1 thread. `mka` is properly aliased to use all of your threads by checking `nproc`. - -If you want to customize your thread count \(maybe you're building with a fan-screaming laptop in a quiet coffee shop\), use `make -j#`, replacing the hash with the number of threads \(example of `make -j4`\). - -## After building - -There are two outcomes to a build - either it fails and you get a red error message from `make`, or it succeeds and you see the Bliss logo in ASCII. If you encounter the former, you need to go back and fix whatever it's complaining about. Typically, 90% of the time the problem will be in your device tree. For the other 10%, submit a bug report to the ROM developers. Be sure to include the full log of your build to help diagnose the problem, and your device tree. - -If you face the latter, congratulations! You've successfully built Bliss ROM for your device. Grab the artifacts for your device: - -```text -cd out/target/product/x86_64/ -``` - -In here, you’ll find an `.iso` that goes along the lines of `Bliss-v11.9--OFFICIAL-20190801-1619_x86_64_k-k4.9.153_m-18.3.5-pie-x86-llvm80_f-dev-kernel.org.iso`. - -## Changing the target kernel branch - -Sometimes, you might be working on a device that requires a different kernel branch. In order to switch kernels effectively on Bliss OS, they need to be compiled with the OS at build time. - -### Switching the kernel branch - -Start off by entering the kernel folder - -```text -cd kernel -``` - -Then pull all the available kernel branched from your target repo. In this case, we are using the default `BR-x86` repo - -```text -git fetch BR-x86 -``` - -Then after that is finished, we need to checkout our target branch, and in this example we are choosing our `k4.19.50-ax86-ga` branch, which has added commits from the GalliumOS project for Chromebooks - -```text -git checkout BR-x86/k4.19.50-ax86-ga -``` - -Next step is to clean out any configs or generated files from the previously checked out kernel. To do this, run these commands - -```text -make clean -make mrproper -``` - -Once that is done, we can `cd` back to our main project folder - -```text -cd .. -``` - -And run our build command again to generate the `.iso` with the target kernel we selected - -```text -rm -rf out/target/product/x86_64/kernel -mka iso_img -``` - -## Using the patch system for testing - -We use a patching method we adapted for Bliss from Intel's Project Celadon & phh-treble. This patching system allows us to bring in a good number of commits to add to the OS, and test how they apply or if there are any conflicts. - -Our intention was to make a system that can add all the needed x86/x86\_64 commits to Bliss ROM, as well as other ROMs too. - -The majority of this system is found in `vendor/x86/utils`. - -From here, you simply generate the `.patch` files from your additions, and add them to the mix. In the following example, we are going to generate patches from `packages/apps/Settings` and add them to the proper folder for live testing. - -From your Project folder: - -```text -cd packages/apps/Settings -``` - -And generate your `.patch` files. For this example, we've added four commits on top of what was there after sync - -```text -git format-patch -4 -``` - -Then copy those files to the proper folder in `vendor/x86`. In this case, you will find it here: - -```text -vendor/x86/utils/android_p/google_diff/x86 -``` - -After that is complete, you can `make clean` and run the patch system from your main project folder. - -```text -make clean -bash build-x86.sh -p -``` - -This should start patching all the source files. Once that is complete, you can rebuild. - -## Troubleshooting - -If your build failed, there are a couple things you can try. - -* Try a fresh `repo sync` to make your repository up to date. Sometimes, the Internet connection between you and GitHub can be flaky. In rare cases a commit merge might be ongoing, and you might've grabbed an incomplete merge. Mostly, this should fix the issue 70% of the time. -* Make sure your dependencies are installed correctly. Error messages help out a lot here! Often it will say `shared/linked library not found` or something along those lines. -* Make sure you sourced `build/envsetup.sh`. This is especially common and worth suspecting if none of the build commands like `breakfast` and `lunch` work. If you have `repo sync`ed do this again. -* Make sure you’re at the root of the build tree. Again, to quickly jump there, use `croot`. -* Make sure your computer itself isn’t faulty. HDDs usually die first, followed by RAM. SSDs rarely die but failure is not unheard of. In extremely rare cases, your CPU may have a defect. If you're unsure, run a stress test using a program like Prime95. - -If something goes wrong and you've tried everything above, first use Google to look up your error! Most of the errors you encounter is due to misconfiguration and wrong commands entered. More often than not, Google will have the answer you are looking for. If you're still stuck and nothing fixes the problem, then ask us via our Telegram Build Support chat. - -## Conclusion - -Building a ROM is very hard and tedious and the results are very rewarding! If you managed to follow along, congratulations! - -After you finish building, you can try out the Git Started guide. Make changes, commit, and send them off to our GitHub for Bliss OS repos & our Gerrit for review on Bliss ROM repos! Or better yet, download experimental commits not ready for the mainline repositories and review them! Again, ROM building is a fun project you can work with. I hope this guide was a lot of fun to run through! - diff --git a/development/build-bliss-os-14.x.md b/development/build-bliss-os-14.x.md deleted file mode 100644 index 191486b1..00000000 --- a/development/build-bliss-os-14.x.md +++ /dev/null @@ -1,176 +0,0 @@ -# Build Bliss OS (v14.x) - -![](https://i.imgur.com/pOad4eK.png) - -## Starting Off - -{% hint style="info" %} -We also offer [Android-Generic Project 2.0](https://github.com/android-generic/vendor_ag) as an easy to learn method of building Android 11 for PC's. Checkout the project README.md for more info. -{% endhint %} - -Download the BlissRoms source code, based on [AOSP](https://android.googlesource.com), [phhusson](https://github.com/phhusson/treble_manifest) & [BlissRoms](https://github.com/BlissRoms/platform_manifest) - -Please read the [AOSP building instructions](http://source.android.com/source/index.html) before proceeding. - -## What you need to build [BlissOS](https://github.com/BlissRoms-x86/manifest) - -```text -Latest Ubuntu LTS Releases https://www.ubuntu.com/download/server -Decent CPU (Dual Core or better for a faster performance) -8GB RAM (16GB for Virtual Machine) -250GB Hard Drive (about 170GB for the Repo and then building space needed) -``` - -Installing Java 8 - -```text -sudo add-apt-repository ppa:openjdk/ppa -sudo apt-get update && upgrade -sudo apt-get install openjdk-8-jdk -update-alternatives --config java (make sure Java 8 is selected) -update-alternatives --config javac (make sure Java 8 is selected) -reboot -``` - -## Grabbing Dependencies - -```text -$ sudo apt-get install git-core git-lfs gnupg flex bison maven gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip squashfs-tools python-mako libssl-dev ninja-build lunzip syslinux syslinux-utils gettext genisoimage gettext bc xorriso libncurses5 xmlstarlet build-essential git imagemagick lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libxml2 lzop pngcrush rsync schedtool python-enum34 python3-mako libelf-dev aapt zstd rdfind nasm rustc bindgen -``` - -If you plan on building the kernel with the NO\_KERNEL\_CROSS\_COMPILE flag, you will need to also have gcc-10+ installed: - -```text -$ sudo apt-get install gcc-10 g++-10 -``` - -## Initializing Repository - -Repo initialization : - -```text -## Releases Repo ## -repo init -u https://github.com/BlissRoms-x86/manifest.git -b r11-x86 --git-lfs -``` - -sync repo : - -```text -$ repo sync -c --force-sync --no-tags --no-clone-bundle -j$(nproc --all) --optimized-fetch --prune -``` - -## Options - -```text -BLISS_BUILD_VARIANT - (vanilla, opengapps, foss) - We currently use this to specify what type of extra apps and services to iunclude in the build. -``` -Note: Default BLISS_BUILD_VARIANT is VANILLA. -``` -BLISS_SPECIAL_VARIANT - This can be custom set if you wanna build a version for a specific device -for example -jupiter for Steam Deck or -surface for Microsoft Surface series - -``` -BLISS_SPECIAL_VARIANT - This can be custom set if you wanna build a version for a specific device -for example -jupiter for Steam Deck or -surface for Microsoft Surface series -``` - -## Building - -```text -$ . build/envsetup.sh -$ export NO_KERNEL_CROSS_COMPILE=true -$ export BLISS_BUILD_VARIANT=foss -$ lunch bliss_x86_64-userdebug && make blissify iso_img -j23 -``` - -## Setup FOSS apps or OpenGapps ----------------------------- - -- If you want to build with FOSS (this will include microG Services & some extra apps), go to vendor/foss and then type -``` - ./update.sh -``` -And then choose 1 (x86/x86_64) to fetch all the apps. If you want to include Bromite Webview in, type this instead -``` - ./update.sh "" bromite -``` - -- If you want to build with OpenGapps, first make sure to get `git-lfs` (already listed in above). Once you got `git-lfs`, type this -``` - repo forall -c git lfs pull -``` -To fetch the packages. - -## Building --------- - $ . build/envsetup.sh - $ lunch bliss_x86_64-userdebug - $ make iso_img - -***Adding build options*** - -Before running `make iso_img`, you can adding variables into the build to integrate more stuff into the image. -Note that you can put different variables into the build. - -- **To build with FOSS** -``` - export BLISS_BUILD_VARIANT=foss -``` - -- **To build with OpenGapps** -``` - export BLISS_BUILD_VARIANT=opengapps -``` - -- **To build with proprietary libhoudini extracted from WSA** -``` - export ANDROID_USE_INTEL_HOUDINI=true -``` - -- **To add a custom label into a device-specific build** -``` - export BLISS_SPECIAL_VARIANT=-Jupiter -``` - -- **To build the special "surface" variant which include kernel with patches from linux-surface and the iptsd userspace touchscreen daemon** -``` - export BOARD_IS_SURFACE_BUILD=true -``` - -- **To build the special "go" variant for BlissOS Go** -``` - export BOARD_IS_GO_BUILD=true -``` - - -**More build options will be in Extras part including proprietary native-bridge/widevine libraries** - -## Extras -------- - -We do offer some extra libraries that can be compiled into the build. These include : - -***ChromeOS's libhoudini/Widevine DRM L3*** - -https://github.com/supremegamers/android_vendor_google_chromeos-x86 - -Clone to `vendor/google/chromeos-x86`, go to the folder and open terminal -`./extract-files.sh` - -The variable to activate this is `USE_CROS_HOUDINI_NB=true` for libhoudini and `USE_WIDEVINE=true` for Widevine. - -***Prebuilt Widevine from Windows Subsystem for Android*** - -https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt - -Clone to `vendor/google/proprietary/widevine-prebuilt`, The variable to activate this is `USE_WIDEVINE=true` - -***Windows Subsystem for Android's libhoudini*** - -https://github.com/supremegamers/vendor_intel_proprietary_houdini - -Clone to `vendor/intel/proprietary/houdini`, The variable to activate this is `ANDROID_USE_INTEL_HOUDINI=true` - -## Report build issues -- You can reach us via [Telegram (Android™-Generic (x86 PC) Community Development)](https://t.me/androidgenericpc) - diff --git a/development/build-bliss-os-15.x.md b/development/build-bliss-os-15.x.md deleted file mode 100644 index ab8b498e..00000000 --- a/development/build-bliss-os-15.x.md +++ /dev/null @@ -1,130 +0,0 @@ - -

-Website | -Download | -Donate | -Documentation | -Telegram - -## BlissOS - -Download the BlissOS source code, based on [AOSP](https://android.googlesource.com) & [Android-x86](http://android-x86.org/) - -

-Modified for PC build using Android-Generic Project -
- -
-
- ---------------------------------------------------- - -Please read the [AOSP building instructions](http://source.android.com/source/index.html) before proceeding. - ------------------------ -## What you need to build [BlissOS](https://github.com/BlissRoms-x86/manifest) - - - Latest Ubuntu LTS Releases https://www.ubuntu.com/download/server - Decent CPU (16 Cores or better for a faster performance) - 16GB RAM (32GB for Virtual Machine) - 350GB Hard Drive (about 170GB for the Repo and then building space needed) - - Time to compile: - Laptop: 6-8 hours - Desktop/Workstation: 4-6 hours - Server: 1-2 hours - ------------------------ - -## Grabbing Dependencies - - sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip squashfs-tools python3-mako libssl-dev ninja-build lunzip syslinux syslinux-utils gettext genisoimage gettext bc xorriso xmlstarlet meson glslang-tools git-lfs libncurses5 libncurses5:i386 libelf-dev aapt zstd rdfind nasm rustc bindgen - -## Initializing Repository - -**Repo initialization** - - repo init -u https://github.com/BlissRoms-x86/manifest.git -b arcadia-x86 --git-lfs - -**Sync repo** - - repo sync -c --force-sync --no-tags --no-clone-bundle -j$(nproc --all) --optimized-fetch --prune - -## Options - - BLISS_BUILD_VARIANT - (vanilla, gapps, foss) - We currently use this to specify what type of extra apps and services to include in the build. -***Note: Default BLISS_BUILD_VARIANT is VANILLA.*** - - BLISS_SPECIAL_VARIANT - This can be custom set if you wanna build a version for a specific device - for example `-jupiter` for Steam Deck or `-surface` for Microsoft Surface series - -## Setup FOSS apps (if you choose to build FOSS) ----------------------------- - -- If you want to build with FOSS (this will include microG Services & some extra apps), go to vendor/foss and then type -``` - ./update.sh -``` -And then choose 1 (x86/x86_64) to fetch all the apps. If you want to include Bromite Webview in, type this instead -``` - ./update.sh "" bromite -``` -## Building - - $ . build/envsetup.sh - $ export BLISS_BUILD_VARIANT=foss - $ lunch bliss_x86_64-userdebug - $ make blissify iso_img -j23 - -***Adding build options*** - -Before running `lunch`, you can add variables into the build to integrate more stuff into the image. -Note that you can put different variables into the build. - -- **To build with FOSS** -``` - export BLISS_BUILD_VARIANT=foss -``` - -- **To build with [MindTheGapps](https://gitlab.com/MindTheGapps/vendor_gapps)** -``` - export BLISS_BUILD_VARIANT=gapps -``` -- **To add a custom label into a device-specific build** -``` - export BLISS_SPECIAL_VARIANT=-Jupiter -``` - -- **To build the special "surface" variant which include kernel with patches from linux-surface and the iptsd userspace touchscreen daemon** -``` - export BOARD_IS_SURFACE_BUILD=true -``` - -- **To build the special "go" variant for BlissOS Go** -``` - export BOARD_IS_GO_BUILD=true -``` - - -**More build options will be in Extras part including proprietary native-bridge/widevine libraries** - -## Extras -------- - -We do offer some extra libraries that can be compiled into the build. These include : - -***Prebuilt Widevine from Windows Subsystem for Android*** - -https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt - -Clone to `vendor/google/proprietary/widevine-prebuilt`, The variable to activate this is `USE_WIDEVINE=true` - -***Windows Subsystem for Android's libhoudini*** - -https://github.com/supremegamers/vendor_intel_proprietary_houdini - -Clone to `vendor/intel/proprietary/houdini`, The variable to activate this is `ANDROID_USE_INTEL_HOUDINI=true` -## Report build issues -- You can reach us via [Telegram (Android™-Generic (x86 PC) Community Development)](https://t.me/androidgenericpc) - diff --git a/development/building-bass.md b/development/building-bass.md new file mode 100644 index 00000000..5b72614c --- /dev/null +++ b/development/building-bass.md @@ -0,0 +1,214 @@ +# Bass OS - Android 12L + +[![License](https://img.shields.io/badge/license-GPL-blue)](https://opensource.org/licenses/gpl-3-0/) + +Please refer to https://bliss-bass.blisscolabs.dev for release notes, hardware requirements and demos of the various options. + +## Licensing + +Much of Bass OS is published under the General Public License 3.0. All generic patches are regularly submitted to [Bliss OS](https://github.com/BlissRoms-x86) where they can be obtained under the Apache License. + +Bass OS does have a number of options, features, applications, etc. that can be accessed through purchasing licensing for the private addons, features and tools. [See our licensing page](https://bliss-bass.blisscolabs.dev/licensing.html) for full details + +## Warning! + +Bass OS is an open-source initiative maintained by Bliss Co-Labs. It is provided "as is" without any warranties or guarantees. + +## Building from sources + +Before building, ensure your system has at least 16 CPU cores, 32GB of RAM, a swap file is at least 16GB, and 500GB-700GB of free disk space available. + +### Install system packages +(Ubuntu 22.04 LTS is only supported. Building on other distributions can be done using docker) +
+ +- [Install AOSP required packages](https://source.android.com/setup/build/initializing). +```bash +sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip squashfs-tools python3-mako libssl-dev ninja-build lunzip syslinux syslinux-utils gettext genisoimage gettext bc xorriso xmlstarlet meson glslang-tools git-lfs libncurses5 libncurses5:i386 libelf-dev aapt zstd rdfind nasm rustc bindgen +``` + +
+ +- Install additional packages +```bash +sudo apt-get install -y swig device-tree-compiler mtools libgmp-dev libmpc-dev cpio rsync dosfstools kmod gdisk lz4 cmake libglib2.0-dev +``` + +
+ +- Install additional packages (for building mesa3d, libcamera, and other meson-based components) +```bash +sudo apt-get install -y python3-pip pkg-config python3-dev ninja-build +sudo pip3 install mako jinja2 ply pyyaml pyelftools +``` + +- Install the `repo` tool +```bash +sudo apt-get install -y python-is-python3 wget +wget -P ~/bin http://commondatastorage.googleapis.com/git-repo-downloads/repo +chmod a+x ~/bin/repo +``` + +### Fetching the sources and building the project + +```bash +git clone --recurse-submodules https://github.com/Bliss-Bass/bass-os.git bass-os-12.1 +cd bass-os-12.1 +``` + +### Setting up Bass OS Source + +#####!!NOTICE FOR LICENSED ADDONS/FEATURES!! +If you hold an active license for any of the private addons and features for Bass OS, you will need to add the files that you were sent or given acces to, into the `private/addons` or `private/manifests` folder. If your project requires any vendor patches, those are placed in the `patches-vendor/` folder. Once all items are placed properly, you can continue onto the unfolding steps. Please also check your organizations Bass-OS project folder to make sure it didn't come with those additions already added. + +#### Unfolding the source + +Bass source uses an unfolding sequence to grab the latest stable point in development for the source, then applies any required changes on top, along with any customizations, licensed addons, modules, etc. + +To start the unfolding process, we use the unfold_bliss.sh script: + +```bash +bash unfold_bliss.sh +``` + +This will sync the source, and patch it with the latest available updates for Bass OS. Once complete and all patches, and addons are applied successfully, you can move onto the next step. + +### Building Bass OS + +#### Build Options: + +##### Target Specific build scripts: + +(**!!NOTICE FOR LICENSED CUSTOMERS!!**) If you have been supplied with the source, then chances are your source comes with a separate build script specific to your devices needs. Please check the project folder for a script with your product name or invoice number in it. Examples: `build_ABC01.0.1.sh` or `build_Intel-AC013.sh`. These will include the specific set of arguments passed to the build_bass script, so all you will need to do is run your targeted script to build. + +``` +bash build_ABC01.0.1.sh +``` + +##### General Build Script Usage: + +We offer a number of options to configure your builds with. You can use the `-h` argument to see the latest integrations available. +We also symlink the build-x86 command with `build_bass.sh` and `build-x86.sh`, so the commands both act the same when building Bass OS + +Example: + +```bash +bash build_bass.sh -h +Usage: build-x86.sh [options] +Options: +-h, --help Display this help dialog +-c, --clean Clean the project +-d, --dirty Run in dirty mode +-t, --title (title) Set the release title +-b, --blissbuildvariant (variant) Set the Bliss build variant +-i, --isgo Enable isgo version +-v, --specialvariant (variant) Set the special variant +--grubcmdline "option1=1 option2=1" Set the grub cmdline options +--production Disable Test Build watermark and sign builds (requires release/product signature keys) + +Launcher Options: +--clearhotseat Enable clear hotseat favorites for Launcher3 Quickstep +--disablesearch Disable device search +-s, --smartdock Enable smartdock +--smartdockb Enable smartdock with Bliss customizations +-k, --kiosk Enable kiosk launcher **requires private git access** +--restrictedlauncher Enable restricted launcher +--restrictedlauncherpro Enable restricted launcher pro **requires private git access** +--garliclauncher Enable garlic launcher +--gamemodelauncher Enable game mode launcher +--crosslauncher Enable cross launcher +--tvlauncher Enable tv launcher +--titaniuslauncher Enable titanius launcher +--desktoponsecondary Enable desktop on secondary displays + +Navigation Options: +-t, --tabletnav Enable tablet navigation +--taskbarnav Enable taskbar navigation +--gesturenav Enable gesture navigation +--externalnav Enable navigation on external displays +--rightmouseasback Enable right mouse button as back + +Package Options: +--noksu Disable KernelSU +-f, --fossapps Enable fossapps +--minfossapps Enable minimal fossapps +-e, --supervanilla Enable supervanilla +-m, --minimal Enable minimal packages +-r, --removeusertools Enable removeusertools +--viabrowser Enable viabrowser +-w, --wiz Enable Bliss setupwizard +--ethernetmanager Enable EthernetManager +--powermanager Enable power manager +--buildextra Build extra packages +--updatefossapps Update fossapps +--usepos Enable TabShop pos terminal app + +Input Options: +--showkeyboard Enable show keyboard +--perdisplayfocus Enable per display focus +--gboard Enable Google GBoard IME +--gboardlite Enable Google GBoard Lite IME +--perdisplayfocusime Enable per display focus with experiment IME +--perdisplayfocuszqyime Enable per display focus with ZQY IME + +Firmware & Driver Options: +--sof Include SOF firmware +--silead Include Silead firmware + +Other Options: +-a, --atom Include Intel Atom specific configurations +-l, --lockdown Enable secure lockdown build +--adblockdown Enable lockdown ADB defaults +-m, --manifest Generate manifest +--alwaysonsettings Enable always on settings +--nolarge Disable large screen settings + +``` + +### Features: + + - Supports various navigation & UI switches + - Supports various use-case launcher options (requires recent changes to vendor/agp-apps) + - Automatically updates Grub menus and other build configs for launcher and mode options (requires recent changes to vendor/agp-apps) + +Please note that some of the build options may require licensed access to the feature/addon/application in order to use it. In some cases, the build will continue with just a warning when these options are used. In other cases, the build will exit. To remedy this, use a different option or remove the offending option from the build command. + +### Examples + +Here are a few examples to help in understanding: + +**Bass Desktop**: Desktop mode demo of Bass featuring SmartDock + + bash build_bass.sh --clean --title "Bass" --blissbuildvariant vanilla --specialvariant "-Desktop" --ethernetmanager --tabletnav --smartdock --wiz --clearhotseat --perdisplayfocus --externalnav --externalstatusbar --nolarge --sof --silead --alwaysonsettings --minfossapps + +**Bass Restricted**: Restricted mode demo of Bass featuring Bliss Restricted Launcher + + bash build_bass.sh --clean --title "Bass" --blissbuildvariant foss --specialvariant "-Restricted" --restrictedlauncher --ethernetmanager --fossapps --gesturenav --clearhotseat --externalnav --noksu --showkeyboard --nolarge --alwaysonsettings --sof --silead + +**Bass POS**: Point-Of-Sale version of Bass featuring TabShop + + bash build_bass.sh --clean --title "Bass" --blissbuildvariant foss --specialvariant "-POS" --restrictedlauncher --usepos --ethernetmanager --fossapps --gesturenav --clearhotseat --externalnav --noksu --showkeyboard --nolarge --alwaysonsettings --supervanilla --minimal + +**Bass Tablet Go**: Android Go based Tablet version of Bass OS + + bash build_bass.sh --clean --title "Bass" --blissbuildvariant foss --specialvariant "-TabletGo" --isgo --ethernetmanager --fossapps --tabletnav --wiz --clearhotseat --perdisplayfocus --externalnav --externalstatusbar --noksu --showkeyboard --perdisplayfocus --nolarge + +### Vendor Customization Layer + +If you have licensed access to the vendor customization layer for Bass OS, it comes with an easy to use menu driven interface for rebranding the OS. +Below are a few combinations of the various command options put together in the form of Collections. + +#### Features available + +- Menu driven interface for updating assets and branding: + ![Bass - Customization menu](assets/bass-customization.png) + - Generates default wallpaper overlays + - Generates branded bootanimation based on a single loop of frames + - Generates branded grub background + +### Notes + +- Depending on your hardware and internet connection, downloading and building may take 8h or more. +- After the successful build, find the images at `iso/` under the folder name based on your build name generated by the build system and can also be found in `aosptree/out/target/product/x86_64/`. + + diff --git a/development/contributing-documentation.md b/development/contributing-documentation.md index 9c4a89ac..4dc5bbd4 100644 --- a/development/contributing-documentation.md +++ b/development/contributing-documentation.md @@ -1,22 +1,58 @@ -# Contributing Documentation +# Contributing to Bass OS -We are wide open to users submitting their documentation updates to our docs.blissroms.com site. Our repos for the docs site are here: +We are not going to require any elitist rules for you to contribute to the project. That's just silly. So this doc will cover the various parts of the project and explain how to do things. -**Documentation:** +## General Development -{% embed url="https://github.com/BlissRoms-x86/docs" %} +This project contains many scripts and tools that help aid the support, feature selection, and option customization for Bass OS. Most of those scripts use bash and can also interface with the easy-menu-system we include. -**Knowledgebase:** +## Addon Development -{% embed url="https://github.com/BlissRoms-x86/knowledgebase" %} +We can start with addon development as that will give you a good concept of how things are put together. -**Support Site:** +Let's say that you have a change that you want to add to Bass OS, but that change can be used on many devices, so you don't want to keep it as a private change that is never shared outside this single devices source. This is where Addons come into play. -{% embed url="https://github.com/BlissRoms-x86/support" %} +Addons can consist of one or more of the following: +* Patchsets - Single or multiple sets of patches that are to be applied on-top of the source when unfolding the OS. +* Prebuilt APK's - An example of this is the Restricted Launcher Pro. We offer the free version of the prebuilt for all to include, but it contains branding that cannot be changed. But we offer the Pro version that can be rebranded and further customized as an addon. +* Package/External Sources - An example of this is our Kiosk Launcher, as that requires the private source to be included in the OS in order to use it. +* Script Addon - An automation script that does something or helps automate any point in the build process. +### Patchset Addon Development +The first example we will go over is for a patchsett based addon. For this, you will use a patches folder with a name following the addon_name. Along with a manifest .xml that links your addon as a .git. This will allow you to have a private repo as an addon and control access to it if needed. +#### Example patchset addon + +We have an example patchset addon for a change that can be found in `/bigblissdrive03/bass-wg01/assets/examples/addon_templates/patchsets-network_options`. Take a look at the README.md for that to get a good idea of the info we include as a starting point. + +#### Where things go + +When syncing the Bass OS project, you will want to place the patchset addon folder (`patchsets-addon_name`) in the `private/addons/` folder. This location will be searched when the project is unfolded, and any manifest file found will be synced in the unfolding process. After sync is complete, any patches that are required for the addon will be automatically applied. + +##### Manifest + +The manifest file should point to the path: `vendor/bass/patches/patchsets-addon_name`. You should also name the manifest file the unique name of your addon. The remote name defined within the manifest .xml should also be unique to your addon. + +##### Patchset + +The patchset should be organized in multiple folders within the `addon_name` folder of your addon. + +Example: +- patchsets_addon_name +- README.md + - manifest + - private-addon_name.xml + - addon_name + - device + - generic + - common + - 0001-change_name-1-of-3.patch + - bootable + - newinstaller + - 0001-change_name-2-of-3.patch + - recovery + - 0001-change_name-3-of-3.patch -Feel free to submit a pull request of your work and we'd be happy to include it 😊 diff --git a/development/gui-method-build-bliss-os-14.x.md b/development/gui-method-build-bliss-os-14.x.md deleted file mode 100644 index ac045829..00000000 --- a/development/gui-method-build-bliss-os-14.x.md +++ /dev/null @@ -1,139 +0,0 @@ -# \[GUI Method\] Build Bliss OS 14.x - -## **1. Setting up the environment** - -This first part will go over the steps needed to sync and setup your Build Environment for Bliss OS 14.3 source. If you have done that already, you can skip to the next section. -Setting up your build environment can also be done the easy way , and for that, we can use EZ-AOSP. For Ubuntu, use [MikeCrigs' repo](https://github.com/mikecriggs/ez-aosp), or for MX-Linux, use [My repo](https://github.com/electrikjesus/ez-aosp), and continue at “Grabbing the Source” when done. Otherwise, we have the manual steps below. - -**System Requirements** - -```text -Latest Ubuntu LTS Releases https://www.ubuntu.com/download/server -Decent CPU (Dual Core or better for a faster performance) -8GB RAM (16GB for Virtual Machine) -250GB Hard Drive (about 170GB for the Repo and then building space needed) -``` - -**Installing Java 8** - -```text -sudo apt-get update && upgrade -sudo apt-get install openjdk-8-jdk-headless -update-alternatives --config java (make sure Java 8 is selected) -update-alternatives --config javac (make sure Java 8 is selected) -``` - -**Grabbing Dependencies** - -```text -sudo apt-get install git-core gnupg flex bison maven gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip squashfs-tools python-mako libssl-dev ninja-build lunzip syslinux syslinux-utils gettext genisoimage gettext bc xorriso libncurses5 xmlstarlet build-essential git imagemagick lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libxml2 lzop pngcrush rsync schedtool python-enum34 python3-mako libelf-dev -``` - -If you plan on building the kernel with the NO\_KERNEL\_CROSS\_COMPILE flag, you will need to also have gcc-10+ installed: - -```text -sudo apt-get install gcc-10 g++-10 -``` - -**Setting up your credentials** - -The first thing you should do when you install Git is to set your user name and email address. This is important because every Git commit uses this information, and it’s immutably baked into the commits you start creating: - -```text -$ git config --global user.name "John Doe" -$ git config --global user.email johndoe@example.com -``` - -**Grabbing the Source** - -\(This is where EZ-AOSP leaves off\) - -We will need to create a folder for our project, then init the manifest, and sync the repo, and we do all that in a few simple terminal instructions: - -```text -mkdir blissos-r36 -cd blissos-r36 -repo init -u https://github.com/BlissRoms-x86/manifest.git -b r11-r36 -repo sync -c --force-sync --no-tags --no-clone-bundle -j$(nproc --all) --optimized-fetch --prune -``` - -Although we are doing our best to help you learn, it never hurts to become a bit more versed in building AOSP. so be sure to also check out: [AOSP building instructions](http://source.android.com/source/index.html) - -## **2. How to include Android-Generic Project into your Project:** - -Now all we have to do is clone AGP into the vendor folder. - -```text -git clone https://github.com/android-generic/vendor_ag-archive vendor/ag -``` - -## **3. Using AGP with Bliss OS** - -Now that AGP is cloned into the project, we start it up like so: - -```text -. build/envsetup.sh - ag-menu pc -``` - -That's it! It will initially generate the menu items with what is available for modules on initial launch - -Since Bliss OS is already setup as a project, we don’t really need to use any of the other “Project Setup” options \(01-06\), and we will normally go straight to option **10-build-options**. Double click on that. - -This will launch the main build menu, which contains all the options related to the build commands. From here, things pretty much match the main AGP instructions. Here’s a quick rundown of what they all do from here: - -## **Build Options** - -_\(This segment uses content from Android-Generic Project documentation. Please refer to that for further details:_ [_https://android-generic-project.gitbook.io/documentation/android-generic-project-using-with-bliss-os-source_](https://android-generic-project.gitbook.io/documentation/android-generic-project-using-with-bliss-os-source)_\)_ -****This menu will show the various build options for compiling your project through AG. - -* **Select Product Type** Selecting this will ask you what device type you plan on targeting \(PC: android\_x86 / android\_x86\_64\) -* **Select Variant Type** - - Selecting this will ask you what build variant type you plan on targeting \(user, userdebug, eng\) - -* **Select Apps Type** - - Selecting this will present the options for included Apps type - - **FOSS** - Free & Open Source apps from Aurora Droid & Aurora Store \(and microG client\) \(x86/x86\_64/arm64\) - **GMS** - not implemented by default - **EMU-Gapps** - Proprietary gapps extracted from Google's Emulator images. \(x86\_64 only\) - **Vanilla** - No added apps or services - -* **Select Native-Bridge Type** - - Selecting this will present the options for Native-Bridge. - - **None** - No changes to Native Bridge aside from what Android-x86 includes by default - **Intel's Houdini** - Will pull the latest supported ChromeOS recovery image, and extract the Houdini & Widevine files from that and include in your build. - **Google's libndk-translation** - Will need manual setup of vendor/google/emu-x86 before using. Follow readme from that project \(we were unable to reproduce results of extracting super.img automatically\) - -* **Select Make Type** - - Selecting this option will allow you to choose what kind of final image you would like. - - **Standard .iso Image** - generic .iso for MBR/EFI - **EFI .img file** - Builds .iso for using in EFI devices - **RPM Linux Installer** - Compiles as an .rpm installer for linux based systems and will install in a folder on the linux drive. - -* **Select Extra Options** - - This will contain only options that can be interchangeable \(affected with only an export or build environment variable\) - - **Make Clean Before Build** - Will add "make clean" to your build command and have it run every time you start the build. - **No Kernel Cross-Compile** - Will add the override for NO\_KERNEL\_CROSS\_COMPILE and allow you to build the kernel using GCC 10/11 from your installed system instead of using AOSP or your ROM's GCC - -* Run Make Clean - - Selecting this will immediately run the "make clean" command on your project. Clearing the PRODUCT\_OUT folder - -* Enable Rusty-Magisk - - Based on what Product you selected prior to selecting this option, the script will compile the resources needed to include Rusty-Magisk into your build - -* Start The Build - - This command is dependent on all previous options and will also save/reload your last used build command \(all the options selected in this section above\), then run the build command in the terminal. - From this point forward, any errors will need to be resolved manually. - diff --git a/knowledgebase/bliss-bass/features/admin-restriction.md b/features/admin-restriction.md similarity index 100% rename from knowledgebase/bliss-bass/features/admin-restriction.md rename to features/admin-restriction.md diff --git a/knowledgebase/bliss-bass/features/dns-internet-restriction.md b/features/dns-internet-restriction.md similarity index 100% rename from knowledgebase/bliss-bass/features/dns-internet-restriction.md rename to features/dns-internet-restriction.md diff --git a/knowledgebase/bliss-bass/features/updates-and-ota.md b/features/updates-and-ota.md similarity index 100% rename from knowledgebase/bliss-bass/features/updates-and-ota.md rename to features/updates-and-ota.md diff --git a/knowledgebase/bliss-bass/interfaces/power-management-aidl.md b/interfaces/power-management-aidl.md similarity index 100% rename from knowledgebase/bliss-bass/interfaces/power-management-aidl.md rename to interfaces/power-management-aidl.md diff --git a/knowledgebase/external-threads-and-links/xda-threads.md b/knowledgebase/external-threads-and-links/xda-threads.md deleted file mode 100644 index a75e5bfc..00000000 --- a/knowledgebase/external-threads-and-links/xda-threads.md +++ /dev/null @@ -1,13 +0,0 @@ -# XDA Threads - -We usually release our builds on XDA, so here are the running threads we are currently maintaining: - -#### Bliss OS - -* Bliss OS 11.x - [https://forum.xda-developers.com/bliss-roms/bliss-roms-development/bliss-os-pie-beta-preview-t3855917](https://forum.xda-developers.com/bliss-roms/bliss-roms-development/bliss-os-pie-beta-preview-t3855917) -* Bliss OS 12.x/14.x - [https://forum.xda-developers.com/android/software/bliss-os-x86-pc-s-12-x-development-t4004419](https://forum.xda-developers.com/android/software/bliss-os-x86-pc-s-12-x-development-t4004419) - -#### Android-Generic Project - -* AGP 1.x/2.x - [https://forum.xda-developers.com/t/android-generic-project-pc-gsi-build-automation-toolkit.4132031/](https://forum.xda-developers.com/t/android-generic-project-pc-gsi-build-automation-toolkit.4132031/) - diff --git a/knowledgebase/frequently-asked-questions/build-filenames.md b/knowledgebase/frequently-asked-questions/build-filenames.md deleted file mode 100644 index e2c42eb3..00000000 --- a/knowledgebase/frequently-asked-questions/build-filenames.md +++ /dev/null @@ -1,39 +0,0 @@ -# Build Filenames - -The filenames we use contain some important information about what all is included in the builds. - -BlissOS-\(**Version**\)-\(**Device Type**\)-\(**Build Date**\)\_k-\(**Kernel**\)\_m-\(**Mesa**\)\_\(**App Services**\)\_\(**Extras**\).iso - -**Version:** - -This will be Bliss OS 11.x or 14.x, depending on what version of Android we are compiling. - -**Device Type:** - -* x86/x86\_64 :- Device Type 32bit/64bit - -**Build Date:** - -This will be the julian date-time from when the compile started. - -**Kernel & Mesa:** - -* \_k-xxxxx :- Kernel Branch - ex: k-kernel-5.4 -* \_m-xxxxx :- Mesa Branch - ex: m-r-x86 \(r/r-x86 means stock Mesa branch in current manifest\) - -**App Services:** - -Stock - Normally barebones, minimal apps added. Perfect for product testing -FOSS - Includes Free and Open Source app store solutions -Gapps/GMS - Includes Google Play Services - -* foss/gms/emugapps :- Apps Type - -**Extras:** - -Sometimes we will include extras into the builds, and that identifier will show in the last section. - -Our Native-Bridge variations are also added to this section. - -* houdini/libvndk :- Native-Bridge Type - diff --git a/knowledgebase/frequently-asked-questions/desktop-mode.md b/knowledgebase/frequently-asked-questions/desktop-mode.md deleted file mode 100644 index 028028b2..00000000 --- a/knowledgebase/frequently-asked-questions/desktop-mode.md +++ /dev/null @@ -1,10 +0,0 @@ -# Desktop Mode - -We have a number of requests on how to use the included Desktop Mode. - -**Ways to enable Desktop UI:** - -1. enable Taskbar from the Quick Settings tile in the notification drawer. -2. Settings > Apps > Defaults > Home. And set Taskbar as Home. Then adjust Taskbar Settings through that app in its app drawer. -3. Launch the Desktop Mode app from any other launchers App Drawer to enable the Desktop UI experience separately from your current launcher - diff --git a/knowledgebase/frequently-asked-questions/faq.md b/knowledgebase/frequently-asked-questions/faq.md deleted file mode 100644 index 5ae3cbee..00000000 --- a/knowledgebase/frequently-asked-questions/faq.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -description: Frequently asked questions about Bliss OS ---- - -# F.A.Q. - -## Why is there no keymapper included in Bliss OS? - -**Q:** Many users ask why is there no keymapper included in Bliss OS? -**A:** We have not found any open source keymappers, so we won't put our users data in jeopardy just for that. - -We are slowly starting to work with a small group of developers interested in creating an open-source on-screen keymapper for keyboard/mouse and gampads, so please spread the word about that and help us gain some interest. - -For those lost as to why we want to ensure security there, a gaming keymapper will redirect any input from the users device, and can even run when a game is not loaded. So it has the potential to grab passwords, banking info, etc. We don't trust anything we can't sift through the source of enough these days, so this is why we haven't included one as of yet - -**Q:** What is Android-Generic Project? -**A:** Android-Generic Project is a collection of scripts, manifests & patches that allow for rapid prototyping of Android projects based off AOSP to produce generic images for Linux PC hardware as well as others. For a more in-depth description of the goals and progressions leading up to this project, please read [This Blog Post](https://blog.blissroms.com/2020/06/26/lets-try-and-change-the-game/) - -More Info: - -* Website - [https://android-generic.github.io/](https://android-generic.github.io/) -* Documentation - [https://android-generic-project.gitbook.io/documentation/](https://android-generic-project.gitbook.io/documentation/) - diff --git a/knowledgebase/frequently-asked-questions/hardware-compatibility.md b/knowledgebase/frequently-asked-questions/hardware-compatibility.md deleted file mode 100644 index f3ea2152..00000000 --- a/knowledgebase/frequently-asked-questions/hardware-compatibility.md +++ /dev/null @@ -1,50 +0,0 @@ -# Hardware Compatibility - -We have updated our hardware support tracking and moved it to a repo of it's own along with a web frontend at: https://tested.blissos.org/ - -Repo: https://github.com/BlissRoms-x86/CompatibilityList - -**Supported CPU's:** - -!!!danger -As of 2024, all of our latest BlissOS builds are targeting at x86_64-v2 CPU. [This microarchitecture levels](https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels) match with [Android ABIs requirement](https://developer.android.com/ndk/guides/abis) so your CPU must be compatible or else it won't be able to boot. - -To know if your CPU support x86_64-v2, check your CPU features using programs like [CPUID's CPU-Z](https://www.cpuid.com/softwares/cpu-z.html) or search for your CPU at [CPU-World](https://www.cpu-world.com/) or [TechPowerUp's CPU database](https://www.techpowerup.com/cpu-specs/) -!!! - -(as of 2022 Q4) - -Intel: - -* Intel i Series \(i3/5/7/9\) - Fully Supported -* Intel Celeron M - Fully Supported \(Kernel 5.4+ recommended\) -* Intel Atom - Mostly Supported \(Kernel 5.10+ recommended\) -* Core2Duo - Not Fully Supported \(Needs SSE4.2\) \(May require 32bit builds\) - -AMD: - -* A Series - Mostly Supported \(Needs SSE4.2\) \(Kernel 5.10+ recommended\) -* Ryzen Series \(1k-7k\) - Fully Supported \(Kernel 5.10+ recommended\) -* Athlon Series - Mostly Supported \(Needs SSE4.2\) \(Kernel 5.10+ recommended\) - -**Supported GPU's:** - -* Intel iGPU : Supported -* Intel dGPU (Ex: DG1/DG2) : Untested -* AMD APU/GPU : Supported -* Nvidia : Support but limited - -**Native-Bridge:** - -BlissOS include native-bridge solution for translating ARM apps. If you can boot BlissOS, you can use this native bridge as it require x86_64v2 CPU. As of right now, 2 native bridge solution are being used : -- BlissOS 14/15 : Intel's libhoudini (aka Intel Bridge Technology) -- BlissOS 16/17 : Google's libndk_translation. - -These are proprietary libraries extracted from firmware of different devices. - -~~How to identify Native-Bridge Types in ISO file ?~~ - -~~* **houdini** - Includes Intel's Houdini \(Works with most Intel CPU's and some recent AMD CPU's\)~~ -~~* **libndk** - Includes Google's libndk-translation \(Works on all CPU's, but not as efficient as Houdini\)~~ - - diff --git a/knowledgebase/frequently-asked-questions/how-to-log.md b/knowledgebase/frequently-asked-questions/how-to-log.md deleted file mode 100644 index 9898a8ab..00000000 --- a/knowledgebase/frequently-asked-questions/how-to-log.md +++ /dev/null @@ -1,30 +0,0 @@ -# How to Log - -For grabbing manual logs of issues in Android-x86/Bliss OS, we need to use the alt-f1 console or built in terminal and we need to know the storage location we want to save in. For the examples below, we have our external storage mounted at sdcard/. - -**For Bliss 15.x & 16.x:** -Use KernelSU app to grant su permissions to Termux, then open the built in Termux app, then enter: - -`su -logcat > sdcard/log.txt` - -Or, boot into the OS using `DEBUG=2` from Grub, and the logs will be saved in /data after boot, or /tmp/log during early boot stages - -**For Bliss 14.x:** -Open the built in terminal app, then enter: - -`su -logcat > sdcard/log.txt` - -**For Bliss 12.x:** -Use the alt-f1/f7 console, then enter: - -`logcat > sdcard/log.txt` - -**For Bliss 11:** -Use the alt-f1/f7 console, then enter: - -`logcat > sdcard/log.txt` - -After that is done, you can close the terminal app or use alt-f7 to get back to Android if you are using the Console, and use the File Manager to access your log and share it where needed. - diff --git a/knowledgebase/frequently-asked-questions/keyboard-shortcuts.md b/knowledgebase/frequently-asked-questions/keyboard-shortcuts.md deleted file mode 100644 index dc9d0d40..00000000 --- a/knowledgebase/frequently-asked-questions/keyboard-shortcuts.md +++ /dev/null @@ -1,72 +0,0 @@ -# Keyboard Shortcuts - -## Bliss OS Keyboard Shortcuts: - -System - -* Ctrl + Alt + Del: Open up Power Menu -* Alt + Tab: Switch to last app in stack \(Holding Alt, and repeatedly pressing tab will scroll through recent apps\) -* Win: Home key -* Alt + Esc: Back -* Prtsc: Create Screenshot - -Scrolling - -* Spacebar: Page down in any Web page/document view -* Shift + Spacebar: Page up in any Web page/document view - -Typing - -* Alt + Spacebar: Insert a special character -* Shift + Del: Delete the character to the right of the cursor -* Alt + Del: Delete an entire line -* Shift + Shift \(press it twice\): Activate caps-lock; press shift once more to exit -* Alt + Trackball-Left: Move cursor to beginning of line -* Alt + Trackball-Right: Move cursor to end of line -* Alt + Trackball-Up: Move cursor to top of page -* Alt + Trackball-Down: Move cursor to bottom of page -* Shift + Trackball-Left/Right: Highlight text for cutting or copying -* Ctrl + X: Cut text \(will cut all text on-screen unless specific characters are highlighted\) -* Ctrl + C: Copy text to clipboard \(will copy all text on-screen unless specific characters are highlighted\) -* Ctrl + V: Paste text from clipboard -* Ctrl + A: Select all text in the current field - -Browsing - -* Ctrl + I: Zoom in -* Ctrl + O: Zoom out -* Ctrl + J: Go back a page -* Ctrl + K: Go forward a page -* Ctrl + R: Refresh current page -* Ctrl + F: Find on page -* Ctrl + B: Open bookmarks -* Ctrl + S: Open social network sharing menu -* Ctrl + H: View browsing history -* Ctrl + S: Open browser settings - -Gmail - -* F: Forward current message \(works only while inside the message\) -* R: Reply to current message \(works only while inside the message\) -* A: Reply-all to current message \(works only while inside the message\) -* Y: Archive message \(works from within message or while on main inbox list\) -* Ctrl + U: Refresh inbox -* Ctrl + C: Compose new e-mail -* Enter: Open an e-mail \(from the main inbox list\) -* Alt + Trackball-Up: Jump to top of inbox -* Alt + Trackball-Down: Jump to bottom of inbox - -Apps - -* Win + B: Open browser -* Win + C: Open contacts -* Win + E: Open e-mail -* Win + G: Open Gmail -* Win + I: Open calendar -* Win + M: Open maps -* Win + P: Open music -* Win + S: Open text messaging -* Win + Y: Open YouTube - - - diff --git a/knowledgebase/frequently-asked-questions/sandboxing-apps.md b/knowledgebase/frequently-asked-questions/sandboxing-apps.md deleted file mode 100644 index 95786d07..00000000 --- a/knowledgebase/frequently-asked-questions/sandboxing-apps.md +++ /dev/null @@ -1,12 +0,0 @@ -# Sandboxing Apps - -Sometimes we have apps that check the system for root. In these cases, they will all fail their check unless you are running the app in a sandboxed environment. There are a couple aps we use to get around this. - -#### Island - -* [https://play.google.com/store/apps/details?id=com.oasisfeng.island](https://play.google.com/store/apps/details?id=com.oasisfeng.island) - -#### Shelter - -* [https://play.google.com/store/apps/details?id=net.typeblog.shelter](https://play.google.com/store/apps/details?id=net.typeblog.shelter&hl=en_US&gl=US&referrer=utm_source%3Dgoogle%26utm_medium%3Dorganic%26utm_term%3Dandroid+launch+apps+in+sandbox&pcampaignid=APPU_1_3jnfYPu_AcW0tQb5oZLYBQ) - diff --git a/knowledgebase/frequently-asked-questions/vulkan-mode.md b/knowledgebase/frequently-asked-questions/vulkan-mode.md deleted file mode 100644 index 53d43ede..00000000 --- a/knowledgebase/frequently-asked-questions/vulkan-mode.md +++ /dev/null @@ -1,15 +0,0 @@ -# Vulkan Mode - -In our Android 9+ versions, we include the ability to use a Grub command for enabling Vulkan mode on supported graphics hardware. -However, from Bliss OS 14.10, you don't have to to worry about triggering this value as we removed `VULKAN=1` from the OS. - -#### To initially test: - -When your PC reboots, it's initially shows a grub menu. tap "e" to edit the current selection and add the VULKAN=1 to the end of the line that starts with "kernel", then follow the on-screen prompts to boot with those edits. - -If it works, then edit Grub from your main OS, and add the flag there. - -#### Here is an example Grub menuentry (Bliss OS 15.8.x): - -`menuentry 'Bliss-x86 Test-Vulkan' --class bliss { search --file --no-floppy --set=root /AndroidOS/android.boot linux /AndroidOS/kernel root=/dev/ram0 SRC=/AndroidOS androidboot.selinux=permissive GRALLOC=minigbm HWC=drm_minigbm quiet DATA= VULKAN=1 initrd /AndroidOS/initrd.img }` - diff --git a/knowledgebase/index.yml b/knowledgebase/index.yml deleted file mode 100644 index 65c1119c..00000000 --- a/knowledgebase/index.yml +++ /dev/null @@ -1,3 +0,0 @@ -order: 1000 -icon: book -expanded: true \ No newline at end of file diff --git a/knowledgebase/other-bliss-variant/go-builds.md b/knowledgebase/other-bliss-variant/go-builds.md deleted file mode 100644 index 112d2c15..00000000 --- a/knowledgebase/other-bliss-variant/go-builds.md +++ /dev/null @@ -1,3 +0,0 @@ -# BlissOS Go - -This variant is designed specifically for the low-end hardware that meet the minimum requirement to run BlissOS. While using the same LTS kernel as the Generic variant, we've added a few tweaks to the internal Android parts to make sure you can have a good experience even if your hardware is limited. diff --git a/knowledgebase/other-bliss-variant/index.yml b/knowledgebase/other-bliss-variant/index.yml deleted file mode 100644 index 5dac50de..00000000 --- a/knowledgebase/other-bliss-variant/index.yml +++ /dev/null @@ -1 +0,0 @@ -Label: Other Bliss Variant diff --git a/knowledgebase/other-bliss-variant/surface-builds.md b/knowledgebase/other-bliss-variant/surface-builds.md deleted file mode 100644 index 202f4031..00000000 --- a/knowledgebase/other-bliss-variant/surface-builds.md +++ /dev/null @@ -1,11 +0,0 @@ -# BlissOS for Surface devices - -This version is designed specifically for the Microsoft Surface devices. The kernel use almost the same LTS kernel but with extra patches from the [linux-surface](https://github.com/linux-surface) project to ensure the most compatibility. - -While this build indicate that this is for Surface devices, not all devices need to use it. To know if your device need to install this build or not, go to this section of linux-surface wiki: - -https://github.com/linux-surface/linux-surface/wiki/Supported-Devices-and-Features - -If you see your device has the number that said `Requires linux-surface kernel` or `Requires linux-surface kernel >=x.x.x` then this is the build you are looking for. - -The Surface build of BlissOS also include `iptsd`, an userspace touch processing daemon for Microsoft Surface devices using Intel Precise Touch technology made by linux-surface team. If you have any issue with the touchscreen, try to Calibrate or tweak the daemon. Go to [Calibrate and configure iptsd](/configuration/Calibrate-and-configure-iptsd.md) to know how. diff --git a/knowledgebase/other-bliss-variant/zenith-builds.md b/knowledgebase/other-bliss-variant/zenith-builds.md deleted file mode 100644 index fbc25715..00000000 --- a/knowledgebase/other-bliss-variant/zenith-builds.md +++ /dev/null @@ -1,3 +0,0 @@ -# BlissOS Zenith - -BlissOS Zenith is the new flagship build of BlissOS. Zenith is a BlissOS variant that is intended for "chasing the latest". We will build this variant weekly with only the latest version of BlissOS that is available, combine with latest Stable kernel. BlissOS is intended for people who are having a new hardware that LTS kernel can't support, or people who just want to get latest stable kernel to run on their builds. diff --git a/knowledgebase/supreme-gamers-resources-we-like/advanced-android-x86-installer.md b/knowledgebase/supreme-gamers-resources-we-like/advanced-android-x86-installer.md deleted file mode 100644 index 0ce2a927..00000000 --- a/knowledgebase/supreme-gamers-resources-we-like/advanced-android-x86-installer.md +++ /dev/null @@ -1,8 +0,0 @@ -# Advanced Android-x86 Installer - -~~Axon from Supreme-Gamers put together a great installer that works with MBR/EFI and installs on NTFS or EXT4. [Advanced Android-x86 Installer](https://supreme-gamers.com/t/advanced-android-x86-installer-for-windows.300/)~~ - -**Notice** Due to Advanced Android-x86 Installer using Grub2Win, we can not currently recommend using it. Grub2Win is a GPLv3 licensed project that has made the decission to limit its userbase by blocking specific regional installs. This action goes against GPLv3 and we will not support the actions the developer has chosen. - - - diff --git a/knowledgebase/supreme-gamers-resources-we-like/gearlock.md b/knowledgebase/supreme-gamers-resources-we-like/gearlock.md deleted file mode 100644 index 40cb7814..00000000 --- a/knowledgebase/supreme-gamers-resources-we-like/gearlock.md +++ /dev/null @@ -1,28 +0,0 @@ -# Gearlock - -## Gearlock Info - -* Gearlock Developer Documentation: [https://supreme-gamers.com/gearlock/](https://supreme-gamers.com/gearlock/) -* Gearlock-dev-kit git link \(for cloning\): [https://github.com/axonasif/gearlock-dev-kit](https://github.com/axonasif/gearlock-dev-kit) -* Gearlock-kernel-pkg: [https://github.com/axonasif/gearlock-kernel-pkg](https://github.com/axonasif/gearlock-kernel-pkg) -* Gearlock \(main repo for the new vendor/gearlock used in Bliss OS 11/14/AG 11 builds\): [https://github.com/axonasif/gearlock](https://github.com/axonasif/gearlock) - -### Supported Gearlock Extensions - -Bliss OS devs do occasionally create Gearlock Extensions also, and those can be found here: [https://sourceforge.net/projects/blissos-dev/files/Android-Generic/PC/gearlock\_extensions/](https://sourceforge.net/projects/blissos-dev/files/Android-Generic/PC/gearlock_extensions/) - -You can also find more extensions on the [https://supreme-gamers.com/r/](https://supreme-gamers.com/r/) site. Not all of those are compatible with our versions of Android, so please read carefully. - -#### Gearlock Kernel Commands - -\(these are passed through Grub CLI\) - -Gearlock kernel command lines: - -* NOSC=0 Disables supercharging -* NOGFX=0 Skips loading Gearlock GPU drivers at recovery-mode \(needed for vulkan and old-modprobe modes\) -* NORECOVERY=0 Disables recovery countdown -* ALWAYSRECOVERY=0 Enters Recovery by default - -To disable bootsound you have to use gearlock > more > settings > bootsound Or you can also use your own by editing /\[data\] \[system\] /ghome/.gearlockrc - diff --git a/knowledgebase/supreme-gamers-resources-we-like/linux-android-x86-installer.md b/knowledgebase/supreme-gamers-resources-we-like/linux-android-x86-installer.md deleted file mode 100644 index de1b81e6..00000000 --- a/knowledgebase/supreme-gamers-resources-we-like/linux-android-x86-installer.md +++ /dev/null @@ -1,12 +0,0 @@ -# Linux Android-x86 Installer - -Advanced and easy to use Advanced Android x86 installer for Linux. - -Developed with Python for linux. - -User Xtr has also created a solution for recent versions of Bliss OS/Android-Generic Project. That can be found on aur: -https://aur.archlinux.org/packages/android-x86-installer-tauri-bin - -**Source:** -[https://github.com/jaxparrow07/Androidx86-Installer-Linux](https://github.com/jaxparrow07/Androidx86-Installer-Linux) - diff --git a/knowledgebase/troubleshooting/debug-booting.md b/knowledgebase/troubleshooting/debug-booting.md deleted file mode 100644 index 5cfbf8cf..00000000 --- a/knowledgebase/troubleshooting/debug-booting.md +++ /dev/null @@ -1,53 +0,0 @@ -# Debug Booting - -There are a few ways to debug booting and we will run through a few of them here. - -First is to hit "e" when the grub selection screen shows up, and try and boot by removing the "quiet" from your grub entry. - -The second option would be to boot in debug mode by adding DEBUG=1 or DEBUG=2 , both represent a lower level of logging. See Example below: - -```text -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 androidboot.hardware=android_x86_64 quiet DATA= DEBUG=2 - initrd /AndroidOS/initrd.img -} -``` - -You will need to enter "exit" once or twice when using debug mode to procede to the following steps of the boot process. - -If the animation never starts, add "nomodeset" to the grub command to force software rendering and hardware compatibility mode. See Example below: - -```text -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 androidboot.hardware=android_x86_64 quiet DATA= DEBUG=2 nomodeset - initrd /AndroidOS/initrd.img -} -``` - -Once you are able to get things to boot, use the alt-f1 /f7 console or the local Terminal app and the Logcat command to log things, -`su -logcat > sdcard/log_name.txt` - -When done, copy and paste the entire log either to Hastebin or Pastebin - - -## If init starts, but never boots to installer: - -This typically happens on newer CPU's and requires you to install ising either our Windows based installer: - -[Android-x86 Installer for Windows](https://github.com/gmisoftwares/BlissOS-Installer-for-Windows/releases/download/2.9/Androidx86-Installv29.0000.exe) - -or using a Linux based installer: - -[Android-x86 installer for Linux](https://github.com/jaxparrow07/Androidx86-Installer-Linux) - -If you are trying to install within VMWare or VirtualBox, we don't suggest doing so as it will not be hardware accellerated. Please use QEMU based emulator,like: - -[qemu-windows](https://linuxhint.com/qemu-windows/) - -**For more advanced debugging information:** - -Please follow the advanced debugging procedures found on Android-x86 documentation [https://www.android-x86.org/documentation/debug.html](https://www.android-x86.org/documentation/debug.html) - diff --git a/knowledgebase/troubleshooting/edit-grub-from-bliss-install.md b/knowledgebase/troubleshooting/edit-grub-from-bliss-install.md deleted file mode 100644 index a57667a3..00000000 --- a/knowledgebase/troubleshooting/edit-grub-from-bliss-install.md +++ /dev/null @@ -1,49 +0,0 @@ -# How to edit grub from your Bliss OS install - -Follow these steps to edit EFI from rooted Bliss OS - -### Step 1: -Boot into Bliss OS and select "DEBUG mode" from the grub menu. Once boot completes, press enter - -### Step 2: -To list devices: - - `blkid` - -Assuming device is `/dev/sda`, Identify EFI partition number (should have boot flag): - - `parted /dev/sda print` - -if you have nvme disk your EFI partition should be like this: - -/dev/nvme0n1p1 - -You must use this partition for bottom commands. - -Mount your EFI partition (usually first partition in disk): - - `mount /dev/sda1 /mnt` - -### Step 3: -Change directory to /mnt/efi/boot: - - `cd /mnt/efi/boot` - -### Step 4: -Edit the android.cfg using vi editor: - - `vi android.cfg` - -### Step 5: -Use Vi Editor to add your changes and save --  Press `insert` to enter edit mode --  Press `Esc`, type `:w`, and press `Enter` to save. --  Press `Esc`, type `:q`, and press `Enter` to exit. -- Also you can combine save & exit with `:wq` - -### Step 6: -Now you can umount efi partition and reboot to see your changes: -``` - umount /dev/sda1 - reboot -f -``` diff --git a/knowledgebase/troubleshooting/graphics-troubleshooting.md b/knowledgebase/troubleshooting/graphics-troubleshooting.md deleted file mode 100644 index 0fbb3a2b..00000000 --- a/knowledgebase/troubleshooting/graphics-troubleshooting.md +++ /dev/null @@ -1,61 +0,0 @@ -# Debug Graphics - -When booting into Bliss for the first time, some users may see a blinking cursor, scrambled graphics, or black screen. These are all signs that your device requires some configuration to get things to run. - -Android-x86, AG & Bliss OS builds all come with a configurable graphics stack that can be used through Grub CLI. - -### The main options for configuration are as follows, - -#### Gralloc: - -* GRALLOC=gbm - Uses GBM interface \(Vulkan mode default\) -* GRALLOC=minigbm - Uses Minigbm interface -* GRALLOC=intel - Uses Intel minigbm interface -* GRALLOC=none - Force no Gralloc interface - -#### HW-Composer: - -* HWC=drm - Standard for versions <= Android 9 -* HWC=drmfb - Use drm-framebuffer insead -* HWC=intel - Used Intel IA HWC -* HWC=none - Force no hwcomposer definition - -### Grub Examples: - -```text -label debug - menu label Live CD - ^Debug mode - kernel /kernel - append initrd=/initrd.img CMDLINE DEBUG=2 SRC= DATA= - -label debug_gbm - menu label Live CD - Debug mode gralloc.gbm - kernel /kernel - append initrd=/initrd.img CMDLINE DEBUG=2 SRC= DATA= GRALLOC=gbm - -label debug_drmfb-composer - menu label Live CD - Debug mode drmfb-composer gralloc.gbm - kernel /kernel - append initrd=/initrd.img CMDLINE DEBUG=2 SRC= DATA= HWC=drmfb GRALLOC=gbm - -label debug_hwc_gbm - menu label Live CD - Debug mode hwcomposer.drm gralloc.gbm - kernel /kernel - append initrd=/initrd.img CMDLINE DEBUG=2 SRC= DATA= HWC=drm GRALLOC=gbm - -label debug_minigbm - menu label Live CD - Debug mode gralloc.minigbm - kernel /kernel - append initrd=/initrd.img CMDLINE DEBUG=2 SRC= DATA= GRALLOC=minigbm - -label debug_hwc_minigbm - menu label Live CD - Debug mode hwcomposer.drm_minigbm gralloc.minigbm - kernel /kernel - append initrd=/initrd.img CMDLINE DEBUG=2 SRC= DATA= HWC=drm_minigbm GRALLOC=minigbm - -label debug_intel - menu label Live CD - Debug mode hwcomposer.intel gralloc.intel - kernel /kernel - append initrd=/initrd.img CMDLINE DEBUG=2 SRC= DATA= HWC=intel GRALLOC=intel -``` - diff --git a/knowledgebase/troubleshooting/how-to-mount-ext-partition-on-boot.md b/knowledgebase/troubleshooting/how-to-mount-ext-partition-on-boot.md deleted file mode 100644 index affb5320..00000000 --- a/knowledgebase/troubleshooting/how-to-mount-ext-partition-on-boot.md +++ /dev/null @@ -1,8 +0,0 @@ -# How to mount ext partition on boot - -User cjeu100 put together a script that works well from our Android 9 builds. Follow the link below to head to that post. - -**How to mount partition on boot:** - -[https://forum.xda-developers.com/bliss-roms/bliss-roms-development/bliss-os-pie-beta-preview-t3855917/post83243055](https://forum.xda-developers.com/bliss-roms/bliss-roms-development/bliss-os-pie-beta-preview-t3855917/post83243055) - diff --git a/knowledgebase/troubleshooting/how-to-mount-internal-ntfs-partition-on-boot.md b/knowledgebase/troubleshooting/how-to-mount-internal-ntfs-partition-on-boot.md deleted file mode 100644 index 3d964cb1..00000000 --- a/knowledgebase/troubleshooting/how-to-mount-internal-ntfs-partition-on-boot.md +++ /dev/null @@ -1,74 +0,0 @@ -# How to mount internal NTFS partition on boot - -## **Method 1** - -It is possible to automatically mount disks at boot. There may be other ways to do this, but one way to do it is: - -1\) Write the commands for creating a folder and mounting the disk in a text file which will be a bash script file. - -`#!/system/bin/sh - -mkdir /mnt/folder_name mount.ntfs /dev/block/partition_name /mnt/folder_name` - -Here 'partition\_name' could be any of the disk you want to mount like for example sda1 devb1 etc. and 'folder\_name' is the folder where you want to mount the disk. - -2\) Place the script file under /system/etc/init.d. You can name the file anything you want, but it should not have any extension i.e. .txt or any other extension must be removed. - -3\) Reboot and enjoy ! Use a file manager like Mixplorer which can bookmark the mounted locations for easy access. The disks should now be mounted automatically at every boot. - -## **Method 2** - -Mount all NTFS Partitions on boot \(mostly automated script\) - -**Steps:** - -1\) Open Terminal -2\) create a "mountfs" file with the conetents below and place it under /system/bin -3\) Then from a terminal: -`su -chmod 777 /system/bin/mountfs` -4\) Then type -`mountfs` -5\) Done - -```text -#!/system/bin/bash -MNT="/mnt/runtime/default/" -mount_drives() { -FILENAME="/system/etc/drives" -N=1 -blkid | grep ntfs | cut -d : -f 1 > $FILENAME -while read BLOCK; do -echo "BlissOS_NTFS: Mounting blocks: $BLOCK" -LABEL="$( blkid -s LABEL $BLOCK | cut -d : -f 2 | cut -d '"' -f 2 )" -if [ -z $LABEL ]; then -LABEL="BlissOS_NTFS" -fi -mkdir /mnt/"$LABEL" -mount.ntfs $BLOCK /mnt/"$LABEL" -((N++)) -done < $FILENAME -rm $FILENAME -} - -mount_drives >/dev/null 2>&1 -sleep 2 -echo "All NTFS partitions / drivers mounted at $MNT" && echo -echo "Making some arrangements so that all NTFS partitions could be mounted at boot" && clear -mv $(pwd)/mountfs /system/etc/init.d/ -chmod 777 /system/etc/init.d/mountfs -sleep 2 -echo "(R) Reboot (E) Exit" && echo -read -n 1 -p "Choose any option :- " X -case $X in -R | r) -echo "Rebooting" && sleep 2 -chvt 7 && sleep 2 && reboot -;; -E | e) -echo "Exiting" && sleep 2 -chvt 7 && exit 0 -;; -esacs -``` - diff --git a/knowledgebase/troubleshooting/microsoft-surface-ipts-gearlock-package.md b/knowledgebase/troubleshooting/microsoft-surface-ipts-gearlock-package.md deleted file mode 100644 index 945765f1..00000000 --- a/knowledgebase/troubleshooting/microsoft-surface-ipts-gearlock-package.md +++ /dev/null @@ -1,15 +0,0 @@ -# Microsoft Surface IPTS Gearlock Package - -If you have a Microsoft Surface device and touchscreen support is not enabled by default, this likely means that your device requires a special kernel for support. - -**Getting the Kernel:** - -You should use the latest Generic i3/5/7/9 ISO \(11.13/14.3\) which comes with Gearlock, then download the surface kernel from SupremeGamers resource site \([https://supreme-gamers.com/t/android-x86-kernel-for-microsoft-surface-based-on-linux-surface-patches.389/](https://supreme-gamers.com/t/android-x86-kernel-for-microsoft-surface-based-on-linux-surface-patches.389/)\). and install it after initial boot from Gearlock Recovery mode. - -**If you need to reset your IPTS touchscreen while the system is running:** - -Open the alt-f1/f7 console, or built in terminal, and type: - -`su -rmmod ipts_surface && rmmod intel_ipts && modprobe intel_ipts && modprobe ipts_surface` - diff --git a/knowledgebase/troubleshooting/not-booting-after-install-on-linux.md b/knowledgebase/troubleshooting/not-booting-after-install-on-linux.md deleted file mode 100644 index 83b0c18d..00000000 --- a/knowledgebase/troubleshooting/not-booting-after-install-on-linux.md +++ /dev/null @@ -1,9 +0,0 @@ -# Not booting after install on Linux - -For Linux users that are able to boot our Android 10/11 builds in Live mode, but things fail to boot once installed, this is caused by a bug in our data detection scripts. -try to remove the data/ folder from the install location, and replace it with an ext4 data.img - -**Example for making a 8gb image:** - -`dd if=/dev/zero of=data.img bs=1 count=0 seek=$[1G*8]` - diff --git a/knowledgebase/troubleshooting/remount-system-as-read-write.md b/knowledgebase/troubleshooting/remount-system-as-read-write.md deleted file mode 100644 index 78a30e35..00000000 --- a/knowledgebase/troubleshooting/remount-system-as-read-write.md +++ /dev/null @@ -1,55 +0,0 @@ -# Remount system as Read/Write -(Credits go to Knoxville and others from Telegram for this method) - -For remounting, we need to use the alt-f1 console or built in terminal. - -**For Bliss 15.x:** -Boot with DEBUG=1, and mount remount the install partition: - -``` -mount -o remount,rw /dev/block/sd(x) -cd /src -mount system.sfs /tmp -cp /tmp/system.img system.img -umount /tmp -rm -f system.sfs -``` - -or if you want to backup original system image -``` -mv system.sfs system.bak -``` -Now we sync the filesystem and reboot: -``` -sync -reboot -f -``` -Upon reboot, you will have R/W on system - -Once we have a system.img and no system.sfs, we need to use the built in terminal app (with su permissions granted), and type: -``` -cat /proc/mounts -``` - -Then look for the `/dev/loop#` where we see mounted at "/", likely followed by "ext4 ro....". Note that as we will need to use that for the next command. -Now type: -``` -mount -o remount,rw -t ext4 /dev/loop# / -``` - -Or for older Bliss versions (**14.x, 11.x**) use: -``` -mount -o remount,rw -t ext4 /dev/loop# /system -``` - -Then you can edit the system files you need. When you are done, you can remount as RO: -``` -mount -o remount,ro -t ext4 /dev/loop# / -``` - -Then test to verify changes stick - -**Video Walkthrough** -Watch this video for detailed instructions. - -https://youtu.be/hA1SjE3kTfQ diff --git a/knowledgebase/troubleshooting/sound-issues.md b/knowledgebase/troubleshooting/sound-issues.md deleted file mode 100644 index 1e6605bd..00000000 --- a/knowledgebase/troubleshooting/sound-issues.md +++ /dev/null @@ -1,73 +0,0 @@ -# Sound Issues - -When running our builds on real hardware, sometimes the sound is not detected properly. We can troubleshoot this issue a number of ways. - -**Option 1** - -The initial way we should troubleshoot is to first see if it is a volume issue. Typically, you can install an app like Goodev Volume Booster, and that will add gain to the main sound channels. - -1. Open Play Store -2. Install "Volume Booster GOODEV" or any other sound booster app -3. Open the AudioFX app if installed and turn it off -4. Go to Home, open the Volume Boost app and boost it to 15%-25% and test - -This will solve most sound issues. - -**Option 2** - -Using the alt-f1/f7 console from Android 9 or a terminal app from Android 11/12, we can run: - -```text -$ lsmod -``` - -This will list all the devices that have been detected on the device. Search the output for anything sound related. If you see multiple audio or sound drivers loaded, refer to Option 1 to boost gain, otherwise you can reload the modules: - -```text -rmmod snd_hda_codec_hdmi -modprobe snd_hda_codec_hdmi -``` - -**Option 3** - -There is also tools added to Gearlock Recovery that can help with most sound issues. Read the details about that [here](https://supreme-gamers.com/threads/how-to-fix-mic-sound-issues-in-phoenixos-darkmatter.62/page-2). - -**Option 4 - \(Advanced\)** - -For some users, the simple sound fixes don't work. This means we will need to go into experimental mode on the issue. This method was provided by cjeu100 From XDA-Developers threads. - -Start by using the alt-f1 console \(use alt-f7 to get back\) or the Terminal app \(may require you to run [Remount System as Read/Write](https://docs.blissos.org/troubleshooting/remount-system-as-read-write) first\) and type following commands: - -```text -su -cat /proc/asound/cards -``` - -`0 [HDMI ]: HDA-Intel - HDA Intel HDMI HDA Intel HDMI at 0xb0610000 irq 46 1 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xb0614000 irq 44` - -```text -ls -l /dev/snd -``` - -now you see your sound devices - -In this example, the we picked the top one, \(pcmC0D7\). If that doesn't work, repeat these steps and choose a different card. - -On Bliss OS builds < 15.8.8: - -```text -setprop hal.audio.out pcmC0D7p -pkill audioserver -``` - -This will restart the audio server and hopefully result in sound working with the right output. Use alt-f7 to get back to the Android UI and test. - -**Option 5 - snd-intel-dspcfg.dsp_driver** - -On Bliss OS builds <= 15.8.8, we have different drivers we can try (1/2). We use the snd-intel-dspcfg.dsp_driver=# cmdline option to switch between those drivers on boot: - -```text -snd-intel-dspcfg.dsp_driver=1 -``` - - diff --git a/knowledgebase/troubleshooting/touch-orientation.md b/knowledgebase/troubleshooting/touch-orientation.md deleted file mode 100644 index 9a42ec3a..00000000 --- a/knowledgebase/troubleshooting/touch-orientation.md +++ /dev/null @@ -1,26 +0,0 @@ -## Touch Orientation - -### Requirements: -- System mounted as RW -- Booted into Debug mode (or using root and terminal) -- Knowledge on how to use common linux commands like cat, ls, etc. - -### Process: -First, you are going to want to get your device uevent from /sys/class/dmi/id/uevent: - ``` - su - cat /sys/class/dmi/id/uevent - ``` - -Then find a good string to look for from it, like we do [here](https://github.com/BlissRoms-x86/device_generic_common/blob/d6f6c278f26ce05b0db205767ba5656ca2aa6533/init.sh#L493) - -Your device may also require a couple accel opt_scale options too. Example: - ``` - *TECLAST*X4*) - set_property ro.iio.accel.order 102 - set_property ro.iio.accel.x.opt_scale -1 - set_property ro.iio.accel.y.opt_scale -1 - ;; - ``` -Once done, save the file and reboot. -If it works, please submit the changes as a PR to our [device_generic_common repo](https://github.com/BlissRoms-x86/device_generic_common/tree/d6f6c278f26ce05b0db205767ba5656ca2aa6533) diff --git a/knowledgebase/troubleshooting/wifi-issues.md b/knowledgebase/troubleshooting/wifi-issues.md deleted file mode 100644 index de45fa63..00000000 --- a/knowledgebase/troubleshooting/wifi-issues.md +++ /dev/null @@ -1,9 +0,0 @@ -# Wifi Issues - -For many users, wifi is not detected right on boot. If you are using a build that is pre Kernel-5.x, you can try and add the grub option "AUTO\_LOAD=old". If you are using a newer kernel \(5.0+\), make sure your device has native support included in the kernel. Some devices may also require the grub option "VULKAN=1" or "GRALLOC=gbm" too. - -If it's not working, you can provide your wifi card info to us for help, or you can submit a pull request to our kernel-drivers repo with the proper Linux driver modules for your device \( [https://github.com/BlissRoms-x86/external\_kernel-drivers](https://github.com/BlissRoms-x86/external_kernel-drivers) \). If you don't know the card name you can try to provide lspci or lsusb \(for usb cards\) output for us by typing the command into the Terminal \(with root\) - -`su -lsusb > sdcard/lsusb.txt` - diff --git a/knowledgebase/bliss-bass/remote_management/images/device-primary_display_2024-03-06_11-44-51.png b/remote_management/images/device-primary_display_2024-03-06_11-44-51.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/device-primary_display_2024-03-06_11-44-51.png rename to remote_management/images/device-primary_display_2024-03-06_11-44-51.png diff --git a/knowledgebase/bliss-bass/remote_management/images/device-secondary_display_2024-03-06_11-45-39.png b/remote_management/images/device-secondary_display_2024-03-06_11-45-39.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/device-secondary_display_2024-03-06_11-45-39.png rename to remote_management/images/device-secondary_display_2024-03-06_11-45-39.png diff --git a/knowledgebase/bliss-bass/remote_management/images/device_connection-connected_2024-03-06_11-34-02.png b/remote_management/images/device_connection-connected_2024-03-06_11-34-02.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/device_connection-connected_2024-03-06_11-34-02.png rename to remote_management/images/device_connection-connected_2024-03-06_11-34-02.png diff --git a/knowledgebase/bliss-bass/remote_management/images/device_connection_2024-03-06_11-33-10.png b/remote_management/images/device_connection_2024-03-06_11-33-10.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/device_connection_2024-03-06_11-33-10.png rename to remote_management/images/device_connection_2024-03-06_11-33-10.png diff --git a/knowledgebase/bliss-bass/remote_management/images/init_mapping_2024-03-06_11-37-56.png b/remote_management/images/init_mapping_2024-03-06_11-37-56.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/init_mapping_2024-03-06_11-37-56.png rename to remote_management/images/init_mapping_2024-03-06_11-37-56.png diff --git a/knowledgebase/bliss-bass/remote_management/images/main-keep_display_off_2024-03-06_11-34-41.png b/remote_management/images/main-keep_display_off_2024-03-06_11-34-41.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/main-keep_display_off_2024-03-06_11-34-41.png rename to remote_management/images/main-keep_display_off_2024-03-06_11-34-41.png diff --git a/knowledgebase/bliss-bass/remote_management/images/mapping_2024-03-06_11-37-25.png b/remote_management/images/mapping_2024-03-06_11-37-25.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/mapping_2024-03-06_11-37-25.png rename to remote_management/images/mapping_2024-03-06_11-37-25.png diff --git a/knowledgebase/bliss-bass/remote_management/images/mapping_screen_2024-03-06_11-38-29.png b/remote_management/images/mapping_screen_2024-03-06_11-38-29.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/mapping_screen_2024-03-06_11-38-29.png rename to remote_management/images/mapping_screen_2024-03-06_11-38-29.png diff --git a/knowledgebase/bliss-bass/remote_management/images/permissions_2024-03-06_12-07-50.png b/remote_management/images/permissions_2024-03-06_12-07-50.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/permissions_2024-03-06_12-07-50.png rename to remote_management/images/permissions_2024-03-06_12-07-50.png diff --git a/knowledgebase/bliss-bass/remote_management/images/primary_display_2024-03-06_11-32-32.png b/remote_management/images/primary_display_2024-03-06_11-32-32.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/primary_display_2024-03-06_11-32-32.png rename to remote_management/images/primary_display_2024-03-06_11-32-32.png diff --git a/knowledgebase/bliss-bass/remote_management/images/second_display_2024-02-28_20-57-16.png b/remote_management/images/second_display_2024-02-28_20-57-16.png similarity index 100% rename from knowledgebase/bliss-bass/remote_management/images/second_display_2024-02-28_20-57-16.png rename to remote_management/images/second_display_2024-02-28_20-57-16.png diff --git a/knowledgebase/bliss-bass/remote_management/using_scrcpy_for_remote_management.md b/remote_management/using_scrcpy_for_remote_management.md similarity index 100% rename from knowledgebase/bliss-bass/remote_management/using_scrcpy_for_remote_management.md rename to remote_management/using_scrcpy_for_remote_management.md diff --git a/retype.yml b/retype.yml index ad72f502..3aa51c92 100644 --- a/retype.yml +++ b/retype.yml @@ -1,14 +1,14 @@ input: ./ output: .docs -url: docs.blissos.org +url: docs.blisscolabs.dev branding: - logo: /static/blissos.png - title: BlissOS + logo: /static/Bliss-Bass_logo.png + title: Bliss Bass label: Docs edit: - repo: https://github.com/BlissRoms-x86/Documentation + repo: https://github.com/Bliss-Bass/Documentation label: Edit on GitHub editor: @@ -19,18 +19,8 @@ links: link: /README.md icon: home - - text: Issues - link: https://github.com/BlissRoms-x86/support - icon: issue-opened - target: blank - - - text: Twitter - link: https://twitter.com/blissos_org - icon: - target: blank - footer: - copyright: © Copyright 2013-{{ year }} – [BlissLabs](https://blisslabs.org) – All rights reserved + copyright: © Copyright 2013-{{ year }} – [Bliss Co-Labs](https://blisscolabs.dev) – All rights reserved links: - - text: A BlissLabs Project - link: https://blisslabs.org + - text: A Bliss Co-Labs Project + link: https://bliss-bass.blisscolabs.dev diff --git a/configuration/Configuration-through-Command-Line-Parameters.md b/setup_and_configuration/Configuration-through-Command-Line-Parameters.md similarity index 100% rename from configuration/Configuration-through-Command-Line-Parameters.md rename to setup_and_configuration/Configuration-through-Command-Line-Parameters.md diff --git a/setup_and_configuration/booting-into-generic-builds.md b/setup_and_configuration/booting-into-generic-builds.md new file mode 100644 index 00000000..8c7dfc65 --- /dev/null +++ b/setup_and_configuration/booting-into-generic-builds.md @@ -0,0 +1,16 @@ +## Booting into generic builds: + +### Tablet/PC/IOT/IIOT/Game Mode builds + +**!!WARNING!! - THESE BUILDS ARE MEANT TO REPLACE YOUR EXISTING OPERATING SYSTEM OR BE INSTALLED ON NEW HARDWARE. THESE ARE NOT INTENDED FOR DUAL-BOOTING** + +**!!Notice!!**: These builds come with A/B OTA Update support, and might not work in Live mode. Only supported installer is the Bootable USB install method we include in the .iso. + +##### Booting into the OS + +(**!!NOTICE FOR BUILDS THAT HIDE GRUB!!**) When the device reboots, it will not show the grub menu by default, and automatically boot into the last known boot mode. In order to show the grub menu, tap shift multiple times while the initial BIOS boot logo is displayed. If done correctly, you will be presented with the Grub menu. If no keys are pressed, the bios boot menu will show a black screen afterwards while Grub is loading the configuration in the background. + +Once the device boots into Grub, the top option or two will be our default mode (some builds offer specific boot options per CPU manufacturer: **Intel Default** or **AMD Default**) boot options. + +While the Debugging modes can be found in the **Other Options** section of the boot menu. + diff --git a/setup_and_configuration/booting-into-lockdown-builds.md b/setup_and_configuration/booting-into-lockdown-builds.md new file mode 100644 index 00000000..d7e121c1 --- /dev/null +++ b/setup_and_configuration/booting-into-lockdown-builds.md @@ -0,0 +1,71 @@ +## Booting into lockdown builds: + +#### Restricted Launcher & POS Builds + +**!!WARNING!! - THESE BUILDS ARE MEANT TO REPLACE YOUR EXISTING OPERATING SYSTEM OR BE INSTALLED ON NEW HARDWARE. THESE ARE NOT INTENDED FOR DUAL-BOOTING** + +**!!Notice!!**: These builds come with A/B OTA Update support, and might not work in Live mode. Only supported installer is the Bootable USB install method we include in the .iso. + +##### Booting into the OS + +(**!!NOTICE FOR BUILDS THAT HIDE GRUB!!**) When the device reboots, it will not show the grub menu by default, and automatically boot into the last known boot mode. In order to show the grub menu, tap shift multiple times while the initial BIOS boot logo is displayed. If done correctly, you will be presented with the Grub menu. If no keys are pressed, the bios boot menu will show a black screen afterwards while Grub is loading the configuration in the background. + +(**!!PLEASE NOTE!!**): Only Admin mode will have access to the Android notification stack, navigation options, status bar, etc. In some builds, lockdown mode removes all these functions at the system level for redundancy and added security. +The options used to configure those restrictions can be overridden with the following options: + + - Navigation: + Disables the system navigation gestures + options: true, false + + ```FORCE_DISABLE_NAVIGATION=*``` + + - Navigation Gesture Handle: + Disables the gestural navigation handle + options: true, false + + ```FORCE_DISABLE_NAV_HANDLE=*``` + + - Navigation Taskbar (only on large-screen devices): + Disables SystemUI Taskbar (not Launcher3) + options: true, false + + ```FORCE_DISABLE_NAV_TASKBAR=*``` + + - Statusbar: + Disabled the statusbar at the top of the screen (does not disable Launcher3s gesture to show notification drawer) + options: true, false + + ```FORCE_DISABLE_STATUSBAR=*``` + +#### Restricted Launcher Setup + +(**!!NOTICE FOR INITIAL SETUP!!**) We recommend disconnecting all but the primary display when starting up the OS. Once setup is complete, you can connect any displays and continue testing and operation. + +Once the device boots into Grub, the top option or two will be our locked down mode (**Intel Default** or **AMD Default**) + +While the Admin modes can be found in the **Other Options** section of the boot menu. + +The **Restricted Launcher & POS builds** will initially require setup through Admin mode. So after install, you will want to reboot, the tap the shift key until the Grub menu shows. From there, select **Other Options** > and select one of the Admin options from there. + +Once booted, you should setup the devices wifi/network. Afterwards, you will want to tap on the Sprocket icon at the top right, and navigate to the Security tab, and tap on **Change Password**. + +After setting the admin password, we can select the default features we want available in Lockdown mode, and navigate back to the Restricted Launcher page, and configure your Appearance, Apps and System options. + +**Appearance**: Allows you to set the default positions/placement of the on-screen logo overlay and settings button overlay + +**Apps**: Allows you to set your whitelisted apps up, you can also set what whitelisted apps you want to auto-launch per-display. + +**System**: Allows you to change options for default screen timeout and on-screen keyboard display + +Once setup is complete, we can then back out and test our lockdown settings by hitting the Lock icon at the top right of the home screen, or reboot the device, and select the top boot option (some builds offer specific boot options per CPU manufacturer: **Intel Default** or **AMD Default**) to enter Lockdown mode. + +#### Kiosk Launcher Setup + +By default, the Bliss Kiosk Launcher UI will have two modes, Lockdown and Admin modes. + +To configure the launcher, we want to start off by booting onto Admin mode. Then we cna start the Kiosk Launcher and configure it from there. The default password for the kiosk launcher settings is `123`. + +Please see [BlissKioskLauncher](../applications/BlissKioskLauncher/BlissKioskLauncher.md) for further details on the launchers usage. + + + diff --git a/configuration/index.yml b/setup_and_configuration/index.yml similarity index 100% rename from configuration/index.yml rename to setup_and_configuration/index.yml diff --git a/static/Bliss-Bass_logo.png b/static/Bliss-Bass_logo.png new file mode 100644 index 00000000..30911670 Binary files /dev/null and b/static/Bliss-Bass_logo.png differ diff --git a/static/bliss-bass-logo-banner.png b/static/bliss-bass-logo-banner.png new file mode 100644 index 00000000..f4f9540e Binary files /dev/null and b/static/bliss-bass-logo-banner.png differ diff --git a/static/blissos.png b/static/blissos.png deleted file mode 100644 index 2543fac8..00000000 Binary files a/static/blissos.png and /dev/null differ