From f8c68aa2ce79ee5e3902b1f3dd5c3b119165aebb Mon Sep 17 00:00:00 2001 From: electrikjesus Date: Wed, 17 Jan 2024 21:37:59 +0000 Subject: [PATCH] deploy: d5fd1956717421ad939f3e66b3aa70853b4554ae --- 404.html | 4 ++-- announcement-bliss-os-go/index.html | 4 ++-- archive/index.html | 4 ++-- asob-q2-2023/index.html | 4 ++-- asob-q3-2023-2024/index.html | 6 +++--- ...ZENITH-0c69d500cecf943295f5db8d4360e9d1.png | Bin 0 -> 538440 bytes assets/js/295317aa.246bb0b9.js | 1 - assets/js/295317aa.5494a8c9.js | 1 + assets/js/2e801cce.97ac8e53.js | 1 + assets/js/2e801cce.d3fa65fa.js | 1 - assets/js/fe9e6c3d.0c59ca78.js | 1 - assets/js/fe9e6c3d.18cdd063.js | 1 + ...in.b68bff2d.js => runtime~main.eaac3a27.js} | 2 +- atom.xml | 2 +- bliss-168/index.html | 4 ++-- bliss-os-linux-hybrid-preview/index.html | 4 ++-- bliss-updates-1123/index.html | 4 ++-- index.html | 6 +++--- markdown-page/index.html | 4 ++-- pilot-eidu-and-bliss-os-go/index.html | 4 ++-- rss.xml | 2 +- tags/android-generic/index.html | 6 +++--- tags/android-go/index.html | 4 ++-- tags/android-linux/index.html | 4 ++-- tags/android/index.html | 4 ++-- tags/bliss-x-86/index.html | 6 +++--- tags/blissos/index.html | 6 +++--- tags/blissoslinux/index.html | 4 ++-- tags/eidu/index.html | 4 ++-- tags/hybrid/index.html | 4 ++-- tags/index.html | 4 ++-- tags/linux/index.html | 4 ++-- tags/lmodroid/index.html | 4 ++-- what-can-open-source-do-for-you/index.html | 4 ++-- 34 files changed, 59 insertions(+), 59 deletions(-) create mode 100644 assets/images/BLISS-OS_ZENITH-0c69d500cecf943295f5db8d4360e9d1.png delete mode 100644 assets/js/295317aa.246bb0b9.js create mode 100644 assets/js/295317aa.5494a8c9.js create mode 100644 assets/js/2e801cce.97ac8e53.js delete mode 100644 assets/js/2e801cce.d3fa65fa.js delete mode 100644 assets/js/fe9e6c3d.0c59ca78.js create mode 100644 assets/js/fe9e6c3d.18cdd063.js rename assets/js/{runtime~main.b68bff2d.js => runtime~main.eaac3a27.js} (96%) diff --git a/404.html b/404.html index 1769d57..13ef0a3 100644 --- a/404.html +++ b/404.html @@ -13,13 +13,13 @@ - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/announcement-bliss-os-go/index.html b/announcement-bliss-os-go/index.html index 5397e2a..7eacbed 100644 --- a/announcement-bliss-os-go/index.html +++ b/announcement-bliss-os-go/index.html @@ -13,14 +13,14 @@ - +
Skip to main content

[announcement] Bliss OS Go preview

· 2 min read
Jon West

alt text

[Announcement] Bliss OS Go (Preview Release)

Bliss OS Go is a new variation of Bliss OS that is designed to run on low-end devices. It is based on Android Go, which is a version of Android that is optimized for devices with limited resources. Bliss OS Go includes a number of features that are designed to improve performance, battery life and usability on low-end devices, such as:

  • A lower-spec config for recents
  • A lower-spec config for task management
  • Expanded configuration options
  • And much more

Bliss OS Go is currently in release for a number of low-end devices, including:

  • Intel Atom devices
  • Intel Celeron N/M devices
  • Intel Pentium devices
  • AMD APU/CPUs

If you have a low-end device and you are looking for a new operating system that will improve performance and battery life, then Bliss OS Go is a great option.

Here are some additional details about the features of Bliss OS Go:

  • Lower-spec configs for recents and task management: These configs reduce the amount of resources that are used by the recents and task management apps, which can improve performance and battery life.
  • Expanded LMKD configuration: LMKD is a Linux kernel module that can be used to improve performance and battery life by limiting the number of interrupts that are generated by hardware devices. The expanded LMKD configuration in Bliss OS Go makes it easier to tune LMKD for optimal performance and battery life.
  • Rotation/orientation configuration options through Grub: Rotation/orientation configuration options can also be accessed through Grub. This makes it easy to change the rotation and orientation of the Bliss OS Go display without having to reflash the image.

More Info

Warning, due to the low-spec nature of the devices we are targeting with these builds, we do not include native-bridge by default on Bliss OS Go builds.

Downloads can be found on Sourceforge: https://sourceforge.net/projects/blissos-dev/files/BlissOS-Go/FOSS/20230519/

Configuration documentation for some of the features found in Bliss OS Go can be found on our docs site: https://docs.blissos.org/configuration/configuration-through-command-line-parameters/

- + \ No newline at end of file diff --git a/archive/index.html b/archive/index.html index 185a2b4..93eba64 100644 --- a/archive/index.html +++ b/archive/index.html @@ -13,13 +13,13 @@ - +
Skip to main content
- + \ No newline at end of file diff --git a/asob-q2-2023/index.html b/asob-q2-2023/index.html index bbc2cb2..5e1c71d 100644 --- a/asob-q2-2023/index.html +++ b/asob-q2-2023/index.html @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@
Skip to main content

A State of Bliss : A Blissful Return - 2nd Quarter 2023

· 15 min read
Jon West
HMTheBoy154

alt text

The last couple months have been pretty busy at Bliss. Since January/February, we’ve been able to get a lot of work done on many different fronts. With my return to Bliss, we’ve started a collaborative contract development and consulting firm named Bliss Co-Labs, and have been working on a few client projects. Without letting the open-source side of things skip a beat, we’ve also been busy making changes and working on quite a few new updates and projects. So we think it’s about time to at least announce a few of the changes we have in store, as well as a few announcements for new projects or major project updates.

Updates

Let’s start with the release updates first. HMTheBoy154 has been busy pushing out some truly amazing innovations for Bliss OS, bringing the platform to support many more devices, and expanding its configurable layers past the graphics stack, and into many others. He has this to say about what has been going on recently:

Ever since Jon joined Esper, I’ve decided to continue his work. If you join our Telegram group, you’ll notice that a lot has changed since the last releases like Bliss OS 14.3 or 15.1. In this post, let’s take a look at what’s new in these versions.

Bliss OS v14.10 Release

alt text

Compared to 14.3, the new Bliss OS 14.10 has improved a lot. Although there are some features that I have to remove for example the long iso name to explain what's inside the build or Gearlock (while it is a really good recovery solution for Android-x86, I still decided to remove it because it need to be rewritten), I've been putting a lot of changes into it, some of them were on my old ProjectSakura-x86 builds. Also, please remember that most of these are also available in Bliss OS 15.8 builds and more on that later.

Here are the new changes :

  • Taskbar apps like farmerbb's Taskbar or axel358's Smart Dock are being updated to the latest.
  • Kernel has been updated to 5.15.x, this is the same kernel I use on PS-x86 but now with more optimization & hardware support. Also mgLRU, eBPF, DMA-BUF Heap, etc are all being enabled.
  • ESDFS is being used to bind mount apps' data just like ChromeOS, this is to fix apps that can't be able to read data or obb on Bliss, causing it to crash.
  • Using Intel's Bluetooth HAL, with some changes from Android-x86 to support more Bluetooth cards than just Intel one.
  • You can now make a list like modprobe.conf at /data/vendor/modules.options or /data/vendor/modules.blocklist if you want to blacklist a module.
  • Bliss can now show the device information just like the old Bliss OS 11 or Android-x86.
  • virt_wifi is now disabled by default, you can still use it with VIRT_WIFI=1
  • If you are using a tablet or convertible laptops that have an accelerometer, our iio sensors can now be able to rotate the screen.
  • PGO optimization for art. This is a feature by Intel to enhance VM workload performance, you can read about it here.
  • AutoFast JNI, this is also another feature by Intel to improve performance on Android running in x86 hardware .
  • zram is enabled by default with zstd compression.
  • aptX & aptX HD Bluetooth codecs support using Android 13's encoders. Bliss is the first Android build on x86 hardware to get this publicly.
  • toybox is being upstreamed with additional tools such as eject or rfkill. Also, we've included usb.ids and pci.ids for lsusb & lspci so you can check the USB or PCI devices name.
  • If you want to mount all of your partitions into Bliss, add INTERNAL_MOUNT=1 into the cmdline.
  • If you want to try AOSP's experimental "PC Mode", add PC_MODE=1 into the cmdline and try.
  • If you want your Bliss OS build to be recognized as a Google Play Games for PC image, add HPE=1 into the cmdline and reset Play Store.
  • You can now force your mouse click as touch, this is to help fixing apps that only use touch input only.
  • Mouse acceleration can be disabled ,also scroll wheel too.
  • Night Light is now available.
  • BoringDroid is back.
  • For media, while using OMX.ffmpeg codecs as usual, I also provide Codec2 implementation of ffmpeg codecs, made by Micheal Goffioul. Alongside with that, new VAAPI drivers for newer Intel iGPU & other hardware is also being built to support hardware acceleration decoder. I also include a lot of parameters that you can use to get the best result from Bliss OS, you can find it at our Docs.
  • For graphics, our graphics stack is being improved significantly compared to the previous builds, not only that, like media, we provide a lot of options through parameters too. You can see some of our changes here like :
    • Vulkan is now being enabled by default. VULKAN=1 is dead, long live VULKAN=1.
    • Mesa is being updated to latest version (23.1) with LLVM16 for AMDGPUs.
    • Also in Mesa we've activated xmlconfig, with this you can create custom configuration for apps & games related to graphics like spoofing GPUs name & vendor. We will update more information in our Docs soon.
    • While we include a lot of Gralloc & HWC options and we pick the best one depending on what GPU Bliss is running. So if you don't want to play with any of this, you can just be sure that you are running the best one that is being tested by us & the community.
    • For minigbm (and all the different variations that we have), you can switch to Gralloc4 with GRALLOC4_MINIGBM=1 parameter.
    • You can force OpenGLES version with FORCE_GLES=<version> parameter.
    • For software rendering solutions, not only we are using Swiftshader, but also SwANGLE. A combination of ANGLE EGL driver & SwiftShader Vulkan made by Google. SwANGLE is already being used on Android 13 but we've backported it.

And for the first time, Bliss is using the new KernelSU for root solution. Not only that, Bliss OS is the first x86_64 Android build ever to integrate KernelSU into it.

alt text

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

Bliss OS v15.8 Release

alt text

Bliss OS 15.8 has a different starting point than Bliss OS 15.1. Firstly, Bliss OS 15.8 is based on Android 12L unlike 15.1 which uses Android 12. Second, Bliss OS 15.8 common tree (device/generic/common) is based on my 14.10 tree with a few patches instead of using 15.1 one. Which is why I said that most of the new features from 14.10 are also available on 15.8. All the changes you see in 14.10 are also in this version, but with Android 12L instead.

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

The return of Bliss OS Surface Builds

alt text

For Bliss OS, Surface Builds used to be a thing in Bliss OS 11 days with a few builds available. Now we’re happy to announce that we’re bringing back the build with a newer kernel (5.15) using patches from linux-surface and using the latest ipts/ithc kernel driver as well as iptsd daemon to support touchscreen.

*NOTE : Not every Microsoft Surface device has to install surface build to make it work, some can just use generic builds, please check our Documentation for more info.*

Releases

HMTheBoy154 has been working on a super secret project for Bliss, and we are happy to announce the initial beta release of Bliss OS v16.6 (Android 13) for x86_64v2 PC’s, laptops, tablets, etc. Check the release notes for that below.

Bliss OS v16 Beta Release

alt text

Yes, you heard that right. Today I'm happy to announce the first public beta build of Bliss OS 16. The development has already started since October 2022 and I've been working together with not only Android-x86 members & contributors, but also with BlissROMs members and we've made a lot of progress since then. We even work with the LibreMobileOS team to fix some issues like freeform.

Currently BlissOS 16 is on 16.7 to match with the version on BlissROMs. While it’s still on Beta stage, we can't wait to release our new images so you can experience them.

New Bliss OS Logo Announcement

With the Bliss OS 16 announcement, Designer XelXen (aka WildWaze) has also been working with us on a redesigned logo for this and future releases. Not only that, he also included some new wallpapers for us to match with this new design elements.

“The new logo of BlissOS depicts a human figure standing in between petals of lotus, representing the transparency and diversity of the operating system. The figure also holds a perfectly shaped lotus flower, which is the emblem of BlissLabs and perfection.”
Logo 1Logo 2
alt textalt text
Wallpaper 1Wallpaper 2
alt textalt text
Wallpaper 3Wallpaper 4
alt textalt text

Android-Generic Project Manager Release

We are excited to announce the release of Android-Generic Project Manager (AGPM), a tool that makes it easier to build and configure AOSP based projects. AGPM provides a number of features that can help you save time and effort, including:

  • Automatic repo init: AGPM can automatically initialize a new AOSP project or update an existing one.
  • Python virtualenv support: AGPM can wrap your project in a Python virtualenv, which allows you to install packages and run scripts without affecting the rest of your system (quite handy when you are using a shared server over ssh and do not have root access for installing packages).
  • Check Project Status: AGPM can check a project folders repos against the manifest, and it will build a list of any repos with uncommitted changes, or if the repos are not pushed yet.
  • Option to push changes: Depending on what Update Checking finds, you can push your updates to the repos found to be behind
  • Common Tools: Create New, Update, Delete, etc.

Screenshots:

alt text

(Main Menu window: Zenity mode)

alt text

(Check Project Status results: Zenity mode)

Compatibility:

AGPM is designed to be flexible and extensible, so you can add your own project configurations and features. Currently, we support the following projects:

  • AOSP
  • Bliss ROM
  • Lineage OS
  • Bliss OS

We have a planned features list a mile long, and we are always working to add support for more projects. If you have any feedback or suggestions, please feel free to open an issue on the AGPM GitHub repository.

We hope you find AGPM to be a useful tool for building and configuring AOSP based projects.

Android-Generic Project (v2023) Release

We are excited to announce the release of Android-Generic Project (v2023), a major update that brings many new features and improvements.

Key Features

  • Support for multiple targets: AG v2023 can now be used to build images for a variety of targets, including Android phones, tablets, Raspberry Pi, emulators, TVs, and PCs. As usual, we start things out with the PC target, and let that act as an example for the rest.
  • Target-based system: AG v2023 uses a new target-based system that makes it easier to build images for specific targets.
  • Target variants: AG v2023 now supports target variants, which allow you to build images with different configurations for different targets. This system is used to have separate base structures for targets. So for the PC builds (target), we will have the variants: Android-x86 base, Bliss OS base, Bliss OS Go, etc.
  • Conditions for menu items: AG v2023 allows you to use conditions to control the availability of menu items. This makes it possible to create more complex and flexible menus.
  • Addon templates: AG v2023 includes addon templates that you can use to create your own addons. Addons are a great way to extend the functionality of AG.
  • Public and private addons: AG v2023 supports both public and private addons. Public addons are available to everyone, while private addons are only available to a select group of users.

Updates

In addition to the new features listed above, AG v2023 also includes a number of updates and improvements. These include:

  • Updates to the easy-menu system for more dynamic menu options.
  • A new targets based system.
  • The ability to add target variants.
  • The ability to lock the process with conditions per option.
  • Updated api-32 support.
  • Added api-33 support.
  • Reworked manifest structure to include in targets.
  • Added addon template for contributors to use to create their own addons.
  • Added Targets template for contributors to use to create their own targets.
  • Reworked open/private addon structure and added new addons.

Generic/PC Addons

The following new addons have been added for generic/PC targets:

  • Configurable battery stats addon
  • Rotation/orientation configuration options through Grub
  • Expanded LMKD configuration addon
  • LMKD tuning options through Grub
  • Memory tuning options through Grub
  • Performance tuning options through Grub

Licensed Addons

The following new addons have been added for licensed targets:

  • Recents tuning addon
  • Addons for locking various features
  • Customizing new user functions addon
  • Configuring packages on boot (hide/disable/unhide/enable)
  • Addon for locking the ability for the user to change settings

Special Requests? contact us

We hope you enjoy these new features and improvements!

Bliss Broad Apparatus Support System (Bliss-Bass)

(Automated Vendor Customization Layer for Bliss OS / Bliss OS Go)

Bliss Broad Apparatus Support System (Bliss-Bass) is an automated vendor customization layer for Bliss OS / Bliss OS Go (and eventually BlissROM). It is a toolkit that can be used to help with rebranding, customizations, and app changes for Bliss OS based builds. The toolkit comes with a variety of functions, including:

  • An autopatch function that applies all required changes to the Bliss OS build.
  • The ability to define custom sets of changes to be applied before customization.
  • Integration with AOSP's build system, which allows a variety of tools to be accessed before the lunch process starts.
  • The ability to display a customization menu from the pre-lunch hook, using either dialog or zenity, depending on whether or not a GUI is detected.

The Bliss-Bass toolkit is designed to make it easier for users and companies to start off using Bliss for their products. By automating many of the tasks involved in rebranding and customization, Bliss-Bass can save time and energy, allowing users or engineers to focus on the creative parts of the process.

Here are some additional details about the autopatch function:

  • The autopatch function is available from the command line using ‘check_patchsets’ or through the menu.
  • The autopatch function can be used to apply a variety of changes to the Bliss OS build, including changes to the kernel, bootloader, system image, and vendor image.
  • The autopatch function can be used to define custom sets of changes to be applied. This can be useful for organizations that need to make specific changes to Bliss OS for their own products.

Just like some of our other toolkits, this project integrates itself into AOSP’s build system and allows a variety of tools to be accessed before the lunch process starts:

alt text

And when you trigger the customization menu to display from the pre-lunch hook, it can use ‘dialog’ if there is no display or GUI detected:

alt text

Or zenity, to display the menu options if it does detect a GUI:

alt text

Further development is being made to add even more options and tools to Bliss-Bass. The project is open source and available on GitHub at https://github.com/BlissRoms-x86/platform_vendor_branding.

Bliss OS Linux Hybrid Preview

(Bliss OS Go edition)

alt text

Read More in last weeks release post: Bliss OS Linux Hybrid Preview

New Collaborations

LibreMobileOS

alt text

We are excited to announce our collaboration with LibreMobileOS, a project that develops and promotes privacy-focused mobile operating systems. As part of this collaboration, we have been working with LibreMobileOS to develop LMODroid-x86, a version of their operating system that is designed to run on x86-based tablets and PCs.

LMODroid-x86 was created using Android-Generic Project v2023, a free and open-source prototyping toolkit used to create x86 based Android projects, and other targets. The operating system will be pre-installed with a variety of privacy-focused applications, including a web browser, desktop mode, digital wellbeing (coming soon), and file manager.

We believe that LMODroid-x86 will be a valuable addition to the LibreMobileOS ecosystem. The operating system will provide users with a privacy-focused alternative to the major mobile operating systems, and it will help to promote the use of open-source software. We would like to thank LibreMobileOS for their collaboration on this project. We are excited to work with them to develop LMODroid-x86 and to help make it available to users around the world.

We would also like to thank HMTheBoy154 for their contributions to this project. Their hard work and dedication has been essential to the success of the project.

We are confident that LMODroid-x86 will be a valuable resource for users who are looking for a privacy-focused and secure mobile operating system. We look forward to sharing more information about the project in the coming months.

- + \ No newline at end of file diff --git a/asob-q3-2023-2024/index.html b/asob-q3-2023-2024/index.html index 3d68d41..3a3bccc 100644 --- a/asob-q3-2023-2024/index.html +++ b/asob-q3-2023-2024/index.html @@ -13,14 +13,14 @@ - +
-
Skip to main content

A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)

· 7 min read
Jon West
HMTheBoy154

alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ +

A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)

· 7 min read
Jon West
HMTheBoy154

alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

alt text

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ BlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6

Other updates

  • A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to @Kethen (again).
  • alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues.
  • sof-firmware from Intel is being included to support more audio hardware.
  • All builds are now using Mesa 23.3.3
  • Some fixes to the sensors HAL (thanks to @Kethen again)
  • Fixed an issue that desktop Nvidia GPUs with nouveau can’t be able to get into the GUI.
  • Support KeeTouch touchscreens.
  • Rotation quirks for Chuwi Ubook X 2023
  • Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS.
  • Users can now fix their audio issues after install by putting their hardware’s alsa state definitions in /data/vendor/alsa/<hardware>.state
  • Updated KernelSU to latest version.
  • Virtual Console is back, you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add androidboot.enable_console=1 to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering.
  • Some tweaks for BlissOS Go taken from GloDroid Project .
  • You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from LMODroid .
  • AutoFast JNI is now available on BlissOS 16.
  • BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu
- + \ No newline at end of file diff --git a/assets/images/BLISS-OS_ZENITH-0c69d500cecf943295f5db8d4360e9d1.png b/assets/images/BLISS-OS_ZENITH-0c69d500cecf943295f5db8d4360e9d1.png new file mode 100644 index 0000000000000000000000000000000000000000..6f1e0a19233e6cafb97945dcad3750225f0903a0 GIT binary patch literal 538440 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%0D{K6$m{|!!7fp3|Dfw-q9;% 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 z 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

j7n=^X;oV?h5|bSxHqBo2t*W7ydVO;Dooc+niB zKOWbg9LprWFh1B0WVelk!sMJvhQPKV>g*tNcw|HXER9B}K${cT8N_dx_@E2%It+!6 zcgQ#n8)`3Fk<q6T=!Ekut8?PW-v4#x7{%yB{z=ioEWb?hNz% z^7+p`Yjw0aPeC{%7cgwrWLGS-o7Wb#D!*8GbM9f6OdbwYLp*o;G}ON$x6xOGooY zVgWqFK5MoM!dfcv7F6_v7W5=WIE;PbwVV5wtv_z$t=UNPJ$^NQs$ex3$r~xGw#d2A ztt)%5lmE7=v!(#R=4d30vg}z zDQ=_DWgj%7#n%7+Zl3p?N&B4g(`%6r&EAN@L?}8ruq=4EavADc8I^gNvDUdi3seui`jCUuf>y5d~dy zmo}{d)kuS3AH0h?uYwgmI+h`p%fD*_YY>cHk$xF5dsZ083>NQATD~q){cVmy8af>=QY=_~&YsMiasviZw9w z=126vj-^8EdUz)ZyC@!r9wlc5Q2(`BhR7@utw%pS=6D2ytcSBvUAdGXZelAp4brCn zb1>bN&9AysRniWHw+ohcZ2dRoL#a3|wNkS~pr}bIP%-2;3yUNtsCY1Cogp^k^_t#3 z1E)zej8XsVdCktyjtvLKTi@zG#e?$4(fvvTz#E+@(m_P--HuNJL~)!OM`C;nK=7J{ z?)6dishnsWahQ>{^2b$U+BolQ*KC|L+p8!u)MR!m={pOpWN&5>g**)NF5{F2| zrB4!=VJ$c?W6bd@G{|qJz9;3D<8I~0iyv?PgiHOF0vsVe=@24-2+D+F1G>O_5zDJA z1Yw&}Am8s2O;p&QfiHhMdCQtZy)z)~x@ij`z_*`gSkb}XlR>#kKq^4gOW}6`&dPAW zQE0pqN;=ypelKXugo6Jt^t`pTcl`Da5UTT17$mOJz?z}9PnK-_1k({KWv zgE8VBkk{LX%g2^5o{mebd7b@(9*^VuyGkGH8*fy%{bMj@hA(<*t;5PqP4m(GSgDdV zWV=517;f+L%pwy))9AX>c_b6b`uns5;~&C|!(k>@WsRe?5gR7<_zs99@$bgnIpAe$ z3KRPdYN)Q)_6PoL*47I%pJF|FBVC&g=16u9QX1QGg3QkgeEr1wYn$i%V|U6RC#3YPj32kVU*@0uclng`TuMy6z)2dWRZM$x9sJT)gB(}` zC0n7sNm#EX2RcWL1k_w7_V=v1suR(kZi+Vvt_R^XPm0G;4g|@MfIAO|5=v*qx>|?z zO|?vr44*wEb>liyWgEA*uC=#_TnlAz&b2e-;9dz!QM$6ns6T z!#~svkU^?upW;1yPxcpB&=37{ZlD)sBmXB2BHTS>u=C{k`C(XWH?2u;1oLt0j6wUN z^jS1MTl_|#0M@(uF%uJi=-mPJk>cgUG8Wl?-<^n;+%~%h3$+(yM+6^dl+%w7_X&Om zEc{softoz7Pu~kdEp{F39b_MNG$K?5iZF?mNEa z-{_S^cZ0K(0ipKygX4k<3`)Bvkhc(h#J$0#UqKA$V@>t{XlnC^0AFt6%u;Xz&IGOC zL9X|fGHMQ)Xk3Qx9clzwf;wCn`Y#>3*01HjGD1Mm6X)%X_>%MIX6=tHrw0U*KQi^b z#g{YT|6cqhgcklh84L)^wU{Y25QoxbUYrAb1`guLRYp&G`A75CqZbZLvi0&g;84J! z1I4J|%%;C`y_l2;e6X2GZp8=jp;@Fm@G*)V58@>8c-!T1=kG9!E7;#J;s#W1XLQQo zt7RH-t#uBt^n>l9dl#pyQ^gUdN^hVr=5GT3=>NdrG5{pl{tD$i~$J;i3I?jz5>x8K>aMGOD1nSXaMydgxu- zS;khA*A&f#jzu6mLsE%%S884bcR+(NLgC>Z$V|V1;}@TG1We6~aNI5&@{~jX5Wz-j zhQZ2QV1}_c0e9W0@623NV62@sVzO|2D!1=eYuYiK zeMnPPAE(ie;c2?ncZjn0X?9)f>0v!$6R0%YD9Eg0aAZI7VVG7*m zlVcvA%bba73wo1#(5Uij*1FLII*{3)BefH?5>E57jf5*HghFPbSCLb)@xtFVtNHXB z-FHF>K<=U2kBH8hCOL$55k;O6OzNcwyJ|>9W$hGl0LT5Q>E98`1PW- zPt^A`E^Y-HShw0J@%25O-L>7HOR}7!>!XSKy)hQ`qu~qJhnqslAGrh)?{TYqZr$$I zHWyCXe}xn=Pq!aEctr7x{R^KtsQE3cQ2!Nb#z&j;A+9-w50l8=}{0l{XR3ou~?*s!A_9H?m405sS=t z94ACYXVC=~vGKj&Fg?Gz9}#mBPCM-{dh)Gr_?acxCnZ3_bAUQ9P&o{i!2RqE$#ZP4 z299R3-~QP!{+a2;!X9Z@jJgA23D6 z(wiLT=0{oXkk%SnFT4Ur^n8o8v&_596NIYvb!uHF$39#Bfhbmnn0?eP?I+8gFOq2_ zmCem5D4!OxP4z^RWH-g=$LMfjtvgolbRE>vahWS2k#IXr&Uw^5Qtr~7Sot8`hPOhK zJ11lAXllFuE^doW(&W;n>9~6@Nx=F`c}bmjBA4ZIIHXRKw5;oz^MLbd-M=;9)#EP{ zi5vOLpx&j}Ec&gu7C;n`lN2c8kre`-h}eC`h{B0MbvuVv-!{9|hA=YBo7vUVgebO{ zz$84sYryUVwjzkp#8(8iihp^X|@PV=f8s`HNh z2DK9VWaKb;71N64(Rb7j%&$d#&Kyl#3kV;U3s>1r zh=OOFuK@>mzH@dkYPX5cZcHcyMtD9L1AFfYiOZ1ENQeED(4!qc&%3j*1^obK%EZ)s zpS-o$(^}E9=n|4BK3hoMX*HAL7s%5SOh=69DMHB8@0l<@#UwW$^m-eIA=akE6vzwm z-wP?pj6E_wZ+&A***|bKJ28h8m~=-srXZrEsXfECzJeiqo{@C!Pd-8K$sQl@3?=m3 z^%PTK_9Xk7N3e47Yt-&47V-*UCIDUON;}>YL&2J$*r-HGOZ7FwUw9UlRfFpBo(c0jaKM(SIP+xGtzlo_Nj4}PemIb!>s#4C)ox~uT15B;j^clj2$YrU#enUFT+x&|OS(EKo5vC!`#v>2=LP8Tz@8m` zi#{-_h{R;m+|^@&MN%F5ql1k0gV%EYv@SamOj8$1GY-kK&YE+e1YLxFx$<=IK~Fa_ zLx;RS8=lE;eG+PBtkZ)SXcec$Ne8|@O*+hoVA+u$V6|#rR2*?lvRY>-OjVYhVTRMA zSmXUgK}aW_B^zW?C@f{Bru>_=M!CQeCFQ2F(V1}NXxR5-)o8D%WGlKW8i_Np&rB!L z)1q6MfiO9okMF%C#vSnb!N-j$T2a-ElySV~8MfE)E`Mu%aDhEj&e$=41rU;HEB%1I zdbbM+AK(fAa=tYDVHeL+whNLcr(Cq;Lg}nm;0fle{3{FWC>eWzrz-~Xxdm8_AwKr7zVWd&93HQYvCsc)=;4EK(dm*H9}P5eGy<+`drKRM5kFABX8VA#Qf zBZ4`~2X*rfrt@)R2$ooi-0|H~V=41iAUKpohA2 zLtpE6Ej~zo076NnJ&al&w5`JC%UB_k^g@gwVDIi!2=3Mj7MdTRTAwoZbVUf$tHVZ&dryV5 zWo0qSN6=UW+zy3Bq;iue`hR2UZ|6Q>-`PZ7D<0XB6xDhxRt=?3sGim}IG)&eH5><1 zU&@i}3JCKl=^9L&MmOefnb7D2`~Rx{BC$zsjt&NZZMW<3^&J0K?Ci15g}!MmY1CI| zxBy=GX$4Wb;sMkv>mV6MKV83o`|z!|wT&=?v7Gcyv!7DxQKf`1&=(I=i-PjY;Uu6R z``4^}tK*ie65}3f6ms}UeAJ=;KYy?IM;O_kIPS_$I#~r4gy)?P9mh}?`cLK+9}4KO zTZ^2;@ICUHotE)AvgWF)(ekf9r>E^3bi6`))Wzu&gY%i}%uRPqs)G5yRmr&uC4+g4 z)jtJZvVAGlPSEC@S5;UUc4c8>a=voo`%G!}bx73hu+u`)i4J&uvU@~ElKMSUNL&pN zG{kdrDDclO)yqkE~;nps8yRs*~ zRxZV3d`t*Xpxm}T4>5z?gd0V!oGAo$9;dcDr?zLeJ_ph!NhA{ZN7cJ z!hYGxmiBZ$Pr({djp6j-3x6lc`I(^eGK5CNT*Kk15N7Ke%<~=6{ceLg`X&6MDeD=} zFmGB1fE2-5p;~V7!L);J@Z256pR~1qroyEiC0J=eO>8eW#8Pbj2T>R59<~3jSwlGa zG<|X$?e#h7P~dK71JeXfd+!r@?yWD!K;S+{u_K6?$2)R!&aX+0%ciWj2d#p>Zr59m zhs7*esaj>BrEk8bOs2ymNbjOn0k;G}i}hd5ok{u*0nzLL?+J-RWX%ZytvloM%Y&hi zp5Od?$5+r5tzec2XkNBx=P`Q$4ta*NN{U!G+}W8y%_9H>TglCwLzs)&#I}FCi(#I# z{rr>0j(CAAvr(0@KvXtm5;j1f)Dr+B2F3a73PYae;?TID$*-9>H9MQVLGriv+&$s! z>FIT*kfHSa63jL46!P{PIkb&ivEt;JU@XT;d6$6BAk=XnOy)exf-C*?7H~rs;er}2 zmG9dviU)1I9HY)-QQK-?`XJ#!>i7@LHrMvykhoogn1kP1tg(R{0WdX5JwQT-RPW$U zGK2CPi@4DepXtUsby!gaIV(^dHVUXKxm2jm1+*9F={`iQ+R0->3Cd&@HBpISX8rl# z48Q1?fnSC_KQSiIMDo&(^G2n)QB|2Zm*qx&&#iD)%{67kl$>FXz&$Uv((q$pcZM^2$e3!H2D1$maDa=ynQI0nK2)sgQxRq&Oc&U}b@`S(5aG>eqDQ`mbzCfCAxwxhqFZNr?dtVjgNS1E#ls5ypp$HW8}By)_U>zCyZB+>Rn{Q(DWt zkV%d-(FJ+wh1-AB9nY?INcM|e+0=Za zZ|9qbVyH2G;am}%;nv+(J5Bz`0X$@gEZz=eMU@LAwwn1Aoga9 z?;6k>pP8+;@kTSQE5Gl;u;2D>w9rJxWI0ER3YqgSqZLM1-OW0Qc&)@9JL&9 zWsmb}KX?Jxr5HG2hT|n{XGCPlG0oAY^S&Bc#0d00Gt9iTT$*9#72Juq>!P+9InI;l zWi5acxqk9J7G_TCypxAyVCne831A$Dzzsd=U=?U(DVIsQucY{n@_kc(Lph%k6(|9f zroGxOdzvef@6HmHQJ42jjuf-FBc|<0TWAw;N8yw0b zMf#uBkVKGD){vJ9FUWZFkgR-0e#P@v{m~SH{K{21S%dBRo%&rID}L}ezjt8VE6wkV61;jLY&xuKspf>j$B^kG7)Xy@CD&v-Y7+Zyqx-;H_SULJU?r@J5js4Eh( zS$*$vFxfZ%)JOl)W`zz|4az$3U1)Gi3do9EJJE{%r1mnmQ-~!TSqm3-1}3rfp8>x3 z577re3V(Mq(7!6KmfBG;q}wD7PhWm=_JOX@?K#|;ML9jPdK-u@0cJw(XDf`GtK@6d z+Epj1(B*KT-|Pjwn>}P)*Wn&&`0&KbE9~TfKqS;9TqW%Gu|?3E&KK3wy4K1a(X+{^ z8%_HB;vmA_@Qw|#)>QRmn4h;6T71WUiCu7)o@ebiW1_OwPi^1DVc$#wQG10g@+$5< zbvCEsgunHUY!%TOjzLcxha+gF(FD?l!zXOZt}{-FRt%P zC?P0PKFC)uHg{O8jJ6_@M@cl1xm!$g zSA=iw@pWUgB$K3iRJN0Ga^2A$5_Mnv`P6>>~ zvZmZtNNftml}_ge@J9DVp;-|&)u)ahV?Q{++9b>SzeJoy`0Tb5O`U+bQ^yh;GFkLO zPZ6HuRrISj{v$&fIKJkvMu+U9IGe^F?1qfO4|6e&?dzA4FFG*sLxSSN79;9#eaCQ!`1z4z3|d&C;0T=lV)xR8D<2P>S!}cA{Kt-{`V0vzsFVjOl%Oq7-Jhs4MEq zn|ZZU=kD;-1y~i#C6zVZ<7aqXxRyZV2n@(c&$JX#sKqD7Ed^qF|M#H5@?4AEsj%4=E2KI+HF(blVkA^BRwKtJD^M~3sMPk?4 zn89?Kn0i87!nxuFR@>=VuZ!sww`1b&WIxypmpd7iW}rtGI${q0^06fpEZku^^8UOh zOs*=k%Ym<^|4cRa6jGi2;hMFxg7b^&Qjr)tn4LwL`>oN3@u#_|#O<>#_JfeT5#(uf zf;#7Ev;h);}l!7uGPy=5)eKtKxcB#l)N8$;WXZ%_>xa($$+>bX%!F9}{ zI7LZPY4H`xie4!jmM1umh^Il=@K-pX5m{gEaX`KVyW=h`l$KQpz^&zW?a^H2C@L7u&^VQ#Nr}DI` zHvh}YZuIsV(XS`um}vxAD1dhkn;o9C#RN`}f}=AZh~~Vnb}8ec^AusF`fsnBug-c7 z8%ocxp0($*O~2IhpyhTneb*R=oO#s{si>s zTipRbMpFR{i^|493@L}>x(~rx%EE)cD|MA{=t><)$MegM|IB|9JDg~B))UM(m-+1u z4Yv;TvyT-$;lgJQ$cs8e!7Zq3oOIK@YX?pp47&17dC9n4cL9g0XGO0MyPho~c)uxYoZfv7UVtISqu#X_H-W@oi}!O$Bjl@y z_#VGy(6Vz_N7{ao;u%u9z)Y`hTY=yzCMP1P zi#g}dW>BsKzoVLgmB-r?A&1Su%_FKr4oR~R@L6ASugI6Gn!%3(X-O(b2J!l+@yN?(EIA;yh_u(!{k@-iuBS+vVC7Xl`)k zozvXrexsZwAucq3?MK8=K9h0qcg-jL>VixNCcN>@p8gc$jb0n~K=6WSw;(nVU>2t$YP=*isQIjAqaZeDR+>2gb4q?IK!nKa1l^y;qg^z-qy?NtI z1*0wR!$i6=ZSO;f+vR*<=B5g~G~dRN=Ucm}7>TuiKiLYr@6Vhx&adx(9UB`R2&;Z* z5R)CLh7_mn)#tpF_};-#ko$3Cb}JBJGG<70PpV!9k(0KNh=qnGCjk8WI%z~|0<6Gp zvaIh|HQ0VvYJmmMP+X$>LW@jW&Wa`8Y8p~KbpD^=?jAU+VX$9(d5!u1`A;XAhi=sX z(@3Y8`fXAtm?_Wp!6QO`&6p!c{rnU2KfRcE}f(l$c!pDUviuk#^p$?Ya|%&v5#+zX85#kG-Xx?fR_@ipe?^Ba6zXk40*a z+m?^Bt8+LL-10Z9-Wt7FMT7*g(F!hmwYHW^jimT={A##6AUL3zyPuqr%3|CO>rn>n z3u2RJo)OurHj>&y!2}*w3BnPIlOcVu8d0^-O`a8AH;N>85CDqc&0|D z*WW`ne7=Q{vpdgdblhPINNi`Cs?nIvHY|o{$aMbHi$Dw;NLlT;x5RHUxFX3}UR7)J z>T9Y>6kq|~(%9WPxnrWH3=L(qx%rKs+gLJ&0EKe?eF*q?X7>68^H4!2n5%{Os}3ae z-J9>Aq1#b`ZqB?RV<*X69&(2UrQl!`heC2P_zluI;i z8Pd={HBbbC-^%j}-xw9!q~L39re&y2sD!DlPpS4C;uH7d=w9%54f*HLCpotMs#Xnies#1-Q=E{@m__D`O zsdao9)h!}+3#SX&Sci_10d9iCt0dS0$xz|uTLe67KQ%k!Jh;8uXMxg4ks6v zcEuAwWeEpd_{Q7+&@Gpn8lnQyN}w;#v4Uu+AS$yf$&DqQ(%d%*uL_G1(e-QJ{XZBj zT-vsAtxEOm1I+QIvD7u#OVEBASS&y|s_Z-DkKJLuTW6VVy*|&k_`}H;;Gn^7O~IxA z&?tKG?-e6#1P_8~_e)7y(4)QWv3zG^52(d~KJ1=c@^KF@iNCcPB;_DcjVhUfxKDWwtzZHQjfa7x61Id4zBJ1s&ItXetUiu(Zfn} zZRep7HYF6YqHcZ$fuegX$K(ebk9T@kJP$o1@4AMeOw)va6h~NCUD=DNs3xaiq30N? z+UY_2x%#RV_N&C5tLTWS^DX2uLe$K?g)EuHk%TY~?(b&}WPLT?p0(_M8&kqMwft(; z4Xff4SoVuHDPYQGlo;>Q_bT(8L!PNdZ+Qr{=xwK&E6dFv7Qev<4l1X=&ISVoC12#m z7b1xm)ME37Asw)nU)@NK+RxoE9DqFSUuSqD0(?Uj6Y!h84>shKaB|)11~cvAyymVB zIC%!Pn^cP{2r*^Kdl{L@nwWD^^kvMIwXye4#Ah*37~D5LIy5q$a;mjR*M-s2zzQ<7 z(WPkEb4v7=$8JoUQaE}yhoZFwZ4oVNXt*m}?m>?EgZv64lurC*EBl8~Iv8F| zK}n0FdrC&2p4)h{#->_|n>a#0V2IE8onE`F7qAPh`FBzsiI$(ViALobhjx}$t{CMi zZknG27{U)lv}FRLyo~6W;;Pu^Vx@!J4jjkpP5e2?eJ&bnJdTrDK5J?${$U?budOWM zbOZXoDI`7B%5&X;s_n5Fb(Tt0KhAEG7MRBSIJ@m+^o)$VJy3~D^ghPb({-G2|CEgR zo}uubAfWv;ap4Hr%TdYEn&J9TacZyCRi_Fix|ymg zTz%Acrls?`l(t#a(-Bn+l&54q@Xp$U{|zIn=>RWKbhyJ&CKlQDutS?gvyw0Chb)=h zp;Ok_Yr>uzRMFak5#jtG0<_u81b=X&R?5Lq0&m6dAx?Wn9U6h7Az8^dz zLCAv_&pH#Qjt#Q4jqHDJlNOp7%ZVF4iNZ@7qY_wG7dD!`dE(&zFE5a6u|bGRtT}Wo zx3zcGif*Zm`u;*^_G?(NT8^A4wxJi|X*d_7f~OR=JD0s0g-$o0#H&>1(k9!ESI?Hy z<{CYCZAHXlPYd4sClHN~7IpZUK9MK;av-1|ar4K8%JVwyniDI&$e(@EI>HrG?}&^* z_2($=Si3Hb*g?_y7?2JcSaPDEFojzub`FY*d~=%Q(={HQ4696y5L#xJ(mO6xW81>i zueYJh@VR%jIVK|n6VL{Jxz>l)l7EAuU;ZOv;Q5~Eb9@P(P+07u?83KKJsv8aIBvUp z*2ZN51v9R2IX&Kp#t_g{a5sA5Xsxd#|Fm7GWh(dp?$~6Fr}iNm$F=xo^~z2F{vk@; zv@2ywXmi#7wCA$Br?tUe*>XbeLrOFgLds*%L^=@f{v(k56P;32!9MB%lEYKh8cQW-Iu_PdOW0pwA z&c_Nr<6znc!uhK!sKaq0;Ku|=f6Sxd4Bb=ZyM6j*obfw{GaNk%vuOPV8pZL$P?e0J z$o8w5`&i0{d(>mO(S&*DmS{b6T{4C{P%F!sZBl&8B1MxaMeBQA16AyebysJ8mQB`S z8YrNXOBozbxIE||(H0tlNpD-sk!$Ctm!Jo+atoY}H8=f7oDmCNcWP7nn3TWvyNF zf)8i8znV;k!3YBSQcAj?G=##$`;ZOSgm#R}$}C9bNpwM5m;0E14&Y6mV2yyuubP}- zf(kY~D9je6ds4^v;vM-r$Z7-+V&BQX(s_QO791%}D3_@aOI`QN1Yt=Pjhrl*b(cOY7<4DwtT71?ZtEH4R_o`>#0{W$x>N&#T+RX*6b0|Lbwe#6ckFQnq zK^s{enZ_QrzjB8lRIe%TCj8%kk=?8n6(SE#Fe;++cjkv?&^eq1ZieLJW7lnWG5M{-84dLJ;e z0=+5`LI!t?=1AjsdmJ5M*^ga$Ls2;0t-SoPCQbLbjod=(rgsmbh8Oc=@AFN*SBB@E$k4_k-iaPxf3Fh%k_b6aq5vil#6h zZtto;8++XJBumfXR5s{8Wvdo~wRgd0-fxrLOicm~!O=O@G5N^hQGtG8w!-AMxe}`!L`<{MT!< z6qTY=h(<-j=r#d={q&-U@|EM1-KK^Mc> zcqQMH9lL)wd9H&4XO@sw!fTQ zbXaHeE7N{qmr}2quJKXKtBi1@@Oc@vtd3d+eJB4!!q?m+YhpMPtx*Wr!eu+2!{Y0> z++mrSww|_n%a{Y;W`D6r`m<~4xa@d7KUeEU$x!+wXI^%=5NjgLC^a5M5g58znw0Px z8>G|#aPmpj0Hn#M0-zw#T{~Qk!OkVsK2H%hKRbu!CB8E&HvlkPgOGqkV_te7EG0hw zwIc%Z=5mHg#F!y;?=`SN=PV6$47Fw`P(q-Jj8BRTLPK(KZwnY4H5C(v=m4#BE366@ z!}O_(61OgHQU*e)*j1y8z>Nxi7X4E<3*F^n){)kw965y_B)ZQFYB3t3(Ti9d4 ze)4XpeH7jQKcmMd^JoSdmmu7%G@pqn)n_gdlb%+UGxoE70MYwy zIYodJL9{V6Z zW9oDdiQV5^?*CxG7eljG%8dLkdn7FTWo@)Y43Lc{OIXi-lsuBd-IHnY}mm>X0K1h-KAfC>CSBMpw`pm z!KeM*>6=@Ex>HLZvJhF&K8FS3lS^B|1;}~ikqlay$Wx+lC=ehBR4YrgpW?pm2!QF) zPL#($UI0K#jX7wI(87I{;S;SUBlLZR^w~++LE2tsgS2YnP22tGKsEJPl!mWZ8S*$9 z?!KN&eEov{FA&;OlU^{;WBl-bT$uzEoEStI)L-i;8=4vjyRb)_dFsTM&BzP&$1dvK z3tluMU01`<#>I3{Ql$Ux%P%x~DE1r7L&xtZFkw8y!7kiq!`!z%Na&iF!g0TzqC7s6(KY*M5 zq!RhH-i6KWVE$QZw_H~4lEYxBWtLN50qMWr{MK*3XSTIn`7$Nkh@u&Kn7kIS88+uB z3)8w>fp5G%KOEDCq$j^Mqq3{tdRV2{?tkwkS&WCW-R`Y00WzNqh^pE0LvP6D^lW(d z1Z@Fpv{-P-qpJn8*>tI`HI3)$L;a1nA>d2BH?orqE70o%B-4{jmdBvX#|y6}@q2MT zeMZ-$#c{NN4g6WNi7PYZ1nSK7*a}A|bnJ55zXt(qzX*{4-REpzD4`JbK|Pe4V$Pg( zu!Il(?S_rscU&<@4Z##q6ieaGJ{F!ehe9!~pHS)`pOp|}J$#a7h&zC< zk0TyO2?Jl`v;Lq3o1Iz%_)g!+o`S=p6jYQ*S#O~{^!b)4D@_j!Nu*ubbApHAUWOPXL%@UJ>6f-|*DcgX^@!=v)>ZD?* zNby%8UWteSap$1`_?D@<52Lo){5Mm2GYZ}0R3!>O%K|1^{qtfVPNZ%6ufP}6B+$4^ zG3h&hhiTFxw;h3sn>d*dc#+ubovv&lqrLcZy*arFo&P9}M=lTk8z#9$UZzNMWd{Ht z)HPOF&hH}ZAWb=Xs%p>p_lED0DU z&N^#$GoL57{KUy~g?*{XmBRoq8ND&6cmfFX_(BvP$G)uQA935z@n63Gvr<2%`>)rn zu$VoMy}E^}qA<12?u-mqaDC7O#w^igF!|Vh3WPAcMc%(@>B32Sd-xf0R~_3dJ)B^i zbfkY_VgCV2_d9HUXXEbZ;9;YZJ4>ssv>U-KZK;sBekHi{9~{COdvt#Y0HiI~b1JK; zK=Vj*lK^|6A&`Kq@YAHwzJ7~-gv{psgv`9VUe}%6gMe@vi1xbCk9xA}0>^eHC{mOd zb6->=&TXO@_N^@@{}1CXv$)i86<*giwS=Gv;0Lm+ol94{wYK8%k3D)v{j?kAozNe; zna;sMH7$V7)pmi`%dFy5b<(D&Yb?ML=3P*!Hz0I85&Y)VNz|J(M8ijd-GoR+Ip8*0 zHjbN}1W4CQ46Hd(W%pl7hpjb-`D~0AI@<2cE=FZl4ZweM`V`}*aDhl2W8IMKF>Vko zt{RN7x7a5EhE?H0lKQf=MEdRCq9C?$UbHS58@kNzPf}Xn;hhnUC6gx&lfQQtRCrvgiQV1|n7z5#acQ#-Zk<$SiU?-M*F+V*LBTC8 z0M>Y>u!-bN>ETj|mP0sa>{s-^I<=ieK9_Ajfc5;`GU9~T{-jn91y;BPlffv&Ug%%W za|m6|flqWbq?PU%iV0Sr&_4!nvZImoL@#tDFUN>*H|wUb%sNXf{AGK_o6GICo7*0# zThU*S_p`Cn>Ei%s-=yu3=Xi9uCiu^a0}WUQJzI2H@wd|Tcy5UbJz41REX)iCLcS2+ z=%=4Q29f^fp)3mO!+fE`9O{%HE<%K8eKa<_(uxgLM~+kSCzP&ot}^5sowQh z`Sj$l)&O_y7a}F~igI>40O5upv(1V5v2EAv0bn^rzZ`(%Ib;FQXB{^H&N_v}wVT?4 z@|)l%Jdt^og6qsfG)KM=4I=F^QD+vrrXht);}EpK1jL~m z`Dkg7?ixVp5QgqzPZOcBa!qkC5UK(n6UM!w^ z`}5PQqk5$4URWDK;y3xHar0h%+#X=Ip8j}cld!(0%(A1MR1G>MYHU3(!~mwFc9Iy! za_!vY0w)C+w`%^9qLDM7Q8u4ZH-PPPM;?4}ti7S}eY1<+Zwg-gErVyzKsSsFU*dG_ z!V---%DPeQD<7qfnnwP;An~&)1<%C|qrt9nmF08-DE%$m{KNoY+A^R3FK#k!d%cIt zK|NHjx1&_g3@~#9K_2LfTXLt6j#-LPrAnKdrSBY2g0R|799y4ZxA?kpqL1 zqV@{oOH*K8dGH@GAvx&88OPl)F6)HB9{!0Orm8H_m(4FnKZzacR_#=U? z4`!|RKn!fYr`N0zM^8%Q^ zaOm?gO@xuKq%!n>RSTvIkxRsmcT^B{_{#WZkgFxXk>P9YUKuj6iF=A}c@ATP#dhNU z=T3&+>guh;fy}iRH;sR?!&xZjA}w<&kdOmirPe0?T5gpR(z|{O;OVPPK;N4y{sV8p zmHg9`B}m??{%YW^UMr*hT-&-s8mfFe76cJUeXuD92(|jVOC_eNvJ?vd&gxm$^Iv*K zVhX2U8u_h^w43&$su(jpE2p&M;B<+r`Fb+qd;2TE5B3fKov#u(V}J&b+#UBqvU|e2 zqhgtX!_(e!L3cT88sL8llhe6}hIb0j>2&!Uuhi%y^YS}hdi_^tM{NR6*SofxRBh!1 z4Kcr4qEvkh!7g{a9r)gR`N1Z$E~tR&sD;yg4IZq!u=Gp099Wej+H;8vKQtwOd_mH+f|<-WsotY$)Yy8LN)<;G;BllJ*U9iW@*&aI3r zXB%UrY~(&x4YIeddU@h?-tVz$G@t|O-l_VNJ<|&7&aab^JW=k*$W0X)YcwJ~ABg|e zEWlnp{kst&-BE}GP&C=#+yzeXJlh=0)`W90uyPunO zi7~a6eKOKB*T=CY+uf6cJ@QNn4r#Q=ws|+)!g6T%;cESxf+aW#3|7c(#>q zV4gSv>}agia|@27&o~&bfS0e0FKwy)Il6Olz1Br`mU~boC6L4*65kmO+j_m{P+!eY z{^`Gks)796EOR2SzOEdr{S%)rU=k;)J+o-?iFigq&66w^nuEWwrk*GtvuL){3Y%){ zlfA+Cr1C^ea?(Yp(#C8&>NGAW{hYZecE|5J0<5<|R|*rz4m#0an~SwG-wPKCPAM^A ze|*w*)gq?tmyWIjo*gK)$8^NX2btr0o>44p&6E4t`rM?`(Ekp7 z_S1~W;io3vM$Gi;2V$)3rlJ#l%*0!SK*HgVuj-Qa(YD-=&OO&?w##oeFKyeSx+PGQ zg_c^n!55?@YQF1amDZwLvBkp9$Zm1li=HTm&;o_lOWf9{g_YGQsc6LK&HORpM(1vu zwlhrVHZ{mjz=szNBc83(<=K{pZX`j!e*0X?;lTUg8lVoK#;3WkX;z#4ve&<+U#p4G zS?g}i9O~;~)w1o)hG}*F7X1D;0DvPY|Dz(>&h9G3y+f}9BN%vtntF=R7Ved5PaCdp zVX6NA5|}`_&d>mH7M-^m^4x?Q8ehh6FL^v&a{U)*^kA=?jUSKIRH>x=lVs^3#@Nr+ zyXq?JCQK%kq-c(TN>{2Qewf{xBlWqa} zhU~T=+shI|l?DpVHhC^(*~4GQZM%f3`fPsu&6W(~hD)C+RoVlO)ja)yoa5T_)kEA^ z9VU>~nw)0=8?W&AECkhj@3oFGcs?`IQXFWn1?kZu5-!v^k_o25n5PPOAL^Xdx^zhQ z5}R(6B-ypEA}(J?`bq*gM56RNhb;{?FlTV$iaKo8IxryG5naV>gXR%T6yGyx_mugz zaDn5o;Uh`2`HUnRd3RT&k%RdtiNn}jw;qlN7dcxoqsn>y?b>)Yr{x_G?x2mBv|cn& z@j&l;yOY84q%5!Q_#^aV!p+0~|~|VM&?&1%B`0sEKn7 zh324q(mg_6wK07{4EI_A0(x~XF3@*VHj|om-NOk*E0x)WUOM%!2N6F`>b{CgWdo@{* zx9DLxhoNns*F7>uUD0%0oecD<(a9AtXF4_@dSCWy{rC@7aXN zGg4@af1N#t>j@YbAhnVl3SGOUzxK{QxpEN+N`KfAVCnzxD4_kJ#X)7(M55lsl2tpK z|85n@c3$aW4DnRDLa*nAStg&<(Q0ZN)o`0u@A(^61^3{>{O=*>CXpsVKxUnmjlpYvr3E?o_tD|I_% z>34j#h7LUvP3aLlbi5-}e}96xn*oGXieSn(u?4ljT11 z#uuJU)f40QF=E_go;O*7wiuA>=-)}9zLDij%X$oAf8T>*GqP`gnvtNNoqz8vs9z0Q zmfhgkVx)=Zk<_3)tB8nU9AOyovHUW@b3w8&RubYi9iV0OG6~?ys-rO~d(UVyoi=2-OVSa2*K!)tO*`Zj7YXdc z%^2RTkIt4n;Y8bXlF57)0k9NXp;E*q@@_qSn~boUcTdBfnMY{L;Wzm7mkPuDBUe+k z^EwmkbHX^tTM~x5`_M}l@Hx#7yfYkm!rfKYCtbU>TZ)-*Ony_}kvRZIvr=T;NN&Mr z`T5f+3<^LTUpzdTuJqy<_VRZpR(Uk`f>JT2Rjo9mOh(fdn9NtG$R-JKxC z{U=Lw3ypi@DSQ*a3fEM$wKh5R^a!`7cb5^U2FbSKL^Mj|n0z?mNPa zY3OUP4&-4g(Kjr*O5Vo8r^;h$RhLsh$gxM7SWc5l!n3mlxQjW{dh$u;k(z}01!Bab z2Dnlc1vOK@MPiFqty6OyqdS?l*(e~DKdsFp##HEX3XB*2M5PX{>x+LTks!!aYWOFl z1{79SzyBD1-~B1d0Al>qjmd66QR83#*srMI%%2xxO-#4N{z~L*Jrr@y?i~yWL3*x6 z$GDT-LJg=x z@D>I2-3T^M#M&OBcL1ZCJQksm)oFwKPN%}ELftYkRI5oFz)8I=ee8GPD6rAvR$270 z!g<1(0BZcb#%%~z3a?`cI|!5<^A|T6i`8KbY%6)xg3tQzBCX6UG1kHYkKo*!`~Tv= zGF)%)Q!Mj}7%gfc_8UFRKRr#pV7QA#^tUY7tu<7}zK>MJPO(mL+BESfXjNXC(?!a4 z&-N#}N6Xao*u!U~PrgVL*S=K{FH17>Eh^j^ED z2qU(}h0;33&UQyHjeLT8J5@9WhA7`2u}>Q*XkxAxXd*|M?_}dTj=H%FCv_2d$^ZbH zdnorr0V=2_LK0DMZqGC8--`+=Y~hVzN`&dR{q19$j2{Exd&!RUPky}x&I~4s<=^z= z<|Xgo5hk2eH6wj3RPG0F5e3n=|Dm$uL~Z&XuZNu}5oDXwQN+hp=0FBDNzbXEUDkJ) z->VeOe6!Rs`4V~*SB25akeB$mjF)9%!lmt8)Vp*9{U(0vDZeL)^Y|8YfYg-?Ofd%_ zczp8e^0lE}_?oV9n^NYZ=NsqhRt&)K0jE3DWHGib|HBB|@3=z~65hCZP37(?o~z%A zh2KEz8`3pS@I?ug%{Qit4osMXO!d++5(I}X;*L0p?cnt+?Mw(tZ0Ov@jscLJIuq5V z03fnAgdziv!xqxw`m9mK%z~uUJu;C!vBWfVsnIbw%gMr|D~;!M^*e>nBr6|z`b?)I zcP8r~*bkePgSOihy>B3a@krh;2Un1xgTB~XL=*P8GI~Lth|s_3h*9GD%ZH1u)W5kO z)SLg;FrrA7jfaUb>@Gs z#2+B0wNJ#rTW%!9=?(a5jSCm1d;Q7%KpeKFP`9LZJ*<`931D*o?pO_bCg1>dQ@?$5 z?H$%}JF8)DKvXRCmdMag*AM1WY&{BqZ^y8Zri4h6~6$>~8YjvI+4;|HlM^ zSId413xUa!$>%X9%OsQX#tlRGo&k=H5isl8vQ760ugeE$p<(xX zQgh$=<+6}NgFF&rX^i!*scvqbMCa^ZO!g>QN>i`;dZ{ISUko@5%pbGpBB~9sV>sAtN|Vcz#oIW9B~y_VTjExnrL(04AaZZ&7c4 zQ`z#)8fO3i2{(*GNayq$3a@LoV(sWBk0FrY-j~CgowTfHAb8pin4Et0pzJ+L20VKn zoamivKoRxXcrH(+I&Ck#+YWRWulqJ;tKBdLL>G8V>~85tdg(`mkV~#ty&Um8iQcyI z0T9IJt?Osk(9tWMwkGPkn>~Md@=fO^pj^eGS0hlr1NauQS92%=!6bf zfxULoA_?)6dNuVcIV|f&N`NUeoI9MgxH6}6ssVRVmROaD%?eA(iM9vxUiIgr$@g9B z{l0!+=%5;K`=sz_b*9t!pt()`uFN#p6tf#b)I`}IeVJ+7@1Z=aJeWQ))(u#l0LU>9 zR+vps)dh#{0u!#Xgm$Ng6@pt6OxN72vS7-zZvg5(nNK>Wo$ETKvHJ7ovegjx;mr;=g$HXuF0f9ivyz6 zX&72u(MGm6QhRjWQ>$CFJhVUKX>aW~b&`%>O2y3+zWI zne*Cz%c+gbD3qD_0Zladi}|TC<|sfp^kdJ)(i9CZ8XH}9gs?=~U{_2c7uC{_vuT|d@{#3&Y}9z7h!7>^{HZ)4%jHIbnMG&PR*x&Sge_Lo6Dkl>*2>QtqEfKuv<6~o zrZoU~^<MVuRxLF-7I&)JF+6M42LF(GpqV3!I#dNb z-CGH0pvb=v)oC!DzZ`H#tr>F3ONxup*P92rY8y&g6k9P!$R~-$F9{d=;iFkp7!^ac z@Up#I(mf-hJQ1e1CNuY8k;E2eNXyt4bB1YsIybc3D@Md3C9L`3wa^B*|QXGju}v%td~)qZn(W3 zM-D2Mn(D$R9#39)pAT`J!9&4#hwDQmYdK-wWYu&wOY_F4T6CCfLKlwqWEFFtft1L@ z55=z%A|&CB_bayF`1el5$ADm+Z<5~NBici;_#FVe^+t+{{AK-QN>{MK z!u8SrIj^R=$?sSq;(fuwjT=OIk5mBv&`!SDb0c-H{*u1!a^C|=w?bN)eU{~Yk~Z7f zkyy9l2`ZIzFRFzb*q$hI%Z?BE7a|d*_i&gBa7Q_P`z=V%WnMX9qQT>OfIIMWqe>ce zFqhGPYu$X-G=7MaRwtDKFT&L0Zy!^=`B$u?-R{0-Do&7EyPU*gNKNi<eSZ=z zKUn%Ii5A2YjAS$d(b6UY&%0^>T)|Jq7m+zuG9v`4Z|KW3uQ_yw=j#It{KaOe*1b4E z*&NktgjXtI0Wkl{Dd=nv8F`(>V)`vx8JdP6ker)`Xmw^J_5}t*nNxRPL{T8Kh92I& zZ;QXoxE_unE@Z}qphF%lt!lRs41PSF4(1Nt<$ZtD?sq#N&+|jScmKFD5>L_wM3SJD zWURAK7}4-h&3w%L+cG38efCK%9ZworJ!v5+aF0T_;WT8?!M>1mDsfTob;*@M%_!2>kQ*E48&)R3!HzJ=;QSzOJB_dRJdGxfW6w4pD z`3KdjGj5;s2p&6rwcN_w1xVz6C3;gpS>EBqq9hlSp#Ub;CO?Ro{;}QsX|}<_RMq)u zon7+n@dBu1;0fy^&haa|T@^+HnT;^VAlS0w)(|y$yI=X7uS6#<0SJ zvxVjtI$gy@MkD#x{(SSizu8{iA91}7{JjiIXv``HoXvVAej!POf@da5?PyJ?DT+PfD->X(B*N zA)6;i@TAPF_$Au7C3Z{x$aqc}4ZZn!%mkNtZEuX+K`*a$5R5BpPf|zmeGjk3 zkAqh2bK=CK{+qx;B^kzRJ-(xSE4iS> zdX9tEXw(idj+C4Dew%PAI|%amciF?;*q0e#SHuK=B{B##-+O3F3NFH2Qhm}huIAIJ zk8h2|oCFlRwamByjsDmD2xe&dVzsdVlh(_~lcE5TkGW0Wv4!tngX!iVodI75+DH3) zAXwGpiGAU)cZm0xgWXeN?%dw^%1zcR*Gf1p!?0*Ms~k9(DRfBrh*~Zi7kXI+&*|`y zu*J>%G;1V7oNxX^)P(J~b5!)}_>WUBS$=7wqGsiBP| zNudzBpb99FMwIRqN**83ykM4I#RuB^31q*nkv~?p@ z7>Hot8zC=;N6cGln^3=unyE?&8R&i|=$dc}>nkmetUU*F3rD~N-$afmnrM{?+!nCW zt!N8Hs|$F0x=dU4O0+YGKKO67v>?0pyRw}VdYyRR5pxTFS($pEP8ac<-fL&G2U{NR zJDmJUw(eCa`weLTc2*1zw~&>dAWGkq4w1VD8N^)8b5{~3sUqYkBeO^8Nomc~!x8T> zo<)xsN-tmqv%p#_l-gOY%h4xFRoom$HMZZ542`~QMfs{{9pLAoz`enES|z+FiP#DExmi@}~MR6bJ3~_b-E3&PK z3)R!Ay}LCOrbTjH$_zVXYN? ztJ+}dhxS>~bEiV-BNqT^!h268=frWzZ`Ag9dXxTy4+$gJnwJ0mT(AUaE+|%RJJtT% zXZ@0lHa@nk>v0^s0=*zbtoM${Jmmc-9Q}Him&{3l4k@X4xwz`Ra}k7e!#?}zZhJKp zx|(PTh-pnw%)2Y9+lrniOjFGt>ZzsEblQgx)XVGpkDgdNc6x}09~oM2Zb#mvROny( z_yZ&V6R&e`WAgjOW;ZS}&r!fsKH|Mv6BZe~re3V;tEcNi-Rd%>SH5WB;WYV%#Qk!% z)QS{X-u|@>c1AxLNd`e7OOSDBEO9a^sl9$REejD}vpSl+d7JrwDw;jPg{-l?F=a0M z7Lw0f^EVPnpDN(4W}(`DhefQ=Oqummh>&&p*uwfe>caCRyr~J&j~SJSsLPJ<7E;CxsmfP|Lp4z zfORJpuUCas6HH*^q;}dl+Yy!dESB;sE+@E~4nW|8ochP>YG1y8>4h4PZ6p~&xh>UP z4Z|M+ej)0Gq70x`HhY3soAFDr(L*X>QSgjC2XjdVf7oXlEetmDqpTtq=kBT(7r|6!U8hx~c?7kGdAGWp6sJ$V^TLYEmt8`GeKja8h10ph6P8 zJugs=e1}MBxCy4W+rs4g{J-1p$h9ol_3S<)Un!;*lEQ z9gg(udCTKGQ^yQFzV8)&z9WrCv7$nI!a7`8vSqe*TUE08<&CjlK+b*nu1;^{cz3Zv z{3*DV;N|~yGC!l+aNsRr$)j=nCV%okH!N}_OrcOIh(k|D^UnIh19wy)%(1qY03EvA z@XoPfeKjeMa8bng1Bm2NK28V z{!2AZ5PX?Q1&pg-0m@Jm(P=h?xqK5_glcA%WZfmzj@AFe+gHW|K4E) zhj5jJ^#fPi9$|G~Sc-LReeS8!cpGua2QJa>FE0-L^T{7_-rAm7y|#RaNMgC-D^m_m zxZLVapX3l8)HZ+f-m#E`DjB<*X!zU3Qdy^si5S!hLd353uj8O;Ffpx<6{FxidXS>5A2N|-0hZwL!?wS zhAr0ga_M@gviVSak`ur7^63bclaW6+dEQ{lq<(;< z9LbO>id;8tlVkeSSMh7d+BKtZ1p!bsXB@g_dLAt9I}=T@H-2^K3qj%rn}^5_6~>|E zokMus&{eQ8`N{%9vA_ANal93B?r^2FmBIdy2I6>1-38Pi`fj|k$>oZ&u8+sGQdQ|2w%$L`$f(_*h>I5 z1-_knz#@R+0Nf5P<(*o;6@1fln%4a~v0j!HKW9gf1GQk&G5j_5Byz96X3%GhbUEz@ zoejGKzUO*k1$XTWm-Kk_^n)EYjA4<6!;4^u-2MLvzsDz~?Sfn;aWxzD;dy9n>=eR| zLAz~pRTvDx7aH7ja%M8cjcUE0zMkE_n$(>GY+8prE890*s94xBz#a2+d{m@ zJ|F=Lf(c>5u=7X@=Kj7E*n9^>Cno!RWFUwL?S~&v8M2P5kY$2jRE&5GY`cX@-@+ee zKF$&gW82HA0cgLz;_r`Ew|#yrKuCC-U20%dASE4eoaS`O(2su?Gp={)L1dKNcmYiL zcpZTRM`Gto*o&j093v+0FZQLelL8o%u|&VSZLd4P1xmDOyRst!w;-)?ywdA8BYLMZIPNwV$Na)$&8H$Mp` zB`w2P&F0}30R{hcNQV-SY!a9pn0DE4nD;cb`@~vRPd5T=?gNMPPTHMxz3Ce_m!o-q zfDS?8-EvXdEW^?1c)6Q@>nqdtQ-9g#hcOO$Q*u+L#=f+;7Q1`Z_CLB6A@DmIG+9V& zx!rv0x>ZsaNtjQ@fdwRVWiHdf7QA%wR!L3Xf!8O2&n|OBujCaKTc57Nn_B!&cP>KP zYWIkU!M*H{h);-ViF7eiIypRW{z@7cX{G6o9YAl~C_>1|9zZz2Za2A}Q1B4=MD>q5 zB#PNlSnJ35+y#n6dxLAGqzsk~thL{F@4irEwt&pfQKY_8=Q^v&h_{bG>f2jb{5;N` z4)-VwHv@M8f5VQ){tT1Ee5^6S#oYRjiOC%LgIO@OEjv`Bp}P!$8;=39(wAP#mht)# z36s*Nm2_jACN>aAdJ2a66{j1FuU%FF1#H3z#ouIwX_jts+lKP?m-o%*3X~)%Fs5Od zZ{c4z)$&eLb?A^T>)onW(f2l&#!n-`GgP2le$3w90<1he+FOR$iXzX=eMJuY7cTdG zTXkgjlIZ{sH4010jwA^NP7(PWtNN}M=v>8j%nN6dFUc~*%l9fu+Mpky56>HW)o@#THC#D$3)B~uh5aDM`# z#+?A4KJpFuLS3)a23A#o+kUKig~1gGH!Z>mZ28^$;oL&614tT{=-0Vpn0Y_nc-C*V z_xdc2x}kkVts^`*d3YSi2Zyt#dCRX`Zvga^bwD=W6Yp(Dn+Jb*;WSC9-?jR3cUxp*!u&E(G@XT2`JQF6k~Fj6p6A@}Xzm5W z1EebCd6+}BGkp9C_xWy1kriJpu!REjE z)5dVs)K%+WOmnQmvZk+RD7wR$V#N39=7a9><0(V4gM4(ZmrLp42_#P3qctj~Z$Tel z&t-Ob3B%u&v#5G4wugNlwC?cl!)&+lr)B=O3UuB5fWfK#+V1>+6c^Y}!+mAiu9V>W zF<2HEZ~?*td;=)fUaO*hx7%M2pI)tci3hF|#d{M!y5ES2fB3GZoB1lXfzKJ+_wKSA znD>7<)cL$q8Vd05F7W86Sh2_&*xy_pvEJFtHzQ*UJ(4*eF8b%a_CCA0S-BmL>+4__i!Tsp?lAj8sJ&~zPCo*TFr%OP6|B9SRjWbFG8)j<(959~nMbLl zn)xrWg!RCl0ZTB=RUQwLwd&#r>6oI=XlHmAC3E=o6z=QQF6YrbOoUT<#iYVe8V}1K zQ-3jCnB=+Y(r2yXM#Id){cRr=+8}j^@U6J%vbBy8%pR7_6&D}&Ww{0>|aQ= z!1GOTZ}7cf|0DI{LK~j_s-B5*azi{-zF4=WD@zaObF-*$w5Zaw3B-XU&I>SR7GEXM zwa!OaK}f(!Yrx$`)jL=a2%ZjnoEY$fMJxzRDMen&iNF!DJrG^?k9)7qc>f@K0~~f4 z4kPOnm;~k?Hnpry!zI%&By1KY@v12!bf)jds}Qaf^jzP?@&eE3PiG=5WTcH5^a#>^U!8K~um1<~?eqoEuAcU(Gw=|`g8=8|x(`-XW zU=&v#$<*KCE}8W$ciaKZbe}E}2|3XuCM)GoS=4E5D2`6Q`a`Fh$Z(FNoG4eLZQiem z#JqkUhhc3C;2cxg%3wXiA0I68r7A=&h*`5*i(2PxCYSXIgM}fp3F9IS4>crkCcFK9 z{eywq;65{q)PYB0Us+lAzruN`Uf0whv~XWG zcAeKvKTkaN89RA&UwEBA*^RC=?`Bnor#sKc@XDGbCPbTf)LI29i3ff`BA#7mwQu9s zr*d`;6*m7Tbtki1eJ?JkCfU(;L3H?he{O-S*Gg@ped_(+Dc}|)0W_Qxd&Tylq)Z*X zf$45I-p?Z~Xt?GFzw0I)rdgX#DFNc6R~0Cf^3x+E)X^PXN%&!Kt}p*oBNSF z%YXmic^ZtzIuV+0CSdaQb0!q^{J?|ka^!L&f*Y)c=H=Lv88b)mhdNa%ay-@qT3`7R z*Th4$6o&S^%S^d}A5Ro8VMpH3ER|vNexQB=$3@~8z7#%C;7xmdB^L?%e0AH`!j-c| z{oebdoq5tbM^zu|+zSp(?{|(_H>$8xU9>&?3G`AxXh)k^3E?S#{A*XPGj}bURgMVk6Wj?5$+%&eTEM4>u(zaR)W)ieQbBKo;Q-)o2X0z;dGcxwTRMorOgqAQ^&hZESbpDrbf#ulH*!hZgvE$ zRes*6g-MC~_xRvC#t((#)Ad*PQ1Lpca>AZSqe?$3mv*+h+LWY<#ryiHD#wbJXyoqK zq9o0a$1;EP-lOUopat2cKlzSk9;NjW(oVmW@$H!%-0f&v3{B+zfh*A+@|pI_AAEdX z%Vj?c>o!d9>!)d}+5ax}|Mag!CUwiNI+60O^3AOL%-16YL8;X-h*z?WWuTW`c&C81 zoCKO*Q@Pr+>-?JnjF04ggY&q3iTc>! z6`MSk$@*>ITgSwMW=@KWPm1dcj&L=l7WETcmRkFC2>SvZ8#wEd`h5dZ;A2pk;wA>VS&g6*Z zEVi%JK0*aG;{SK&_jN@lXXx`AHy(-NrE;vQZMf(cq78VST+#Grf|?xahu z+|c}&MpMqYAdjS6hvDJi7s_c;qs*8j_5XM=5e zfl?=}$!7Ksm&2cKH#;K##{NoP!Wh)Ywi!G36UP?q6YkzecPTd5=yPq}=Yy_Z0&rw*`3G zQetl9ktRTC_YyFOmR1s?6IB?XVnZTnwW{pev-XJhQ%ky7fQUR)W+P#5<`oEjDi1YU zAGiImH&H3MPE9Y82s^7Bvn;4@69mQLd=uBO5RL0MSK|P0$L=^^1w^7l{&ER)BMOL# z%P+XT?W}o-Dft_?>bQaJuipn9ybgT;D0AhibVS3l3)A1KDq)(Vv@+m*zj|)0cUxpT zU!7u%Y}GTa4-E@}P}&a?Ae~_$3$+XocyGr2mjA~qySvdpGh*+i_cNbX$Xo8n|1rquN=SG-9Dgm$0!mWomkFd{(ZjBo*g$ z%X2e<8;aNJ4THa-6G+oTJF|=zKX(sYb#2Ek&qTgVk&BYXU+a8!UfsO;t>b@bm`l-f zPss}UFjR=_$;JG)G4O_oiraEoB>Q4Q;C{F`GTqKsW z4*$&#&Vikc;Pgd2OE>ltg1-6uItMBMU4EpFY`gIfJp(4?Xsy`V#FAx)LX9rRJ}NLF zG3^-LHak3^cj;68UZ7kA>l7wxa;4H9KDj{Qt{Svd-?QYUlV*1~hPYL4?V`BQ(MBC} zy*lduw?c0}^bb{Jf|lyuoxzY-9$49)dXzDrbatjzPDqO4|I;}SZ_Ja%#3p`7n z@bX)dUAdbNJTlR&gA%!4N19mVNJ%H9;jcJG(}lP9IlSbroB{8bvTV=XRH7&Wh6VCp)ji;k1BRkq42tnv%Drw`)cOxOQxVV z1KDhIRWI}|&{XL4XG(PfFsO8nTaj+g2=^+%ZyK@GbM|9r*Rri-H8d9Y*k7$cv+I5~ zjFGVYCo6c;yqf%X3!3e+-R$-cI_?KR$A_Cv-E1ZrdHyZjHtNN(zB>Jl_vU};a@h_% zfn`iNt_4q80uvo}C|P@sL`Xc280(e*(=wVxOZQ#gPeW|t&@%7qXfvxh#=Xv!+xth6 zCuGo&)=%X%;JO`BcS^c+J1DAubcb1go?f>a4oUw^?v&&I>>G>Y`$n^~`FvWi;I&y> zHp|-TyJ_QqmxROv>!rBsbp3hu+Jt;j8F=Fvdlj7A8)fU}X67Lhqs+;3X$9936uUuf zY={X7-frpWG{CvtUzT~B;70?N*4KUz%h}4dlJCD>Hob^nuRrI&q|u>q5quufX<_1! zW0O@*jOpy{z=3y>1EWXya*y$Q>#b8IdZ7vKBy>=Xt%OgL^sS|gV2K{1U9SJGiZo6i~dNF4F`#&}it!L8eE8F?fa>9r&ZgNirx8;d1xF`}%Q$*hJ zZAsai2?5UNp+tsKbH>>wLPji4V!VhRl!_)V6mlW)z3#hm5pe_{Da?sa)9L#RKu zPjFW6HYeQV*t;xzpON>DTG6n2A@`s-S_pqbX^J=MK&H-mA>cmE9bJ9dRv6GYY36*> zC3hH~f0i$KmRlY1y396);{B%&5ET$pPBZ#zmBt(*cuN81Z6lPqWrj>93bB#Yh zM8$oK2PCn804Os`GD#TiWY6;TDsMxAb8TR>%tSdRMnfVcO`lBTPMX!pu4B)al(%YQ zAN}WIpf7Tj_?LdlYbB;@mBYp6Ogz>Fwz&JY7=^|^F$q7UmGP!E*rcDIXDgP+e9oaDBe z7LDkmGecOE+B%N0llc-ogjwVw7z!3QZwub*EZx43wb7N+`2O(0uLvC!+$Mh-?P?N$ zv?)-84}wF#g}`bZ3q|CLDo&N8xuoj2p_8jl);<`2rBqARXp}+%qR$g~pKJ5b1G#A~ zPzHsGX6X2&0%;Q9v$>?@w@tjB$wEK8XsX1TqKfyM&wS%PToq;G+SVvJb!7}-jlM4T zxPS;Y@{j=*S3mE!mtE%3ZVF`ujm~>MFFo%wO(MB-`e}a6N2W6s`M>lFX;j1PmRPko zX~rw+cVU9t;N79Ryz+jyobW{+Qs(eF7ep*!@)R9Bfa`^w4ffWcYW~|(yZ58{b-N-S?Nor)OF&xuXm*rBcj=K||7<4kIdvDL zccDHq9h+pD0Z_^7fkMXG_{E55;PrLtKG4GMEPJ-YJAPiNnyvLj*?*KL&;9;=1-v_6 zXt+pi!$%J|Zhrh6&XB~5S)`%k6D`2)_?6RpyI}HZyu)dn-#j2c=EhL~heQhUP7$%p zZj{LueWCnRPh4fIPh|O?ya7Aj19+uNfzadU7^JZH3gwLLfl@?323~pcxzcB4Qs>yn za2WJIE?HMlx~J-wMuW@Xd|h-9ynd2UIT6T-tW5Jz<`KrMUb>{7)hx-_GxbBHPI`KK zjb?$H0xumVr~y&Fs~YZU$pCK5;5dyes?yxZHdv4AgrHqfXIQ+^z8d%7N}06G$pbty zvk!1vZcJK)gSea&1s{H{ot515SGVN1@ErDTxpB(33dwm!`#MQQU$s$&;dv?>fiYVB zCsN*~g+C z$E0|SoDO?T`1k)E`mw6(O>kNcv!JGJ zae8pbOr-l$90K!!ha)h`>%f-`x(TP>Gz9HNM2={n50@&V0{S~AaU~0<|KsSag4*D= zC|pH~6Gw-|OUA~eV2OawhBpMGf$#XoQ;}Fzq2Lr2!^-uxT6a;^)nO836 zCrlYW;9@6jq#1}!PLI3tc@ve4$$R$c(a&Sd$Ey=kH_e|fdd-vOGVQa&hyMmt4CUz& z7H_RP)r-U~>avO3J`)UKe^fe^wl}L;fSiV8tEI9D@F;Ed@b)IR+q1s`h`2qSuDU<+p83=HRwXf&Dr^MfB z`Z#mB4HdUx!&nom@pOuzdk2fT-vj)w`_jj_^KoMVGYnR1#7Zv})051+<-y^(a&Ep7^T%jtoG)v7z%pEgqIp7Zu7stxjd#nwuURy4KJNZyFF5sT>DuVEV9jo7 z5YiI>@XwBS1MsWdB#B;GoYZ#%1T&u1cQNNFA3TE-PKG~)$l!0GP2IP_?pE>kiZj!e=);5-udtw~dLK+db zXzrvMl8VcTmtMG;N%*5GmtgVP@>l;cE|~&)#o6ddg@zm;Wv-q>hK@$+bPSrF7fY~R zO#ttC43IYF*iG*1pVtTN;$!%K*7Src$8-xYjLAvHseV$46Myn2A7X#cOxIf5CtntW z!ld zIn&i5Md&b7-pHRGKP(lmJl^j(oZ*8vnerz(#Jz7(K3A7dCS*KE^Voca3vy^Ibe;^C zQ!IXeBjSQ5ZjVjBq*0>nFIb?!uZ;w>1j z6V%^c4v)hXf1i}@rKs!{D>>f?6+xwIUf-kq)t8*{snhuAhp;RIZwn9y>ErSG%8ET3 z%Df|$W1e@IL057)J%#a~YyfOHN5601zjn797X1+l#I7FV9qp6avoWY7OT}bD+3#tZ zZ(Hht&+g+Aj1U};I=i6ay>hw^%^Dnl=&m= zNVtk*7WbLi016(gTwGqD)T=RPz78<|KsTtUSB(0cXFvbDr*9u|bQBDL^G_BwAh0`>2oSsHe${ zjX!eg<|YizNh`dbZ$!%16r#zFhDQCBi*B%I0F;GGipWfNFqOSR|N4n!C zzBv)+EfMYJ_ruwScXo;yK|_x!iz%O~M^oV1e1R{oD1!jri1R@=clZg(22+cFv0Ve* zY=W+i&d^UfcOPWUz?+rOY2jN=V#Twvg+KWJ&viZazQgR1pSUKQSh@mz?KuvT=!xjh z@THbFl=r@dmT0$8Y14%IQ8+b#La^k_G|VA=Kc!n}6X5Kg^@H>=wivZCx~#;}W?C-< zDRGRw??76)_-}McL%)oVOMalp5$Fo8m;J=i%sRJv|ly z_xno6m~cwbAKzVX+8ne>m+&(FAJ{RkQP!j=z^l*H9tm_=bLNb2_&A_YVX^665*i-X z%ih?7O#a#$3IWc$3N42D(fnlm`TmA`&0d0-B7(Zn0iiZ>u0B-3QaLpVJuJkFXQE&?Fz026L}|QR9PbI!gPX*fgpS@DbMh;3#Rf zY4>!PaI7mZNm9nh`*-WueR7sP#wF)tJ(_Y!LS94OAol?8?F0|z7%%Tcj{O=OhPuRu zX!@Gj98WAYsC!lAMTc(G)Sl5$gaDHAFG`Yugg21J(dE3f?M4~j6IKgBI(|O-8^7LF z=Zd{g2ib_f(+Eqj+dOhgMFE%)J0gT<5uT^G+)s0av4WXUQ@16(?HNJ>$QZ~`JrbGd z|7}@W-gcfi_4MZf_k!qW8nFRp{bLcMGJ@6omvF5wxr(Idx?L2qEofk%jmrI*Ps5Rb z^+IdQucQwtM30xdXUJ0& z9}Ra&*yX1}77B^J;U>7KI<2^)B7wGHW{4#4^nfr!oF>w?^1=mmn_sVpGzYF6JUVg7 zzMT2Vcd~e3{^h?i_XzT;tjnppNS29c!dO#*dQyC{^O{!UTv8V^XVywLX2+bo1>yKjT&QP}Sy~ow0ktYQ z%=;;N2=Onk)jE1yZBzDyfgTZ)mIwD%-=ND8RvS(>`Y>1RUHB*f8b7s{=j-{A>OZP( z(hsJV06B)LF$}rCL1c93lu3l9H(>!3km+R>$lsLXCAHApGgQjQp%}H+_M`ZfxCo%b zTPCTu$J~nhWS5rBtWMohmVpmPpDS^p2=dZa1|-fYC^VdQ0fEZ zW`m2;L*U$+wx}*D?~~Kd=dI{ZB1Ee*eS#n-8e9sVMKas1`I?)(nwhnwIVWY- zd$`-v%2twR_?|!Q@!GmVJxQ~}fX07MNc$lhH-^J|g_jE=8V^H8ZoW^(@oWBQ+>xM} zy3&Pu%y$JNA2sY#Y}S6gB3+C?Q;Hp~U*v_(MElRhvxZP5GRAAY_~^95NX5UYCT8?jF7V@YMU*D&-#bB+Vyb0<_Ga}U zGM~dC1WVHjvbitB55S*_>HkxsujtAGi9l7H%6~y7%gGRzWs`5g`=emO%L|sWuR4|} zu-<2$hrRFjA>zJxwMy02|(h z)9T@&W_#tIK4fBHV~b_ zv3k3FjvRA@Q5~%AN=x!6wLYw6`*?%7U#+708|KKlN-f#gtxAw6B^G+8n^YPNWRlo7 zjb2Dc%}M5=gF8L#i*%ay=B}L;fy^()Y13N$Y|4)J3Y8_qssY)K`p&ESLnXv>=0M;N zI&#T|8f`G8ZFG!!13z%!ugV4kg}Glk$Q=lLFc;_ehL*&{{CslZFo?$%p z@y??l<41yRdk%kyW&PSVE^F$T*5*Y{Iz6wXSJ!9HBzh=eN*R~gi#+{=pWBvO{%esK zdm3Vy_yd`;RHmAh>ax+PX;(p~B!P&h_#2|(iQS319xsOO)1>iU5bJV@JyE1XI)$u+ zo|@V;m)zM5yw6Kx-9F&$PGD(z9~6`DSp%*@rj-v-%klOdOL(i(=zsxx#0>g171rds zml9>dr?yNn?q6;r?*1e19NXjfG9TEFnx+MEjkM;qpA*lq{u4tbz!;f?d02xt)Z-bt3R51k)(raB@ltOLi^{hV^PZ;S@NX>?yS@(v)C{UJm{4ry_ zXE`=t!s#kC-Q!yml zoxf>8c_UZ#gY$Ey_0|ZX51bYj+pun>5;-X<9IW^eFd3?DGH*_>DCw)KUWQfu2x`T} zNQN#2#(F{&w4DfHn4^w8+G0N&W9GK`5q5Q6p?{bE3-Ua0!y*wTf3LG;Ou{4wQuSfz z{e`I7q66Ul)YZA`?NW+WSmNK1I*A)!ZO^TPu`-5tueory(byd?vOltnU&RsI!O<}f zJ_`#IEmu?bLB6&_FK=$1=I-$7MZyjhNgk63KE0p`ctwl(oOUNYn0s^ZRr0?Mde~9L zjMd5fW2^p2)19u*-SI(qnT_mAJ~q!-=J6z&%lG|_BMw1=II5rZ6Wk`oe6eL)Wc$k+MC_0L7$ z_PR=@2&3^H)nv=$BogJT_1ncwODcRxjpn55)Rs*8iY}lE5Z!}#MD$Q`WT}iJ+%sq1 z2X=f^TJKAf$H#L4vkwItqr{SV!JGiB%FQFb`s=xUHNo5F3D zX4bU0^w%14#-OM9HP-Fuc5M5Ncf(GJ{;8nPRY9qM3O{hZQrm2$`CgX&$^3QLx5HVU zn+YxmRhHUh1J6D~=EHB-d(hM*z;QO-Tlj3br!X`~DteeNrlndoT z+Ck#oN7(>*f6kB?fiT+-)dDXpx9NT?VeG!DG^QZS5W?h?VnHbPwnjctw<)v5c2pn00T#}V{JCs3_Z zYPS&mHNoa*Bu<9=DN~9t>tIt~w*O?n?3Ww*kgW`3jo)@v=7m(n0JEzWO$OoFowIbA z!G5>S(sS=?;&)VdeMYiT)yQ%?YLf4{{?~;x&7-DWqRTt|mj9To@}o>Q%qW^c(E+6zI=?Wo0sOzcgX@w5wn*!{>JDj!G7DBJN}z-z6Qk8FeyBF9c&I zOc2K_<6)N2_L1((P9|ZYv56Z5wpm)ETB6#q_Po*g@*1cGT?a`Zd+k^b-H4t#0oCwd z4Vd?uPZuNZk5ig00{nthPiNPy8tzrv9Z?en#@)3OA`b$(JLkk4|BCHeaQgC(*TaTD zJ1+Ox=n@^NHCE*0xg+0^VF^(4@4}e91v5g6*&$$DzJ+~BdJ?y zzFYQkH-3B(A8Bxu@I@v8YAFcfhYY^i?|_nbxmvU(uc%q%Zpx3@X9v zG_W{lO!cU@9y@*oXPU;KrBYWD#6 zV1MS3o4yy!h)!}=Aqr}|Erb%ZSULdpY=y>u9C zFE)1=>GR+`xy{H=t)<+i5Ad$Wz6L$o3!3cXEY!Kg)g>>^(j$Ky>~+wZc6l*aP$j(^ zb}sC{A|ZVU9HHXFhjInkSVK75v+hTpLJJJNF^5?pf|7Sx3f)S7eI8p@I?NQsDJ2oz z_sE;`wg+*oO6NkRgnvBffQY99Ja5B?GFyWP3+r!L?wxDNm0O8>^0T!r3~fx?t-g5! ziT}(r8>J^6kD4DMx`QsuETixeIeHYX7X_&|s+{c-yAt0qt&g-qw2iBtv~EW4HO_n< zgYDM01h=!9L0;X3Hv{4~tO6;c)@Cg~QjDGM532xAaEzlg8^ye3Xf^GIapfih_Nsnwg#OWUSe^A{XDpo{ zk@iw5F2>alXaA9y#lYJieoKE+9Skch_#C0dVrY#$aT;DXc)infBO@K=RD~^hu8|qy zvM$&+!5|Pp!VoIbl?Llg?9jxMM0H6wHZIOIju$*rYY3YAh)kX$+=Q#v+mcC~>0Hl5 zNI#l(R}S9qd8Kw^+@dT~caUn6gwa7MwIl&XMJiH&|#*6BW(9g$e^AqZg)PhT^EuQD^8SB>rL(#l7|M zeG8~^q!)W83JLfN76fnwqa9SdrfNYQgPry->jk8j6fM0AvBt`N<6!c1yq=-i8>jAD zdta~?i~H&j*TuMW!JKpGqg%?`i*u(x_KzEt{4;rdn@1Z5jm>&G$s;YnKX#)n6&+7? ztb%{w@esV_)5GD--2->+r}iFDS@kd<`1MiRM>zEdRvr|-;Up8QKR-|S+|Wmranq{m zOIqk}4{VFA0}4EMwYf z4MCo8vX<&5;MLitxj^rYg4biKQq%4mD~2?=eGZDUHUc#b!T3PIMcf5D01AZLI=lYW zQm(et(EZ5ezWn6z?Kv@*lu!2Mh@Z`3BwEWf>IG{XDsi>^ZiDQRhA=TISi$h&?}ifG za+3w!Fh(Y7ywuOm<>v^d{KrC*Osd>BvHq9kSEmV7g|;{S@*-Kf z>%go#0Kc5)dMs5TXBljz*21OdoX)r|4Oc!t7hHrzCAD?hn4pmiLA_YEc*D+AHcX>o zVVoN=d412%&SP4aKSc5^!K*Fk`x0*J;(JhG|MM|1m9uveI!KQ66GY=VM+Tb#s$vBc zhUB?{yt*9%|Axfv%T|hT0T=+EH@<*O=^KzZ6}>fSwndDE<6N7KF0rD6`$E<9n;-6NbKWl|4=~d_F+7Ft15C}Y>{}?&8L|n7R#SHD=DQv z`iCqcH9V>RuaW4Q6lRk3bPz6%0Bd3$$p~q&O-M`>38x)Bx1Z3mO1+h`8QsIaf=jJc zSL4kaLVzk7uKEmmXA1ZA+8lnDpb1yUFW$|~XKhX@Ci{+t?hht|h8JaYIU)nx#$@CQ zO~yN~KH3Gwtiy_Ht5O?lr;1nu%nUp+pSH-Ke7jCsRsM^)dR)NJtVF`~ zB1?3e*}8SkboBOGzYY3|Jat90c6UQ?TteDr#qR3(M#=C_b*HIq{(;i|$i{8G|AQc$ z*>%B#>3#~}L#eBnDsA2SeauS^!Spop)IGt~8u2gKz)%8Ppw{Xpc*%9%FQESDdN`-c z{SZmaE&ZpzraBp1U^)KX(mb%88EnJYqbZ$USh=TH6)`+HpKG+v_AS9e=v9kv^E}

~9F4=D|Bh{@F6k+QgoX;l4FN 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 literal 0 HcmV?d00001 diff --git a/assets/js/295317aa.246bb0b9.js b/assets/js/295317aa.246bb0b9.js deleted file mode 100644 index 1e161ad..0000000 --- a/assets/js/295317aa.246bb0b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkblog_1=self.webpackChunkblog_1||[]).push([[8837],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>b});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),u=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},h=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),p=u(a),c=i,b=p["".concat(l,".").concat(c)]||p[c]||d[c]||o;return a?n.createElement(b,s(s({ref:t},h),{},{components:a})):n.createElement(b,s({ref:t},h))}));function b(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=a.length,s=new Array(o);s[0]=c;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[p]="string"==typeof e?e:i,s[1]=r;for(var u=2;u{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>u});var n=a(7462),i=(a(7294),a(3905));const o={slug:"asob-q3-2023-2024",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",authors:["electrikjesus","hmtheboy154"],description:"A State of Bliss 3rd Quarter 2023 + 2024",img:"assets/asob_q4_2023/asob-eoy23.jpeg",date:new Date("2024-01-17T00:00:00.000Z"),comments:!0,tags:["blissos","android-generic","bliss-x86"]},s="A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",r={permalink:"/asob-q3-2023-2024",source:"@site/blog/2023/asob-q3-2023-2024.md",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",description:"A State of Bliss 3rd Quarter 2023 + 2024",date:"2024-01-17T00:00:00.000Z",formattedDate:"January 17, 2024",tags:[{label:"blissos",permalink:"/tags/blissos"},{label:"android-generic",permalink:"/tags/android-generic"},{label:"bliss-x86",permalink:"/tags/bliss-x-86"}],readingTime:6.95,hasTruncateMarker:!1,authors:[{name:"Jon West",title:"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs",url:"https://github.com/electrikjesus",imageURL:"https://avatars.githubusercontent.com/u/8572619?v=4",key:"electrikjesus"},{name:"HMTheBoy154",title:"Bliss OS Maintainer",url:"https://github.com/hmtheboy154",imageURL:"https://avatars.githubusercontent.com/u/39849246?v=4",key:"hmtheboy154"}],frontMatter:{slug:"asob-q3-2023-2024",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",authors:["electrikjesus","hmtheboy154"],description:"A State of Bliss 3rd Quarter 2023 + 2024",img:"assets/asob_q4_2023/asob-eoy23.jpeg",date:"2024-01-17T00:00:00.000Z",comments:!0,tags:["blissos","android-generic","bliss-x86"]},nextItem:{title:"Bliss OS - Development Updates 11-23",permalink:"/bliss-updates-1123"}},l={authorsImageUrls:[void 0,void 0]},u=[{value:"A revamped bootable installer",id:"a-revamped-bootable-installer",level:2},{value:"An approach to OTA updates on BlissOS",id:"an-approach-to-ota-updates-on-blissos",level:2},{value:"AV1 support for ffmpeg codecs",id:"av1-support-for-ffmpeg-codecs",level:2},{value:"Properly handle suspend",id:"properly-handle-suspend",level:2},{value:"BlissOS Go for all versions",id:"blissos-go-for-all-versions",level:2},{value:"Bump to kernel 6.1 for all builds",id:"bump-to-kernel-61-for-all-builds",level:2},{value:"Introducing BlissOS Zenith",id:"introducing-blissos-zenith",level:2},{value:"Other updates",id:"other-updates",level:2}],h={toc:u},p="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(p,(0,n.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"alt text",src:a(7980).Z,title:"A State of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024",width:"1920",height:"1080"})),(0,i.kt)("p",null,"It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here."),(0,i.kt)("p",null,"Leading Up To Now"),(0,i.kt)("p",null,"We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release."),(0,i.kt)("h2",{id:"a-revamped-bootable-installer"},"A revamped bootable installer"),(0,i.kt)("p",null,"While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven\u2019t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS ",(0,i.kt)("a",{parentName:"p",href:"https://twitter.com/blissos_org/status/1700613048518795683"},"is doing something inappropriate")," , we realized that it\u2019s time and decide to look back at our bootable installer to completely revamped it :"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (",(0,i.kt)("a",{parentName:"li",href:"https://github.com/docker-library/busybox"},"https://github.com/docker-library/busybox"),")"),(0,i.kt)("li",{parentName:"ul"},"Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora)."),(0,i.kt)("li",{parentName:"ul"},"efivar and efibootmgr are still being built from source, but are being updated to latest versions."),(0,i.kt)("li",{parentName:"ul"},"Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps ",(0,i.kt)("strong",{parentName:"li"},"fixing black screen issues when trying to install"),"."),(0,i.kt)("li",{parentName:"ul"},"Support installing with exFAT or F2FS (experimental)."),(0,i.kt)("li",{parentName:"ul"},"UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization."),(0,i.kt)("li",{parentName:"ul"},"Some label and text edit for better comprehensiveness of what the installer tries to do."),(0,i.kt)("li",{parentName:"ul"},"Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it."),(0,i.kt)("li",{parentName:"ul"},"Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.")),(0,i.kt)("p",null,"We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven\u2019t planned to support Secure Boot yet so please disable it before trying to install the OS."),(0,i.kt)("p",null,"Check out the screenshot here if you are interested : ",(0,i.kt)("a",{parentName:"p",href:"https://t.me/hmdumbground/111"},"https://t.me/hmdumbground/111")),(0,i.kt)("h2",{id:"an-approach-to-ota-updates-on-blissos"},"An approach to OTA updates on BlissOS"),(0,i.kt)("p",null,"A few months ago, we reached out to ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/erfanoabdi"},"@erfanoabdi")," for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it\u2019s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many."),(0,i.kt)("p",null,"The disadvantages that we observed is that this method does not support filesystems that are handled by ",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/html/next/filesystems/fuse.html"},"FUSE")," , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation."),(0,i.kt)("p",null,"All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future."),(0,i.kt)("h2",{id:"av1-support-for-ffmpeg-codecs"},"AV1 support for ffmpeg codecs"),(0,i.kt)("p",null,"Thanks to the work of ",(0,i.kt)("a",{parentName:"p",href:"https://konstakang.com/"},"@KonstaKANG"),", we\u2019ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by ",(0,i.kt)("a",{parentName:"p",href:"https://code.videolan.org/videolan/dav1d"},"libdav1d")," made by the developers at VLC and being built using ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/GloDroid/aospext"},"GloDroid\u2019s AOSPExt"),". We are also planning to support VA-API AV1 soon for hardware-accelerated solution."),(0,i.kt)("h2",{id:"properly-handle-suspend"},"Properly handle suspend"),(0,i.kt)("p",null,"While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/Kethen"},"@Kethen")," has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before."),(0,i.kt)("h2",{id:"blissos-go-for-all-versions"},"BlissOS Go for all versions"),(0,i.kt)("p",null,"Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants."),(0,i.kt)("h2",{id:"bump-to-kernel-61-for-all-builds"},"Bump to kernel 6.1 for all builds"),(0,i.kt)("p",null,"Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google\u2019s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve."),(0,i.kt)("h2",{id:"introducing-blissos-zenith"},"Introducing BlissOS Zenith"),(0,i.kt)("p",null,"We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can\u2019t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we\u2019ve decided that we will make another variant, this time with 2 key differences :"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only build the latest version of BlissOS available for this variant, so for now it\u2019s 16."),(0,i.kt)("li",{parentName:"ul"},"Using stable branch of the linux kernel.")),(0,i.kt)("p",null,"We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, \u201cWhat if we ask our community ?\u201d and decide to ask people to give this new build a name on our ",(0,i.kt)("a",{parentName:"p",href:"https://twitter.com/blissos_org/status/1733872766133403666"},"Twitter")," & our group chat. After looking through all the suggestions, we\u2019ve decided to choose ",(0,i.kt)("inlineCode",{parentName:"p"},"Zenith")," ."),(0,i.kt)("p",null,' \\\nBlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6'),(0,i.kt)("h2",{id:"other-updates"},"Other updates"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Kethen"},"@Kethen")," (again)."),(0,i.kt)("li",{parentName:"ul"},"alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/thesofproject/sof-bin"},"sof-firmware")," from Intel is being included to support more audio hardware."),(0,i.kt)("li",{parentName:"ul"},"All builds are now using Mesa 23.3.3"),(0,i.kt)("li",{parentName:"ul"},"Some fixes to the sensors HAL (thanks to ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Kethen"},"@Kethen")," again)"),(0,i.kt)("li",{parentName:"ul"},"Fixed an issue that desktop Nvidia GPUs with nouveau can\u2019t be able to get into the GUI."),(0,i.kt)("li",{parentName:"ul"},"Support KeeTouch touchscreens."),(0,i.kt)("li",{parentName:"ul"},"Rotation quirks for Chuwi Ubook X 2023"),(0,i.kt)("li",{parentName:"ul"},"Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS."),(0,i.kt)("li",{parentName:"ul"},"Users can now fix their audio issues after install by putting their hardware\u2019s alsa state definitions in ",(0,i.kt)("inlineCode",{parentName:"li"},"/data/vendor/alsa/.state")),(0,i.kt)("li",{parentName:"ul"},"Updated KernelSU to latest version."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Console is back"),", you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add ",(0,i.kt)("inlineCode",{parentName:"li"},"androidboot.enable_console=1")," to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering."),(0,i.kt)("li",{parentName:"ul"},"Some tweaks for BlissOS Go taken from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/GloDroid"},"GloDroid Project")," ."),(0,i.kt)("li",{parentName:"ul"},"You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/LMODroid"},"LMODroid")," ."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://web.archive.org/web/20220625232751/https://01.org/blogs/2019/intel-optimizations-android-pie-runtime-compiler"},"AutoFast JNI")," is now available on BlissOS 16."),(0,i.kt)("li",{parentName:"ul"},"BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu")))}d.isMDXComponent=!0},7980:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/asob-eoy23-8763430913ce10c1a6022e3f31260e78.jpeg"}}]); \ No newline at end of file diff --git a/assets/js/295317aa.5494a8c9.js b/assets/js/295317aa.5494a8c9.js new file mode 100644 index 0000000..e1bdcf9 --- /dev/null +++ b/assets/js/295317aa.5494a8c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkblog_1=self.webpackChunkblog_1||[]).push([[8837],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>b});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),u=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},h=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),p=u(a),c=i,b=p["".concat(l,".").concat(c)]||p[c]||d[c]||o;return a?n.createElement(b,s(s({ref:t},h),{},{components:a})):n.createElement(b,s({ref:t},h))}));function b(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=a.length,s=new Array(o);s[0]=c;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[p]="string"==typeof e?e:i,s[1]=r;for(var u=2;u{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>u});var n=a(7462),i=(a(7294),a(3905));const o={slug:"asob-q3-2023-2024",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",authors:["electrikjesus","hmtheboy154"],description:"A State of Bliss 3rd Quarter 2023 + 2024",img:"assets/asob_q4_2023/asob-eoy23.jpeg",date:new Date("2024-01-17T00:00:00.000Z"),comments:!0,tags:["blissos","android-generic","bliss-x86"]},s="A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",r={permalink:"/asob-q3-2023-2024",source:"@site/blog/2023/asob-q3-2023-2024.md",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",description:"A State of Bliss 3rd Quarter 2023 + 2024",date:"2024-01-17T00:00:00.000Z",formattedDate:"January 17, 2024",tags:[{label:"blissos",permalink:"/tags/blissos"},{label:"android-generic",permalink:"/tags/android-generic"},{label:"bliss-x86",permalink:"/tags/bliss-x-86"}],readingTime:6.975,hasTruncateMarker:!1,authors:[{name:"Jon West",title:"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs",url:"https://github.com/electrikjesus",imageURL:"https://avatars.githubusercontent.com/u/8572619?v=4",key:"electrikjesus"},{name:"HMTheBoy154",title:"Bliss OS Maintainer",url:"https://github.com/hmtheboy154",imageURL:"https://avatars.githubusercontent.com/u/39849246?v=4",key:"hmtheboy154"}],frontMatter:{slug:"asob-q3-2023-2024",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",authors:["electrikjesus","hmtheboy154"],description:"A State of Bliss 3rd Quarter 2023 + 2024",img:"assets/asob_q4_2023/asob-eoy23.jpeg",date:"2024-01-17T00:00:00.000Z",comments:!0,tags:["blissos","android-generic","bliss-x86"]},nextItem:{title:"Bliss OS - Development Updates 11-23",permalink:"/bliss-updates-1123"}},l={authorsImageUrls:[void 0,void 0]},u=[{value:"A revamped bootable installer",id:"a-revamped-bootable-installer",level:2},{value:"An approach to OTA updates on BlissOS",id:"an-approach-to-ota-updates-on-blissos",level:2},{value:"AV1 support for ffmpeg codecs",id:"av1-support-for-ffmpeg-codecs",level:2},{value:"Properly handle suspend",id:"properly-handle-suspend",level:2},{value:"BlissOS Go for all versions",id:"blissos-go-for-all-versions",level:2},{value:"Bump to kernel 6.1 for all builds",id:"bump-to-kernel-61-for-all-builds",level:2},{value:"Introducing BlissOS Zenith",id:"introducing-blissos-zenith",level:2},{value:"Other updates",id:"other-updates",level:2}],h={toc:u},p="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(p,(0,n.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"alt text",src:a(7980).Z,title:"A State of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024",width:"1920",height:"1080"})),(0,i.kt)("p",null,"It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here."),(0,i.kt)("p",null,"Leading Up To Now"),(0,i.kt)("p",null,"We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release."),(0,i.kt)("h2",{id:"a-revamped-bootable-installer"},"A revamped bootable installer"),(0,i.kt)("p",null,"While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven\u2019t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS ",(0,i.kt)("a",{parentName:"p",href:"https://twitter.com/blissos_org/status/1700613048518795683"},"is doing something inappropriate")," , we realized that it\u2019s time and decide to look back at our bootable installer to completely revamped it :"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (",(0,i.kt)("a",{parentName:"li",href:"https://github.com/docker-library/busybox"},"https://github.com/docker-library/busybox"),")"),(0,i.kt)("li",{parentName:"ul"},"Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora)."),(0,i.kt)("li",{parentName:"ul"},"efivar and efibootmgr are still being built from source, but are being updated to latest versions."),(0,i.kt)("li",{parentName:"ul"},"Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps ",(0,i.kt)("strong",{parentName:"li"},"fixing black screen issues when trying to install"),"."),(0,i.kt)("li",{parentName:"ul"},"Support installing with exFAT or F2FS (experimental)."),(0,i.kt)("li",{parentName:"ul"},"UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization."),(0,i.kt)("li",{parentName:"ul"},"Some label and text edit for better comprehensiveness of what the installer tries to do."),(0,i.kt)("li",{parentName:"ul"},"Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it."),(0,i.kt)("li",{parentName:"ul"},"Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.")),(0,i.kt)("p",null,"We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven\u2019t planned to support Secure Boot yet so please disable it before trying to install the OS."),(0,i.kt)("p",null,"Check out the screenshot here if you are interested : ",(0,i.kt)("a",{parentName:"p",href:"https://t.me/hmdumbground/111"},"https://t.me/hmdumbground/111")),(0,i.kt)("h2",{id:"an-approach-to-ota-updates-on-blissos"},"An approach to OTA updates on BlissOS"),(0,i.kt)("p",null,"A few months ago, we reached out to ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/erfanoabdi"},"@erfanoabdi")," for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it\u2019s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many."),(0,i.kt)("p",null,"The disadvantages that we observed is that this method does not support filesystems that are handled by ",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/html/next/filesystems/fuse.html"},"FUSE")," , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation."),(0,i.kt)("p",null,"All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future."),(0,i.kt)("h2",{id:"av1-support-for-ffmpeg-codecs"},"AV1 support for ffmpeg codecs"),(0,i.kt)("p",null,"Thanks to the work of ",(0,i.kt)("a",{parentName:"p",href:"https://konstakang.com/"},"@KonstaKANG"),", we\u2019ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by ",(0,i.kt)("a",{parentName:"p",href:"https://code.videolan.org/videolan/dav1d"},"libdav1d")," made by the developers at VLC and being built using ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/GloDroid/aospext"},"GloDroid\u2019s AOSPExt"),". We are also planning to support VA-API AV1 soon for hardware-accelerated solution."),(0,i.kt)("h2",{id:"properly-handle-suspend"},"Properly handle suspend"),(0,i.kt)("p",null,"While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/Kethen"},"@Kethen")," has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before."),(0,i.kt)("h2",{id:"blissos-go-for-all-versions"},"BlissOS Go for all versions"),(0,i.kt)("p",null,"Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants."),(0,i.kt)("h2",{id:"bump-to-kernel-61-for-all-builds"},"Bump to kernel 6.1 for all builds"),(0,i.kt)("p",null,"Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google\u2019s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve."),(0,i.kt)("h2",{id:"introducing-blissos-zenith"},"Introducing BlissOS Zenith"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"alt text",src:a(3768).Z,title:"Bliss OS Zenith",width:"1920",height:"1080"})),(0,i.kt)("p",null,"We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can\u2019t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we\u2019ve decided that we will make another variant, this time with 2 key differences :"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only build the latest version of BlissOS available for this variant, so for now it\u2019s 16."),(0,i.kt)("li",{parentName:"ul"},"Using stable branch of the linux kernel.")),(0,i.kt)("p",null,"We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, \u201cWhat if we ask our community ?\u201d and decide to ask people to give this new build a name on our ",(0,i.kt)("a",{parentName:"p",href:"https://twitter.com/blissos_org/status/1733872766133403666"},"Twitter")," & our group chat. After looking through all the suggestions, we\u2019ve decided to choose ",(0,i.kt)("inlineCode",{parentName:"p"},"Zenith")," ."),(0,i.kt)("p",null,' \\\nBlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6'),(0,i.kt)("h2",{id:"other-updates"},"Other updates"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Kethen"},"@Kethen")," (again)."),(0,i.kt)("li",{parentName:"ul"},"alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/thesofproject/sof-bin"},"sof-firmware")," from Intel is being included to support more audio hardware."),(0,i.kt)("li",{parentName:"ul"},"All builds are now using Mesa 23.3.3"),(0,i.kt)("li",{parentName:"ul"},"Some fixes to the sensors HAL (thanks to ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Kethen"},"@Kethen")," again)"),(0,i.kt)("li",{parentName:"ul"},"Fixed an issue that desktop Nvidia GPUs with nouveau can\u2019t be able to get into the GUI."),(0,i.kt)("li",{parentName:"ul"},"Support KeeTouch touchscreens."),(0,i.kt)("li",{parentName:"ul"},"Rotation quirks for Chuwi Ubook X 2023"),(0,i.kt)("li",{parentName:"ul"},"Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS."),(0,i.kt)("li",{parentName:"ul"},"Users can now fix their audio issues after install by putting their hardware\u2019s alsa state definitions in ",(0,i.kt)("inlineCode",{parentName:"li"},"/data/vendor/alsa/.state")),(0,i.kt)("li",{parentName:"ul"},"Updated KernelSU to latest version."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Console is back"),", you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add ",(0,i.kt)("inlineCode",{parentName:"li"},"androidboot.enable_console=1")," to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering."),(0,i.kt)("li",{parentName:"ul"},"Some tweaks for BlissOS Go taken from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/GloDroid"},"GloDroid Project")," ."),(0,i.kt)("li",{parentName:"ul"},"You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/LMODroid"},"LMODroid")," ."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://web.archive.org/web/20220625232751/https://01.org/blogs/2019/intel-optimizations-android-pie-runtime-compiler"},"AutoFast JNI")," is now available on BlissOS 16."),(0,i.kt)("li",{parentName:"ul"},"BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu")))}d.isMDXComponent=!0},3768:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/BLISS-OS_ZENITH-0c69d500cecf943295f5db8d4360e9d1.png"},7980:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/asob-eoy23-8763430913ce10c1a6022e3f31260e78.jpeg"}}]); \ No newline at end of file diff --git a/assets/js/2e801cce.97ac8e53.js b/assets/js/2e801cce.97ac8e53.js new file mode 100644 index 0000000..cf3a01e --- /dev/null +++ b/assets/js/2e801cce.97ac8e53.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkblog_1=self.webpackChunkblog_1||[]).push([[9450],{6029:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"asob-q3-2023-2024","metadata":{"permalink":"/asob-q3-2023-2024","source":"@site/blog/2023/asob-q3-2023-2024.md","title":"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)","description":"A State of Bliss 3rd Quarter 2023 + 2024","date":"2024-01-17T00:00:00.000Z","formattedDate":"January 17, 2024","tags":[{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":6.975,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"},{"name":"HMTheBoy154","title":"Bliss OS Maintainer","url":"https://github.com/hmtheboy154","imageURL":"https://avatars.githubusercontent.com/u/39849246?v=4","key":"hmtheboy154"}],"frontMatter":{"slug":"asob-q3-2023-2024","title":"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)","authors":["electrikjesus","hmtheboy154"],"description":"A State of Bliss 3rd Quarter 2023 + 2024","img":"assets/asob_q4_2023/asob-eoy23.jpeg","date":"2024-01-17T00:00:00.000Z","comments":true,"tags":["blissos","android-generic","bliss-x86"]},"nextItem":{"title":"Bliss OS - Development Updates 11-23","permalink":"/bliss-updates-1123"}},"content":"![alt text](assets/asob_q4_2023/asob-eoy23.jpeg \\"A State of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024\\")\\n\\nIt is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.\\n\\nLeading Up To Now\\n\\nWe have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.\\n\\n\\n## A revamped bootable installer\\n\\nWhile there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven\u2019t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS [is doing something inappropriate](https://twitter.com/blissos_org/status/1700613048518795683) , we realized that it\u2019s time and decide to look back at our bootable installer to completely revamped it :\\n\\n\\n\\n* Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker ([https://github.com/docker-library/busybox](https://github.com/docker-library/busybox))\\n* Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).\\n* efivar and efibootmgr are still being built from source, but are being updated to latest versions.\\n* Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps **fixing black screen issues when trying to install**.\\n* Support installing with exFAT or F2FS (experimental).\\n* UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.\\n* Some label and text edit for better comprehensiveness of what the installer tries to do.\\n* Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.\\n* Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.\\n\\nWe believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven\u2019t planned to support Secure Boot yet so please disable it before trying to install the OS.\\n\\nCheck out the screenshot here if you are interested : https://t.me/hmdumbground/111\\n\\n\\n## An approach to OTA updates on BlissOS\\n\\nA few months ago, we reached out to [@erfanoabdi](https://github.com/erfanoabdi) for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it\u2019s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.\\n\\nThe disadvantages that we observed is that this method does not support filesystems that are handled by [FUSE](https://www.kernel.org/doc/html/next/filesystems/fuse.html) , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.\\n\\nAll versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.\\n\\n\\n## AV1 support for ffmpeg codecs\\n\\nThanks to the work of [@KonstaKANG](https://konstakang.com/), we\u2019ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by [libdav1d](https://code.videolan.org/videolan/dav1d) made by the developers at VLC and being built using [GloDroid\u2019s AOSPExt](https://github.com/GloDroid/aospext). We are also planning to support VA-API AV1 soon for hardware-accelerated solution.\\n\\n\\n## Properly handle suspend\\n\\nWhile making her first big contribution to the project which is providing fixes to the Steam Deck, our friend [@Kethen](https://github.com/Kethen) has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.\\n\\n\\n## BlissOS Go for all versions\\n\\nAnnounced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.\\n\\n\\n## Bump to kernel 6.1 for all builds\\n\\nKernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google\u2019s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.\\n\\n\\n## Introducing BlissOS Zenith\\n\\n\\n![alt text](assets/asob_q4_2023/BLISS-OS_ZENITH.png \\"Bliss OS Zenith\\")\\n\\nWe realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can\u2019t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we\u2019ve decided that we will make another variant, this time with 2 key differences :\\n\\n\\n\\n* Only build the latest version of BlissOS available for this variant, so for now it\u2019s 16.\\n* Using stable branch of the linux kernel.\\n\\nWe want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, \u201cWhat if we ask our community ?\u201d and decide to ask people to give this new build a name on our [Twitter](https://twitter.com/blissos_org/status/1733872766133403666) & our group chat. After looking through all the suggestions, we\u2019ve decided to choose `Zenith` .\\n\\n \\\\\\nBlissOS Zenith, The new flagship build of BlissOS, intended for \\"chasing the latest\\". Starting now with version 16.9.4 and kernel 6.6\\n\\n\\n## Other updates\\n\\n\\n\\n* A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to [@Kethen](https://github.com/Kethen) (again).\\n* alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues.\\n* [sof-firmware](https://github.com/thesofproject/sof-bin) from Intel is being included to support more audio hardware.\\n* All builds are now using Mesa 23.3.3\\n* Some fixes to the sensors HAL (thanks to [@Kethen](https://github.com/Kethen) again)\\n* Fixed an issue that desktop Nvidia GPUs with nouveau can\u2019t be able to get into the GUI.\\n* Support KeeTouch touchscreens.\\n* Rotation quirks for Chuwi Ubook X 2023\\n* Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS.\\n* Users can now fix their audio issues after install by putting their hardware\u2019s alsa state definitions in `/data/vendor/alsa/.state`\\n* Updated KernelSU to latest version.\\n* **Virtual Console is back**, you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add `androidboot.enable_console=1` to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering.\\n* Some tweaks for BlissOS Go taken from [GloDroid Project](https://github.com/GloDroid) .\\n* You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from [LMODroid](https://github.com/LMODroid) .\\n* [AutoFast JNI](https://web.archive.org/web/20220625232751/https://01.org/blogs/2019/intel-optimizations-android-pie-runtime-compiler) is now available on BlissOS 16.\\n* BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu"},{"id":"bliss-updates-1123","metadata":{"permalink":"/bliss-updates-1123","source":"@site/blog/2023/bliss-updates-1123.md","title":"Bliss OS - Development Updates 11-23","description":"BlissOS Updates","date":"2023-11-20T00:00:00.000Z","formattedDate":"November 20, 2023","tags":[{"label":"blissos","permalink":"/tags/blissos"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":5.4,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"}],"frontMatter":{"slug":"bliss-updates-1123","title":"Bliss OS - Development Updates 11-23","authors":["electrikjesus"],"description":"BlissOS Updates","img":"assets/blissos-updates-2023-11-20.png","date":"2023-11-20T00:00:00.000Z","comments":true,"tags":["blissos","bliss-x86"]},"prevItem":{"title":"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)","permalink":"/asob-q3-2023-2024"},"nextItem":{"title":"BlissOS 16.8 codenamed Typhoon-x86 is now available","permalink":"/bliss-168"}},"content":"![alt text](assets/blissos-updates-2023-11-20.png \\"Bliss OS - Development Updates 11-23\\")\\n\\nSince the release of our stable Bliss OS 14.x & 15.x builds, we have had the chance to make a number of advancements on the OS in various areas. We will start the post with the updates coming from the value added contributions on the business side of things, then end with the updates being merged into the Bliss OS builds. \\n\\n\\n## Bliss Bass - beta builds started already\\n\\n![alt_text](assets/bliss-updates-1123/blissbass-tabletgo.png \\"Bliss Bass - Tablet Go - IOT/IIOT test build\\")\\n\\nWe have started to push some of the source for our Bliss Bass (Broad Apparatus Support System) builds that we use for customer focused builds based on Bliss OS, and the feedback from that has been pushing our development on the platform in a positive direction. These builds will be 100% ready for use in products, and will come with a number of added configuration options for features, UI/UX, updates, and more. We have released a few beta builds of the base FOSS variant of Bliss Bass for testing on Sourceforge. The initial flavors we will offer are:\\n\\n\\n* Kiosk variant\\n* Desktop variant\\n* Tablet variant\\n* Tablet Go - IOT/IIOT variant\\n* More on its way\\n\\nThere will be a new website created for these builds, and they will still be free to download and test, although the initial test builds will come watermarked. This will ensure that we are able to produce these test builds for the public while still retaining our licensing rights for it. \\n\\nWe are still collecting valuable information from our customers and would love to hear what our users think of this approach. Please leave a comment and let us know your thoughts. \\n\\n\\n# Bliss OS Updates\\n\\nThere are a few important changes that we are gearing up for on Bliss OS. First, on Bliss OS 14.x & 15.x, we will be shipping with Kernel 6.1, this includes our Surface builds. Second change will be for BlissOS 14.x, 15.x & 16.x (Generic/Surface), and that will be a switch to a new Audio HAL made by Intel\u2019s Project Celadon\\n\\nSwitching to the new Audio HAL will be an important change for us, so we would like to ask everyone to help us to test these new HAL so that we can have feedback and improve it further. Once tested, we will update the builds to include the new audio HAL changes. \\n\\nPlease join our Discord or Telegram to gain access to the new test builds of BlissOS 15.8.8 with Kernel 6.1.36 and the new Audio HAL.\\n\\n\\n## Go builds & Low RAM devices can now bypass some options in Settings\\n\\nIn BlissOS Go builds, there are some options that are being blocked by Android. Most notably the option to allow apps to draw on other apps. You will see this text when you are trying to grant the permission :\\n\\n\\n![alt_text](assets/bliss-updates-1123/image1.jpg \\"Draw over apps warning\\")\\n\\n\\nWith the latest update of BlissOS, we\'ve included a switch in Blissify Settings to allow bypassing this restriction. So now you are able to use apps like Smart Dock or Taskbar just like the usual generic version. The new option will be available in all of the upcoming BlissOS releases including 14, 15 and 16.\\n\\n\\n## A/B OTA Updates - rolling out soon\\n\\nOur efforts on Bliss Co-Labs have been paying off and we have a number of features and options developed from there heading to our open-source Bliss OS builds soon. The recently merged changes for the Bliss Setup Wizard for Bliss OS 15.x is one of those. \\n\\nThe other will be coming in the form of OTA updates for Bliss OS. These updates will bring the following improvements to the system:\\n\\n\\n* Separate A/B slots for all three images (system.img, initrd.img & kernel)\\n* System Rollbacks - Native bootctrl behavior\\n* Update server controlled by our own [Shipper Stack](https://github.com/shipperstack)\\n\\nWe have worked around a few issues with shipping sfs/erofs images and will keep the community posted on the progress. The early beta builds might not have all those fixes included just yet, so just be aware if you are trying to mount as read/write.\\n\\n\\n## Grub updates to v2.06 - also rolling out soon\\n\\nNow that we have the groundwork laid out for updating Grub with our A/B OTA updates, we decided it was best to update to the current version of Grub that Linux uses, and in doing so, we also solve an issue that 12th gen+ Intel CPU\u2019s have had where the screen is black after selecting any boot option from Grub. This means that the most recent gen CPU\u2019s will now be supported by both the kernel and the bootloader for Bliss OS. \\n\\nThis effort came from a few different contributors, so we have an initial solution we will likely release, and then split the other contributions into phases where we merge binary updates, libraries, modules, installer updates, and others separately in order to ensure stability as we move forward. \\n\\n\\n## OEM Install mode options - also rolling out soon\\n\\nBliss OS builds (and Android-x86) have had some major issues with the auto-install mode that have been the source of many headaches and many long nights of reinstalling other operating systems in order to correct. So we took some time to update the current auto-install solution and give it a more proper name of OEM install, along with adding a few more options for unattended installation (Force):\\n\\n\\n* OEM Install (same as old auto-install, will require some interaction)\\n* OEM Install - Force MBR [Unattended Install] (if bios is set to use Legacy)\\n* OEM Install - Force EFI [Unattended Install] (if bios is set to use UEFI/EFI)\\n* OEM Install - Force [Unattended Install] (autodetect MBR/EFI)\\n* OEM Update - Will auto-update a previous default install or OEM install\\n\\nThese modes are intended for factory setup and will not work with devices that come with Windows unless you wipe all partitions except for EFI and leave a second OS partition with all the remaining space. \\n\\n\\n## We have more on the way\\n\\nWe don\u2019t want to spoil any of the surprises we have planned, so we will leave things here for this post. Just know that there will be a lot of contributions heading towards Bliss OS source, coming from the efforts of Bliss Co-Labs\u2019 and the community in helping bring our project even further than we ever thought possible. \\n\\nThanks again and enjoy the builds!"},{"id":"bliss-168","metadata":{"permalink":"/bliss-168","source":"@site/blog/2023/bliss-168.md","title":"BlissOS 16.8 codenamed Typhoon-x86 is now available","description":"BlissOS 16.8 release","date":"2023-07-15T00:00:00.000Z","formattedDate":"July 15, 2023","tags":[{"label":"blissos","permalink":"/tags/blissos"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":2.115,"hasTruncateMarker":false,"authors":[{"name":"HMTheBoy154","title":"Bliss OS Maintainer","url":"https://github.com/hmtheboy154","imageURL":"https://avatars.githubusercontent.com/u/39849246?v=4","key":"hmtheboy154"}],"frontMatter":{"slug":"bliss-168","title":"BlissOS 16.8 codenamed Typhoon-x86 is now available","authors":["hmtheboy154"],"description":"BlissOS 16.8 release","img":"assets/bliss16.8/bliss16.8.jpg","date":"2023-07-15T00:00:00.000Z","comments":true,"tags":["blissos","bliss-x86"]},"prevItem":{"title":"Bliss OS - Development Updates 11-23","permalink":"/bliss-updates-1123"},"nextItem":{"title":"A State of Bliss : A Blissful Return - 2nd Quarter 2023","permalink":"/asob-q2-2023"}},"content":"![alt text](assets/bliss16.8/bliss16.8.jpg \\"A State of Bliss : A Blissful Return - 2nd Quarter 2023\\")\\n\\nJuly is a busy month for us here in BlissLabs. With the release of Android 13 QPR3, we\'ve decided that both BlissROMs and BlissOS this time will release the new updates on the same day which is pretty special for both of us.\\n\\nYou can check out all the changes BlissROMs made here for more info : https://blog.blissroms.org/2023-07-15-typhoon-16.8-updates-jul-2023/\\n\\n## BlissOS exclusive changes\\n\\nBeside from QPR3 and the changes made by BlissROMs, BlissOS offer some exclusive changes too. There are 3 main things :\\n\\n### New About Tablet design\\n\\n![alt text](assets/bliss16.8/abouttab.png)\\n\\nBlissROMs gave us the new About Phone/Tablet design, here we made a few modification to it. First, Processor name will show the actual CPU name of the device instead of getting the SoC name with prop `ro.soc.model`. Device name is a tablet instead of a phone and the screen to show the wallpaper is set to horizontal with 16:9 aspect ratio. Making this a nice tablet info screen for BlissOS.\\n\\n### Exclusive Launcher Features\\n\\nTo say this is an exclusive is a bit odd, because submitted the patches to Gerrit. But BlissROMs decided to put these in the next release (16.9) so we just gonna say that this is exclusive to BlissOS 16.8 :p. \\n\\nFirst, the Split button is now properly modified based on the new Recents button layouts. \\n\\n![alt text](assets/bliss16.8/split.png)\\n\\nNot only that, you can also turn it off in Recents Settings\\n\\n![alt text](assets/bliss16.8/splitsetting.png)\\n\\nNext, by default memory info in Recents is on the top of the screen, we\'ve provided an option to move it down again. We also calculated and change the margin of memory info when you are on Persistent Taskbar or Transient Taskbar so that meminfo will not be covered by taskbars.\\n\\n![alt text](assets/bliss16.8/meminfosetting.png)\\n![alt text](assets/bliss16.8/meminfo.png)\\n\\nFinally, **Developer Options is back** ! You can find it under Misc Settings when Developer Options in Settings is enabled.\\n\\n![alt text](assets/bliss16.8/devsettings.jpg)\\n\\n### Shipping with Kernel 6.1\\n\\nBlissOS 16.8 will be the first build to ship with Kernel 6.1. Currently I\'m still using the same recipe, Google\'s Common Kernel `android14-6.1-lts` branch with xanmod patches and some fixes for Android-x86 but because this is Kernel 6.1, more hardware will be supported especially the Steam Deck with some drivers & fixes from Valve that they put on their SteamOS\' kernel.\\n\\nAnd that\'s it for this month with the new release of 16.8, we hope that you will enjoy it even though for BlissOS 16 it\'s still in Beta stage.\\n\\n#StayBlissful #FeelTheWind\ud83c\udf2a"},{"id":"asob-q2-2023","metadata":{"permalink":"/asob-q2-2023","source":"@site/blog/2023/asob-q2-2023.md","title":"A State of Bliss : A Blissful Return - 2nd Quarter 2023","description":"A State of Bliss 2nd Quarter 2023","date":"2023-07-02T00:00:00.000Z","formattedDate":"July 2, 2023","tags":[{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"},{"label":"lmodroid","permalink":"/tags/lmodroid"},{"label":"blissoslinux","permalink":"/tags/blissoslinux"}],"readingTime":14.95,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"},{"name":"HMTheBoy154","title":"Bliss OS Maintainer","url":"https://github.com/hmtheboy154","imageURL":"https://avatars.githubusercontent.com/u/39849246?v=4","key":"hmtheboy154"}],"frontMatter":{"slug":"asob-q2-2023","title":"A State of Bliss : A Blissful Return - 2nd Quarter 2023","authors":["electrikjesus","hmtheboy154"],"description":"A State of Bliss 2nd Quarter 2023","img":"assets/asob_q2_2023/image6.png","date":"2023-07-02T00:00:00.000Z","comments":true,"tags":["blissos","android-generic","bliss-x86","lmodroid","blissoslinux"]},"prevItem":{"title":"BlissOS 16.8 codenamed Typhoon-x86 is now available","permalink":"/bliss-168"},"nextItem":{"title":"[announcement] Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","permalink":"/bliss-os-linux-hybrid-preview"}},"content":"![alt text](assets/asob_q2_2023/image6.png \\"A State of Bliss : A Blissful Return - 2nd Quarter 2023\\")\\n\\nThe last couple months have been pretty busy at Bliss. Since January/February, we\u2019ve been able to get a lot of work done on many different fronts. With my return to Bliss, we\u2019ve started a collaborative contract development and consulting firm named [Bliss Co-Labs](https://blisscolabs.dev/), and have been working on a few client projects. Without letting the open-source side of things skip a beat, we\u2019ve also been busy making changes and working on quite a few new updates and projects. So we think it\u2019s about time to at least announce a few of the changes we have in store, as well as a few announcements for new projects or major project updates. \\n\\n## Updates\\n\\nLet\u2019s start with the release updates first. HMTheBoy154 has been busy pushing out some truly amazing innovations for Bliss OS, bringing the platform to support many more devices, and expanding its configurable layers past the graphics stack, and into many others. \\nHe has this to say about what has been going on recently:\\n\\n*Ever since Jon joined Esper, I\u2019ve decided to continue his work. If you join our Telegram group, you\u2019ll notice that a lot has changed since the last releases like Bliss OS 14.3 or 15.1. In this post, let\u2019s take a look at what\u2019s new in these versions.*\\n\\n### Bliss OS v14.10 Release\\n\\n![alt text](assets/asob_q2_2023/image9.png \\"Bliss OS v14.10 Release\\")\\n\\n*Compared to 14.3, the new Bliss OS 14.10 has improved a lot. Although there are some features that I have to remove for example the long iso name to explain what\'s inside the build or Gearlock (while it is a really good recovery solution for Android-x86, I still decided to remove it because it need to be rewritten), I\'ve been putting a lot of changes into it, some of them were on my old [ProjectSakura-x86](https://forum.xda-developers.com/t/beta-11-projectsakura-x86-for-pcs-official.4329533/) builds. Also, please remember that most of these are also available in Bliss OS 15.8 builds and more on that later.*\\n\\n*Here are the new changes :*\\n\\n- Taskbar apps like farmerbb\'s Taskbar or axel358\'s Smart Dock are being updated to the latest.\\n- Kernel has been updated to 5.15.x, this is the same kernel I use on PS-x86 but now with more optimization & hardware support. Also mgLRU, eBPF, DMA-BUF Heap, etc are all being enabled.\\n- ESDFS is being used to bind mount apps\' data just like ChromeOS, this is to fix apps that can\'t be able to read data or obb on Bliss, causing it to crash.\\n- Using Intel\'s Bluetooth HAL, with some changes from Android-x86 to support more Bluetooth cards than just Intel one.\\n- You can now make a list like [modprobe.conf](https://linux.die.net/man/5/modprobe.conf) at /data/vendor/modules.options or /data/vendor/modules.blocklist if you want to blacklist a module.\\n- Bliss can now show the device information just like the old Bliss OS 11 or Android-x86.\\n- virt_wifi is now disabled by default, you can still use it with VIRT_WIFI=1\\n- If you are using a tablet or convertible laptops that have an accelerometer, our iio sensors can now be able to rotate the screen.\\n- PGO optimization for art. This is a feature by Intel to enhance VM workload performance, you can read about it [here](https://www.intel.com/content/www/us/en/developer/articles/technical/enhance-vm-workloads-performance-with-pgo.html). \\n- AutoFast JNI, this is also [another feature by Intel](https://01.org/blogs/2019/intel-optimizations-android-pie-runtime-compiler) to improve performance on Android running in x86 hardware . \\n- zram is enabled by default with zstd compression.\\n- aptX & aptX HD Bluetooth codecs support using Android 13\'s encoders. Bliss is the first Android build on x86 hardware to get this publicly.\\n- `toybox` is being upstreamed with additional tools such as `eject` or `rfkill`. Also, we\'ve included usb.ids and pci.ids for `lsusb` & `lspci` so you can check the USB or PCI devices name.\\n- If you want to mount all of your partitions into Bliss, add `INTERNAL_MOUNT=1` into the cmdline.\\n- If you want to try AOSP\'s experimental \\"PC Mode\\", add `PC_MODE=1` into the cmdline and try.\\n- If you want your Bliss OS build to be recognized as a Google Play Games for PC image, add `HPE=1` into the cmdline and reset Play Store.\\n- You can now force your mouse click as touch, this is to help fixing apps that only use touch input only.\\n- Mouse acceleration can be disabled ,also scroll wheel too.\\n- Night Light is now available.\\n- BoringDroid is back. \\n- For media, while using OMX.ffmpeg codecs as usual, I also provide Codec2 implementation of ffmpeg codecs, made by Micheal Goffioul. Alongside with that, new VAAPI drivers for newer Intel iGPU & other hardware is also being built to support hardware acceleration decoder. I also include a lot of parameters that you can use to get the best result from Bliss OS, you can find it at our [Docs](https://docs.blissos.org/configuration/configuration-through-command-line-parameters/).\\n- For graphics, our graphics stack is being improved significantly compared to the previous builds, not only that, like media, we provide a lot of options through parameters too. You can see some of our changes here like : \\n * Vulkan is now being enabled by default. `VULKAN=1` is dead, long live `VULKAN=1`. \\n * Mesa is being updated to latest version (23.1) with LLVM16 for AMDGPUs.\\n * Also in Mesa we\'ve activated xmlconfig, with this you can create custom configuration for apps & games related to graphics like spoofing GPUs name & vendor. We will update more information in our Docs soon.\\n * While we include a lot of Gralloc & HWC options and we pick the best one depending on what GPU Bliss is running. So if you don\'t want to play with any of this, you can just be sure that you are running the best one that is being tested by us & the community.\\n * For minigbm (and all the different variations that we have), you can switch to Gralloc4 with `GRALLOC4_MINIGBM=1` parameter.\\n * You can force OpenGLES version with `FORCE_GLES=` parameter.\\n * For software rendering solutions, not only we are using Swiftshader, but also SwANGLE. A combination of ANGLE EGL driver & SwiftShader Vulkan made by Google. SwANGLE is already being used on Android 13 but we\'ve backported it.\\n\\n*And for the first time, Bliss is using the new KernelSU for root solution. Not only that, Bliss OS is the first x86_64 Android build ever to integrate KernelSU into it.*\\n\\n![alt text](assets/asob_q2_2023/image13.png \\"Bliss with KSU\\")\\n\\n*These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our [blissos-x86 sourceforge](https://sourceforge.net/projects/blissos-x86/) (where we release our stable builds).*\\n\\n### Bliss OS v15.8 Release\\n\\n![alt text](assets/asob_q2_2023/image11.png \\"Bliss OS v15.8 Release\\")\\n\\n*Bliss OS 15.8 has a different starting point than Bliss OS 15.1. Firstly, Bliss OS 15.8 is based on Android 12L unlike 15.1 which uses Android 12. Second, Bliss OS 15.8 common tree (`device/generic/common`) is based on my 14.10 tree with a few patches instead of using 15.1 one. Which is why I said that most of the new features from 14.10 are also available on 15.8. All the changes you see in 14.10 are also in this version, but with Android 12L instead.*\\n\\n*These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our [blissos-x86 sourceforge](https://sourceforge.net/projects/blissos-x86/) (where we release our stable builds).*\\n\\n### The return of Bliss OS Surface Builds\\n\\n![alt text](assets/asob_q2_2023/image10.png \\"Bliss OS Surface\\")\\n\\n*For Bliss OS, Surface Builds used to be a thing in Bliss OS 11 days with a few builds available. Now we\u2019re happy to announce that we\u2019re bringing back the build with a newer kernel (5.15) using patches from [linux-surface](https://github.com/linux-surface/linux-surface) and using the latest ipts/ithc kernel driver as well as iptsd daemon to support touchscreen.*\\n\\n***NOTE** : Not every Microsoft Surface device has to install surface build to make it work, some can just use generic builds, please check our [Documentation](https://docs.blissos.org/) for more info.*\\n\\n## Releases\\n\\nHMTheBoy154 has been working on a super secret project for Bliss, and we are happy to announce the initial beta release of Bliss OS v16.6 (Android 13) for x86_64v2 PC\u2019s, laptops, tablets, etc. Check the release notes for that below. \\n\\n### Bliss OS v16 Beta Release\\n\\n![alt text](assets/asob_q2_2023/image4.png \\"Bliss OS v16 Release\\")\\n\\n*Yes, you heard that right. Today I\'m happy to announce the first public beta build of Bliss OS 16. The development has already started since October 2022 and I\'ve been working together with not only Android-x86 members & contributors, but also with BlissROMs members and we\'ve made a lot of progress since then. We even work with the LibreMobileOS team to fix some issues like freeform.*\\n\\n*Currently BlissOS 16 is on 16.7 to match with the version on BlissROMs. While it\u2019s still on Beta stage, we can\'t wait to release our new images so you can experience them.*\\n\\n### New Bliss OS Logo Announcement\\n\\nWith the Bliss OS 16 announcement, Designer [XelXen (aka WildWaze)](https://github.com/xelxen/) has also been working with us on a redesigned logo for this and future releases. Not only that, he also included some new wallpapers for us to match with this new design elements.\\n\\n```\\n\u201cThe new logo of BlissOS depicts a human figure standing in between petals of lotus, representing the transparency and diversity of the operating system. The figure also holds a perfectly shaped lotus flower, which is the emblem of BlissLabs and perfection.\u201d\\n```\\n\\nLogo 1 | Logo 2\\n:-------------------------:|:-------------------------:\\n![alt text](assets/asob_q2_2023/image12.png \\"Bliss OS v16\\") | ![alt text](assets/asob_q2_2023/image14.png \\"Bliss OS v16\\")\\n\\nWallpaper 1 | Wallpaper 2\\n:-------------------------:|:-------------------------:\\n![alt text](assets/asob_q2_2023/wall01.png \\"Bliss OS v16\\") | ![alt text](assets/asob_q2_2023/wall02.png \\"Bliss OS v16\\")\\n\\nWallpaper 3 | Wallpaper 4\\n:-------------------------:|:-------------------------:\\n![alt text](assets/asob_q2_2023/wall03.png \\"Bliss OS v16\\") | ![alt text](assets/asob_q2_2023/wall04.png \\"Bliss OS v16\\")\\n\\n### Android-Generic Project Manager Release\\n\\nWe are excited to announce the release of Android-Generic Project Manager (AGPM), a tool that makes it easier to build and configure AOSP based projects. AGPM provides a number of features that can help you save time and effort, including:\\n\\n- Automatic repo init: AGPM can automatically initialize a new AOSP project or update an existing one.\\n- Python virtualenv support: AGPM can wrap your project in a Python virtualenv, which allows you to install packages and run scripts without affecting the rest of your system (quite handy when you are using a shared server over ssh and do not have root access for installing packages).\\n- Check Project Status: AGPM can check a project folders repos against the manifest, and it will build a list of any repos with uncommitted changes, or if the repos are not pushed yet. \\n- Option to push changes: Depending on what Update Checking finds, you can push your updates to the repos found to be behind\\n- Common Tools: Create New, Update, Delete, etc. \\n\\nScreenshots:\\n\\n![alt text](assets/asob_q2_2023/image8.jpg)\\n\\n(Main Menu window: Zenity mode)\\n\\n![alt text](assets/asob_q2_2023/image2.jpg)\\n\\n(Check Project Status results: Zenity mode)\\n\\nCompatibility:\\n\\nAGPM is designed to be flexible and extensible, so you can add your own project configurations and features. Currently, we support the following projects:\\n- AOSP\\n- Bliss ROM\\n- Lineage OS\\n- Bliss OS\\n\\nWe have a planned features list a mile long, and we are always working to add support for more projects. If you have any feedback or suggestions, please feel free to open an issue on the [AGPM GitHub repository](https://github.com/android-generic/ag-project-manager).\\n\\nWe hope you find AGPM to be a useful tool for building and configuring AOSP based projects.\\n\\n### Android-Generic Project (v2023) Release\\n\\nWe are excited to announce the release of Android-Generic Project (v2023), a major update that brings many new features and improvements.\\n\\nKey Features\\n\\n- Support for multiple targets: AG v2023 can now be used to build images for a variety of targets, including Android phones, tablets, Raspberry Pi, emulators, TVs, and PCs. As usual, we start things out with the PC target, and let that act as an example for the rest.\\n- Target-based system: AG v2023 uses a new target-based system that makes it easier to build images for specific targets.\\n- Target variants: AG v2023 now supports target variants, which allow you to build images with different configurations for different targets. This system is used to have separate base structures for targets. So for the PC builds (target), we will have the variants: Android-x86 base, Bliss OS base, Bliss OS Go, etc.\\n- Conditions for menu items: AG v2023 allows you to use conditions to control the availability of menu items. This makes it possible to create more complex and flexible menus.\\n- Addon templates: AG v2023 includes addon templates that you can use to create your own addons. Addons are a great way to extend the functionality of AG.\\n- Public and private addons: AG v2023 supports both public and private addons. Public addons are available to everyone, while private addons are only available to a select group of users. \\n\\nUpdates\\n\\nIn addition to the new features listed above, AG v2023 also includes a number of updates and improvements. These include:\\n- Updates to the easy-menu system for more dynamic menu options.\\n- A new targets based system.\\n- The ability to add target variants.\\n- The ability to lock the process with conditions per option.\\n- Updated api-32 support.\\n- Added api-33 support.\\n- Reworked manifest structure to include in targets.\\n- Added addon template for contributors to use to create their own addons.\\n- Added Targets template for contributors to use to create their own targets.\\n- Reworked open/private addon structure and added new addons.\\n\\nGeneric/PC Addons\\n\\nThe following new addons have been added for generic/PC targets:\\n- Configurable battery stats addon\\n- Rotation/orientation configuration options through Grub\\n- Expanded LMKD configuration addon\\n- LMKD tuning options through Grub\\n- Memory tuning options through Grub\\n- Performance tuning options through Grub\\n\\nLicensed Addons\\n\\nThe following new addons have been added for licensed targets:\\n- Recents tuning addon\\n- Addons for locking various features\\n- Customizing new user functions addon\\n- Configuring packages on boot (hide/disable/unhide/enable)\\n- Addon for locking the ability for the user to change settings\\n\\nSpecial Requests? contact us\\n\\nWe hope you enjoy these new features and improvements!\\n\\n### Bliss Broad Apparatus Support System (Bliss-Bass)\\n*(Automated Vendor Customization Layer for Bliss OS / Bliss OS Go)*\\n\\nBliss Broad Apparatus Support System (Bliss-Bass) is an automated vendor customization layer for Bliss OS / Bliss OS Go (and eventually BlissROM). It is a toolkit that can be used to help with rebranding, customizations, and app changes for Bliss OS based builds. The toolkit comes with a variety of functions, including:\\n- An autopatch function that applies all required changes to the Bliss OS build.\\n- The ability to define custom sets of changes to be applied before customization.\\n- Integration with AOSP\'s build system, which allows a variety of tools to be accessed before the lunch process starts.\\n- The ability to display a customization menu from the pre-lunch hook, using either dialog or zenity, depending on whether or not a GUI is detected.\\n\\nThe Bliss-Bass toolkit is designed to make it easier for users and companies to start off using Bliss for their products. By automating many of the tasks involved in rebranding and customization, Bliss-Bass can save time and energy, allowing users or engineers to focus on the creative parts of the process.\\n\\nHere are some additional details about the autopatch function:\\n- The autopatch function is available from the command line using \u2018check_patchsets\u2019 or through the menu.\\n- The autopatch function can be used to apply a variety of changes to the Bliss OS build, including changes to the kernel, bootloader, system image, and vendor image.\\n- The autopatch function can be used to define custom sets of changes to be applied. This can be useful for organizations that need to make specific changes to Bliss OS for their own products.\\n\\nJust like some of our other toolkits, this project integrates itself into AOSP\u2019s build system and allows a variety of tools to be accessed before the lunch process starts:\\n\\n![alt text](assets/asob_q2_2023/image1.jpg)\\n\\nAnd when you trigger the customization menu to display from the pre-lunch hook, it can use \u2018dialog\u2019 if there is no display or GUI detected:\\n\\n![alt text](assets/asob_q2_2023/image3.jpg)\\n\\nOr `zenity`, to display the menu options if it does detect a GUI:\\n\\n![alt text](assets/asob_q2_2023/image5.jpg)\\n\\nFurther development is being made to add even more options and tools to Bliss-Bass. The project is open source and available on GitHub at https://github.com/BlissRoms-x86/platform_vendor_branding.\\n\\n### Bliss OS Linux Hybrid Preview\\n*(Bliss OS Go edition)*\\n\\n![alt text](assets/asob_q2_2023/image7.jpg)\\n\\nRead More in last weeks release post: [Bliss OS Linux Hybrid Preview](https://blog.blissos.org/bliss-os-linux-hybrid-preview)\\n\\n## New Collaborations\\n### LibreMobileOS\\n\\n![alt text](assets/asob_q2_2023/image15.png \\"LMODroid\\")\\n\\nWe are excited to announce our collaboration with [LibreMobileOS](https://libremobileos.com/), a project that develops and promotes privacy-focused mobile operating systems. As part of this collaboration, we have been working with LibreMobileOS to develop LMODroid-x86, a version of their operating system that is designed to run on x86-based tablets and PCs.\\n\\nLMODroid-x86 was created using Android-Generic Project v2023, a free and open-source prototyping toolkit used to create x86 based Android projects, and other targets. The operating system will be pre-installed with a variety of privacy-focused applications, including a web browser, desktop mode, digital wellbeing (coming soon), and file manager.\\n\\nWe believe that LMODroid-x86 will be a valuable addition to the LibreMobileOS ecosystem. The operating system will provide users with a privacy-focused alternative to the major mobile operating systems, and it will help to promote the use of open-source software.\\nWe would like to thank LibreMobileOS for their collaboration on this project. We are excited to work with them to develop LMODroid-x86 and to help make it available to users around the world.\\n\\nWe would also like to thank HMTheBoy154 for their contributions to this project. Their hard work and dedication has been essential to the success of the project.\\n\\nWe are confident that LMODroid-x86 will be a valuable resource for users who are looking for a privacy-focused and secure mobile operating system. We look forward to sharing more information about the project in the coming months."},{"id":"bliss-os-linux-hybrid-preview","metadata":{"permalink":"/bliss-os-linux-hybrid-preview","source":"@site/blog/2023/bliss-os-linux-hybrid-preview.md","title":"[announcement] Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","description":"Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","date":"2023-06-21T00:00:00.000Z","formattedDate":"June 21, 2023","tags":[{"label":"linux","permalink":"/tags/linux"},{"label":"hybrid","permalink":"/tags/hybrid"},{"label":"android-linux","permalink":"/tags/android-linux"},{"label":"android","permalink":"/tags/android"},{"label":"android-go","permalink":"/tags/android-go"},{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":1.035,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"}],"frontMatter":{"slug":"bliss-os-linux-hybrid-preview","title":"[announcement] Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","authors":["electrikjesus"],"description":"Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","img":null,"date":"2023-06-21T00:00:00.000Z","comments":true,"tags":["linux","hybrid","android-linux","android","android-go","blissos","android-generic","bliss-x86"]},"prevItem":{"title":"A State of Bliss : A Blissful Return - 2nd Quarter 2023","permalink":"/asob-q2-2023"},"nextItem":{"title":"[announcement] Bliss OS Go preview","permalink":"/announcement-bliss-os-go"}},"content":"This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware. \\n\\n\\n## Features:\\n\\n- Based on Xubuntu 22.04.x LTS\\n\\n- Stripped of Snap and other Ubuntu apps/telemetry\\n\\n- Includes Ubuntu expanded hardware support drivers\\n\\n- QEMU based Bliss OS session\\n\\n- Bliss OS grub menu options (for running on bare-metal hardware)\\n\\n- Includes basic update and management scripts for Android side\\n\\n- Lots more, but we are just getting started\u2026\\n\\n\\n## Download the preview:\\n\\nhttps://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU \\n\\n\\n### Live Boot Info:\\n\\nUser: Live\\n\\nPassword: evolution\\n\\n\\n### Step 1:\\n\\nLive boot (boots to xfce4)\\n\\n\\n### Step 2:\\n\\nRun installer (last step shows pop-up to specify data.img size), Done.\\n\\n\\n### Step 3:\\n\\nReboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)\\n\\n\\n## Notes:\\n\\nAutologin is enabled, will launch last loaded session choice from Login screen"},{"id":"announcement-bliss-os-go","metadata":{"permalink":"/announcement-bliss-os-go","source":"@site/blog/2023/announcement-bliss-os-go.md","title":"[announcement] Bliss OS Go preview","description":"Announcement for the Bliss OS Go preview","date":"2023-06-08T00:00:00.000Z","formattedDate":"June 8, 2023","tags":[{"label":"android-go","permalink":"/tags/android-go"},{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":1.735,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"}],"frontMatter":{"slug":"announcement-bliss-os-go","title":"[announcement] Bliss OS Go preview","authors":["electrikjesus"],"description":"Announcement for the Bliss OS Go preview","img":"assets/blissos-go.png","date":"2023-06-08T00:00:00.000Z","comments":true,"tags":["android-go","blissos","android-generic","bliss-x86"]},"prevItem":{"title":"[announcement] Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","permalink":"/bliss-os-linux-hybrid-preview"},"nextItem":{"title":"[Pilot] EIDU and Bliss OS Go","permalink":"/pilot-eidu-and-bliss-os-go"}},"content":"![alt text](assets/blissos-go.png \\"Announcement - Bliss OS Go Preview\\")\\n\\n## [Announcement] Bliss OS Go (Preview Release)\\n\\nBliss OS Go is a new variation of Bliss OS that is designed to run on low-end devices. It is based on Android Go, which is a version of Android that is optimized for devices with limited resources. Bliss OS Go includes a number of features that are designed to improve performance, battery life and usability on low-end devices, such as:\\n\\n- A lower-spec config for recents\\n- A lower-spec config for task management\\n- Expanded configuration options\\n- And much more\\n\\nBliss OS Go is currently in release for a number of low-end devices, including:\\n\\n- Intel Atom devices\\n- Intel Celeron N/M devices\\n- Intel Pentium devices\\n- AMD APU/CPUs\\n\\nIf you have a low-end device and you are looking for a new operating system that will improve performance and battery life, then Bliss OS Go is a great option.\\n\\nHere are some additional details about the features of Bliss OS Go:\\n\\n- Lower-spec configs for recents and task management: These configs reduce the amount of resources that are used by the recents and task management apps, which can improve performance and battery life.\\n- Expanded LMKD configuration: LMKD is a Linux kernel module that can be used to improve performance and battery life by limiting the number of interrupts that are generated by hardware devices. The expanded LMKD configuration in Bliss OS Go makes it easier to tune LMKD for optimal performance and battery life.\\n- Rotation/orientation configuration options through Grub: Rotation/orientation configuration options can also be accessed through Grub. This makes it easy to change the rotation and orientation of the Bliss OS Go display without having to reflash the image.\\n\\n### More Info\\n\\n**Warning**, due to the low-spec nature of the devices we are targeting with these builds, we do not include native-bridge by default on Bliss OS Go builds. \\n\\nDownloads can be found on Sourceforge: https://sourceforge.net/projects/blissos-dev/files/BlissOS-Go/FOSS/20230519/\\n\\nConfiguration documentation for some of the features found in Bliss OS Go can be found on our docs site:\\nhttps://docs.blissos.org/configuration/configuration-through-command-line-parameters/"},{"id":"pilot-eidu-and-bliss-os-go","metadata":{"permalink":"/pilot-eidu-and-bliss-os-go","source":"@site/blog/2023/pilot-eidu-and-bliss-os-go.md","title":"[Pilot] EIDU and Bliss OS Go","description":"Collaboration announcement for our partnership with EIDU on a polit program","date":"2023-05-18T00:00:00.000Z","formattedDate":"May 18, 2023","tags":[{"label":"eidu","permalink":"/tags/eidu"},{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":1.8,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"}],"frontMatter":{"slug":"pilot-eidu-and-bliss-os-go","title":"[Pilot] EIDU and Bliss OS Go","authors":["electrikjesus"],"description":"Collaboration announcement for our partnership with EIDU on a polit program","img":"assets/eidu-pilot.png","date":"2023-05-18T00:00:00.000Z","comments":true,"tags":["eidu","blissos","android-generic","bliss-x86"]},"prevItem":{"title":"[announcement] Bliss OS Go preview","permalink":"/announcement-bliss-os-go"},"nextItem":{"title":"What can open source do for you?","permalink":"/what-can-open-source-do-for-you"}},"content":"![alt text](assets/eidu-pilot.png \\"EIDU + Bliss OS Go\\")\\n\\n## New Collaborations\\n\\n\\n### [pilot] EIDU - Taifa ElimuTab\\n\\nBliss Co-Labs and [EIDU](https://eidu.com/), an organization that builds innovative solutions to digitize education in low and middle-income countries at scale, have partnered to bring an Android Go 12.1 variation of Bliss OS to the aging Windows tablets used by Kenya public primary schools. The pilot program aims to allow millions of devices a second-life through the use of Bliss OS, which is specifically tailored to the devices\' hardware and capabilities.\\n\\nBliss OS is a lightweight operating system that is designed to run on x86 Windows & Linux devices. It is based on Android, but it has been optimized for performance and battery life. Bliss OS Go is a version of Bliss OS that is designed for lower-powered devices, such as the Intel Atom based Windows tablets that are used in Kenya.\\n\\nThe pilot program will test the feasibility of deploying Bliss OS Go on the Windows tablets. If the pilot is successful, it could lead to the deployment of Bliss OS Go on millions of devices, which would provide students in Kenya with access to a more reliable and affordable educational platform.\\n\\nHere are some of the benefits of using Bliss OS Go on the Windows tablets:\\n\\n* Improved performance: Bliss OS Go is designed to run on low-powered devices, so it can provide a significant performance boost over Windows. This will make it easier for students to use the devices for learning.\\n* Longer battery life: Bliss OS Go is also designed to conserve battery life, so students can use the devices for longer periods of time without having to worry about running out of power.\\n* More affordable: Bliss OS Go is a free and open-source operating system, so it is more affordable than Windows. This will make it possible for schools to deploy Bliss OS Go on more devices, which will benefit more students.\\n\\nWe believe that Bliss OS Go has the potential to make a significant impact on education in Kenya. We are excited to partner with EIDU on this pilot program and we look forward to seeing the results."},{"id":"what-can-open-source-do-for-you","metadata":{"permalink":"/what-can-open-source-do-for-you","source":"@site/blog/2023/what-can-open-source-do-for-you.md","title":"What can open source do for you?","description":"As a business, the typical way to do things is to file for patents, and protect your product or idea, and your product team produces the development design and manages updating the product for its lifecycle. The downside to that is that only your team has the ability to spot its flaws, make it better, or see other avenues where it could be used. This is not the case with an open-source project lifecycle. The product you develop is open to the community to use, inspect and improve upon. This helps accelerate the development of the idea or product by allowing open-innovation to take place.","date":"2023-03-11T00:00:00.000Z","formattedDate":"March 11, 2023","tags":[{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":2.86,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"}],"frontMatter":{"slug":"what-can-open-source-do-for-you","title":"What can open source do for you?","authors":["electrikjesus"],"date":"2023-03-11T00:00:00.000Z","comments":true,"tags":["blissos","android-generic","bliss-x86"]},"prevItem":{"title":"[Pilot] EIDU and Bliss OS Go","permalink":"/pilot-eidu-and-bliss-os-go"}},"content":"As a business, the typical way to do things is to file for patents, and protect your product or idea, and your product team produces the development design and manages updating the product for its lifecycle. The downside to that is that only your team has the ability to spot its flaws, make it better, or see other avenues where it could be used. This is not the case with an open-source project lifecycle. The product you develop is open to the community to use, inspect and improve upon. This helps accelerate the development of the idea or product by allowing open-innovation to take place.\\n\\n## Dismissing the current arguments against open-source development\\n\\nCan people take your code and use it for their own projects? The answer is yes, but this is not a bad thing at all. This is one of the things that empowers your idea by allowing you to see the improvements they made and how they made them, then adding those improvements into your code base.\\n\\nCan people alter your code to include malicious code? This depends on how well you manage the pull requests for your code, as even the Linux Kernel has had some bad-actors try and slip in malicious code before, and it was caught by the community. So you just need to make sure you define a strict set of rules for your project maintainers to follow when it comes to merging pull-requests from the community into your code base.\\n\\nCan you make money off Open-Source code? The answer to this is yes, and in many ways. It all comes down to how you design your project and the licensing you choose for it. As many open-source licenses do allow licensing, and support contracts, and many more options can be written into the standard licensing agreements.\\n\\n## How have we leveraged open-source for businesses?\\n\\nAs a consumer, you get to use the products of our work in open-source by testing our work (Bliss OS, Waydroid, Android-x86) on your laptop, tablet, desktop, server, etc. at no cost. \\nAs a business, our projects are limited in use, but can be licensed for inclusion into a project, and we offer development contracts to help businesses further develop their products, with our projects included. We have also created toolkits for businesses to use for free in the past, demonstrating the power of rapid-prototyping through the use of our services.\\n\\nFor other businesses, not used to working in open-source, there will always be hesitations. But that doesn\'t mean we can\'t make it work. We have had some restraints on projects in the past, and the solution for those proprietary constraints is typically to build a system that can handle allowing the end user to use it, while keeping all the private bits, private still. A perfect example of this is how Google Play, Widevine, libndk-translation, Houdini, and other private blobs are included in our projects. We have even gone one step further in this where allowed, and produced tools for the rest of the open-source community to use, that allows them to benefit from using the proprietary blobs, while keeping the businesses private intents intact.\\n\\nIt really all comes down to the mental attitude behind your innovation, and all in how you spin it. It\'s about time the market starts thinking on reasons why they should start going open-source, and not looking for all the reasons why they shouldn\'t."}]}')}}]); \ No newline at end of file diff --git a/assets/js/2e801cce.d3fa65fa.js b/assets/js/2e801cce.d3fa65fa.js deleted file mode 100644 index f6ff994..0000000 --- a/assets/js/2e801cce.d3fa65fa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkblog_1=self.webpackChunkblog_1||[]).push([[9450],{6029:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"asob-q3-2023-2024","metadata":{"permalink":"/asob-q3-2023-2024","source":"@site/blog/2023/asob-q3-2023-2024.md","title":"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)","description":"A State of Bliss 3rd Quarter 2023 + 2024","date":"2024-01-17T00:00:00.000Z","formattedDate":"January 17, 2024","tags":[{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":6.95,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"},{"name":"HMTheBoy154","title":"Bliss OS Maintainer","url":"https://github.com/hmtheboy154","imageURL":"https://avatars.githubusercontent.com/u/39849246?v=4","key":"hmtheboy154"}],"frontMatter":{"slug":"asob-q3-2023-2024","title":"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)","authors":["electrikjesus","hmtheboy154"],"description":"A State of Bliss 3rd Quarter 2023 + 2024","img":"assets/asob_q4_2023/asob-eoy23.jpeg","date":"2024-01-17T00:00:00.000Z","comments":true,"tags":["blissos","android-generic","bliss-x86"]},"nextItem":{"title":"Bliss OS - Development Updates 11-23","permalink":"/bliss-updates-1123"}},"content":"![alt text](assets/asob_q4_2023/asob-eoy23.jpeg \\"A State of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024\\")\\n\\nIt is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.\\n\\nLeading Up To Now\\n\\nWe have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.\\n\\n\\n## A revamped bootable installer\\n\\nWhile there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven\u2019t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS [is doing something inappropriate](https://twitter.com/blissos_org/status/1700613048518795683) , we realized that it\u2019s time and decide to look back at our bootable installer to completely revamped it :\\n\\n\\n\\n* Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker ([https://github.com/docker-library/busybox](https://github.com/docker-library/busybox))\\n* Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).\\n* efivar and efibootmgr are still being built from source, but are being updated to latest versions.\\n* Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps **fixing black screen issues when trying to install**.\\n* Support installing with exFAT or F2FS (experimental).\\n* UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.\\n* Some label and text edit for better comprehensiveness of what the installer tries to do.\\n* Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.\\n* Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.\\n\\nWe believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven\u2019t planned to support Secure Boot yet so please disable it before trying to install the OS.\\n\\nCheck out the screenshot here if you are interested : https://t.me/hmdumbground/111\\n\\n\\n## An approach to OTA updates on BlissOS\\n\\nA few months ago, we reached out to [@erfanoabdi](https://github.com/erfanoabdi) for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it\u2019s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.\\n\\nThe disadvantages that we observed is that this method does not support filesystems that are handled by [FUSE](https://www.kernel.org/doc/html/next/filesystems/fuse.html) , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.\\n\\nAll versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.\\n\\n\\n## AV1 support for ffmpeg codecs\\n\\nThanks to the work of [@KonstaKANG](https://konstakang.com/), we\u2019ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by [libdav1d](https://code.videolan.org/videolan/dav1d) made by the developers at VLC and being built using [GloDroid\u2019s AOSPExt](https://github.com/GloDroid/aospext). We are also planning to support VA-API AV1 soon for hardware-accelerated solution.\\n\\n\\n## Properly handle suspend\\n\\nWhile making her first big contribution to the project which is providing fixes to the Steam Deck, our friend [@Kethen](https://github.com/Kethen) has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.\\n\\n\\n## BlissOS Go for all versions\\n\\nAnnounced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.\\n\\n\\n## Bump to kernel 6.1 for all builds\\n\\nKernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google\u2019s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.\\n\\n\\n## Introducing BlissOS Zenith\\n\\nWe realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can\u2019t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we\u2019ve decided that we will make another variant, this time with 2 key differences :\\n\\n\\n\\n* Only build the latest version of BlissOS available for this variant, so for now it\u2019s 16.\\n* Using stable branch of the linux kernel.\\n\\nWe want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, \u201cWhat if we ask our community ?\u201d and decide to ask people to give this new build a name on our [Twitter](https://twitter.com/blissos_org/status/1733872766133403666) & our group chat. After looking through all the suggestions, we\u2019ve decided to choose `Zenith` .\\n\\n \\\\\\nBlissOS Zenith, The new flagship build of BlissOS, intended for \\"chasing the latest\\". Starting now with version 16.9.4 and kernel 6.6\\n\\n\\n## Other updates\\n\\n\\n\\n* A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to [@Kethen](https://github.com/Kethen) (again).\\n* alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues.\\n* [sof-firmware](https://github.com/thesofproject/sof-bin) from Intel is being included to support more audio hardware.\\n* All builds are now using Mesa 23.3.3\\n* Some fixes to the sensors HAL (thanks to [@Kethen](https://github.com/Kethen) again)\\n* Fixed an issue that desktop Nvidia GPUs with nouveau can\u2019t be able to get into the GUI.\\n* Support KeeTouch touchscreens.\\n* Rotation quirks for Chuwi Ubook X 2023\\n* Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS.\\n* Users can now fix their audio issues after install by putting their hardware\u2019s alsa state definitions in `/data/vendor/alsa/.state`\\n* Updated KernelSU to latest version.\\n* **Virtual Console is back**, you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add `androidboot.enable_console=1` to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering.\\n* Some tweaks for BlissOS Go taken from [GloDroid Project](https://github.com/GloDroid) .\\n* You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from [LMODroid](https://github.com/LMODroid) .\\n* [AutoFast JNI](https://web.archive.org/web/20220625232751/https://01.org/blogs/2019/intel-optimizations-android-pie-runtime-compiler) is now available on BlissOS 16.\\n* BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu"},{"id":"bliss-updates-1123","metadata":{"permalink":"/bliss-updates-1123","source":"@site/blog/2023/bliss-updates-1123.md","title":"Bliss OS - Development Updates 11-23","description":"BlissOS Updates","date":"2023-11-20T00:00:00.000Z","formattedDate":"November 20, 2023","tags":[{"label":"blissos","permalink":"/tags/blissos"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":5.4,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"}],"frontMatter":{"slug":"bliss-updates-1123","title":"Bliss OS - Development Updates 11-23","authors":["electrikjesus"],"description":"BlissOS Updates","img":"assets/blissos-updates-2023-11-20.png","date":"2023-11-20T00:00:00.000Z","comments":true,"tags":["blissos","bliss-x86"]},"prevItem":{"title":"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)","permalink":"/asob-q3-2023-2024"},"nextItem":{"title":"BlissOS 16.8 codenamed Typhoon-x86 is now available","permalink":"/bliss-168"}},"content":"![alt text](assets/blissos-updates-2023-11-20.png \\"Bliss OS - Development Updates 11-23\\")\\n\\nSince the release of our stable Bliss OS 14.x & 15.x builds, we have had the chance to make a number of advancements on the OS in various areas. We will start the post with the updates coming from the value added contributions on the business side of things, then end with the updates being merged into the Bliss OS builds. \\n\\n\\n## Bliss Bass - beta builds started already\\n\\n![alt_text](assets/bliss-updates-1123/blissbass-tabletgo.png \\"Bliss Bass - Tablet Go - IOT/IIOT test build\\")\\n\\nWe have started to push some of the source for our Bliss Bass (Broad Apparatus Support System) builds that we use for customer focused builds based on Bliss OS, and the feedback from that has been pushing our development on the platform in a positive direction. These builds will be 100% ready for use in products, and will come with a number of added configuration options for features, UI/UX, updates, and more. We have released a few beta builds of the base FOSS variant of Bliss Bass for testing on Sourceforge. The initial flavors we will offer are:\\n\\n\\n* Kiosk variant\\n* Desktop variant\\n* Tablet variant\\n* Tablet Go - IOT/IIOT variant\\n* More on its way\\n\\nThere will be a new website created for these builds, and they will still be free to download and test, although the initial test builds will come watermarked. This will ensure that we are able to produce these test builds for the public while still retaining our licensing rights for it. \\n\\nWe are still collecting valuable information from our customers and would love to hear what our users think of this approach. Please leave a comment and let us know your thoughts. \\n\\n\\n# Bliss OS Updates\\n\\nThere are a few important changes that we are gearing up for on Bliss OS. First, on Bliss OS 14.x & 15.x, we will be shipping with Kernel 6.1, this includes our Surface builds. Second change will be for BlissOS 14.x, 15.x & 16.x (Generic/Surface), and that will be a switch to a new Audio HAL made by Intel\u2019s Project Celadon\\n\\nSwitching to the new Audio HAL will be an important change for us, so we would like to ask everyone to help us to test these new HAL so that we can have feedback and improve it further. Once tested, we will update the builds to include the new audio HAL changes. \\n\\nPlease join our Discord or Telegram to gain access to the new test builds of BlissOS 15.8.8 with Kernel 6.1.36 and the new Audio HAL.\\n\\n\\n## Go builds & Low RAM devices can now bypass some options in Settings\\n\\nIn BlissOS Go builds, there are some options that are being blocked by Android. Most notably the option to allow apps to draw on other apps. You will see this text when you are trying to grant the permission :\\n\\n\\n![alt_text](assets/bliss-updates-1123/image1.jpg \\"Draw over apps warning\\")\\n\\n\\nWith the latest update of BlissOS, we\'ve included a switch in Blissify Settings to allow bypassing this restriction. So now you are able to use apps like Smart Dock or Taskbar just like the usual generic version. The new option will be available in all of the upcoming BlissOS releases including 14, 15 and 16.\\n\\n\\n## A/B OTA Updates - rolling out soon\\n\\nOur efforts on Bliss Co-Labs have been paying off and we have a number of features and options developed from there heading to our open-source Bliss OS builds soon. The recently merged changes for the Bliss Setup Wizard for Bliss OS 15.x is one of those. \\n\\nThe other will be coming in the form of OTA updates for Bliss OS. These updates will bring the following improvements to the system:\\n\\n\\n* Separate A/B slots for all three images (system.img, initrd.img & kernel)\\n* System Rollbacks - Native bootctrl behavior\\n* Update server controlled by our own [Shipper Stack](https://github.com/shipperstack)\\n\\nWe have worked around a few issues with shipping sfs/erofs images and will keep the community posted on the progress. The early beta builds might not have all those fixes included just yet, so just be aware if you are trying to mount as read/write.\\n\\n\\n## Grub updates to v2.06 - also rolling out soon\\n\\nNow that we have the groundwork laid out for updating Grub with our A/B OTA updates, we decided it was best to update to the current version of Grub that Linux uses, and in doing so, we also solve an issue that 12th gen+ Intel CPU\u2019s have had where the screen is black after selecting any boot option from Grub. This means that the most recent gen CPU\u2019s will now be supported by both the kernel and the bootloader for Bliss OS. \\n\\nThis effort came from a few different contributors, so we have an initial solution we will likely release, and then split the other contributions into phases where we merge binary updates, libraries, modules, installer updates, and others separately in order to ensure stability as we move forward. \\n\\n\\n## OEM Install mode options - also rolling out soon\\n\\nBliss OS builds (and Android-x86) have had some major issues with the auto-install mode that have been the source of many headaches and many long nights of reinstalling other operating systems in order to correct. So we took some time to update the current auto-install solution and give it a more proper name of OEM install, along with adding a few more options for unattended installation (Force):\\n\\n\\n* OEM Install (same as old auto-install, will require some interaction)\\n* OEM Install - Force MBR [Unattended Install] (if bios is set to use Legacy)\\n* OEM Install - Force EFI [Unattended Install] (if bios is set to use UEFI/EFI)\\n* OEM Install - Force [Unattended Install] (autodetect MBR/EFI)\\n* OEM Update - Will auto-update a previous default install or OEM install\\n\\nThese modes are intended for factory setup and will not work with devices that come with Windows unless you wipe all partitions except for EFI and leave a second OS partition with all the remaining space. \\n\\n\\n## We have more on the way\\n\\nWe don\u2019t want to spoil any of the surprises we have planned, so we will leave things here for this post. Just know that there will be a lot of contributions heading towards Bliss OS source, coming from the efforts of Bliss Co-Labs\u2019 and the community in helping bring our project even further than we ever thought possible. \\n\\nThanks again and enjoy the builds!"},{"id":"bliss-168","metadata":{"permalink":"/bliss-168","source":"@site/blog/2023/bliss-168.md","title":"BlissOS 16.8 codenamed Typhoon-x86 is now available","description":"BlissOS 16.8 release","date":"2023-07-15T00:00:00.000Z","formattedDate":"July 15, 2023","tags":[{"label":"blissos","permalink":"/tags/blissos"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":2.115,"hasTruncateMarker":false,"authors":[{"name":"HMTheBoy154","title":"Bliss OS Maintainer","url":"https://github.com/hmtheboy154","imageURL":"https://avatars.githubusercontent.com/u/39849246?v=4","key":"hmtheboy154"}],"frontMatter":{"slug":"bliss-168","title":"BlissOS 16.8 codenamed Typhoon-x86 is now available","authors":["hmtheboy154"],"description":"BlissOS 16.8 release","img":"assets/bliss16.8/bliss16.8.jpg","date":"2023-07-15T00:00:00.000Z","comments":true,"tags":["blissos","bliss-x86"]},"prevItem":{"title":"Bliss OS - Development Updates 11-23","permalink":"/bliss-updates-1123"},"nextItem":{"title":"A State of Bliss : A Blissful Return - 2nd Quarter 2023","permalink":"/asob-q2-2023"}},"content":"![alt text](assets/bliss16.8/bliss16.8.jpg \\"A State of Bliss : A Blissful Return - 2nd Quarter 2023\\")\\n\\nJuly is a busy month for us here in BlissLabs. With the release of Android 13 QPR3, we\'ve decided that both BlissROMs and BlissOS this time will release the new updates on the same day which is pretty special for both of us.\\n\\nYou can check out all the changes BlissROMs made here for more info : https://blog.blissroms.org/2023-07-15-typhoon-16.8-updates-jul-2023/\\n\\n## BlissOS exclusive changes\\n\\nBeside from QPR3 and the changes made by BlissROMs, BlissOS offer some exclusive changes too. There are 3 main things :\\n\\n### New About Tablet design\\n\\n![alt text](assets/bliss16.8/abouttab.png)\\n\\nBlissROMs gave us the new About Phone/Tablet design, here we made a few modification to it. First, Processor name will show the actual CPU name of the device instead of getting the SoC name with prop `ro.soc.model`. Device name is a tablet instead of a phone and the screen to show the wallpaper is set to horizontal with 16:9 aspect ratio. Making this a nice tablet info screen for BlissOS.\\n\\n### Exclusive Launcher Features\\n\\nTo say this is an exclusive is a bit odd, because submitted the patches to Gerrit. But BlissROMs decided to put these in the next release (16.9) so we just gonna say that this is exclusive to BlissOS 16.8 :p. \\n\\nFirst, the Split button is now properly modified based on the new Recents button layouts. \\n\\n![alt text](assets/bliss16.8/split.png)\\n\\nNot only that, you can also turn it off in Recents Settings\\n\\n![alt text](assets/bliss16.8/splitsetting.png)\\n\\nNext, by default memory info in Recents is on the top of the screen, we\'ve provided an option to move it down again. We also calculated and change the margin of memory info when you are on Persistent Taskbar or Transient Taskbar so that meminfo will not be covered by taskbars.\\n\\n![alt text](assets/bliss16.8/meminfosetting.png)\\n![alt text](assets/bliss16.8/meminfo.png)\\n\\nFinally, **Developer Options is back** ! You can find it under Misc Settings when Developer Options in Settings is enabled.\\n\\n![alt text](assets/bliss16.8/devsettings.jpg)\\n\\n### Shipping with Kernel 6.1\\n\\nBlissOS 16.8 will be the first build to ship with Kernel 6.1. Currently I\'m still using the same recipe, Google\'s Common Kernel `android14-6.1-lts` branch with xanmod patches and some fixes for Android-x86 but because this is Kernel 6.1, more hardware will be supported especially the Steam Deck with some drivers & fixes from Valve that they put on their SteamOS\' kernel.\\n\\nAnd that\'s it for this month with the new release of 16.8, we hope that you will enjoy it even though for BlissOS 16 it\'s still in Beta stage.\\n\\n#StayBlissful #FeelTheWind\ud83c\udf2a"},{"id":"asob-q2-2023","metadata":{"permalink":"/asob-q2-2023","source":"@site/blog/2023/asob-q2-2023.md","title":"A State of Bliss : A Blissful Return - 2nd Quarter 2023","description":"A State of Bliss 2nd Quarter 2023","date":"2023-07-02T00:00:00.000Z","formattedDate":"July 2, 2023","tags":[{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"},{"label":"lmodroid","permalink":"/tags/lmodroid"},{"label":"blissoslinux","permalink":"/tags/blissoslinux"}],"readingTime":14.95,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"},{"name":"HMTheBoy154","title":"Bliss OS Maintainer","url":"https://github.com/hmtheboy154","imageURL":"https://avatars.githubusercontent.com/u/39849246?v=4","key":"hmtheboy154"}],"frontMatter":{"slug":"asob-q2-2023","title":"A State of Bliss : A Blissful Return - 2nd Quarter 2023","authors":["electrikjesus","hmtheboy154"],"description":"A State of Bliss 2nd Quarter 2023","img":"assets/asob_q2_2023/image6.png","date":"2023-07-02T00:00:00.000Z","comments":true,"tags":["blissos","android-generic","bliss-x86","lmodroid","blissoslinux"]},"prevItem":{"title":"BlissOS 16.8 codenamed Typhoon-x86 is now available","permalink":"/bliss-168"},"nextItem":{"title":"[announcement] Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","permalink":"/bliss-os-linux-hybrid-preview"}},"content":"![alt text](assets/asob_q2_2023/image6.png \\"A State of Bliss : A Blissful Return - 2nd Quarter 2023\\")\\n\\nThe last couple months have been pretty busy at Bliss. Since January/February, we\u2019ve been able to get a lot of work done on many different fronts. With my return to Bliss, we\u2019ve started a collaborative contract development and consulting firm named [Bliss Co-Labs](https://blisscolabs.dev/), and have been working on a few client projects. Without letting the open-source side of things skip a beat, we\u2019ve also been busy making changes and working on quite a few new updates and projects. So we think it\u2019s about time to at least announce a few of the changes we have in store, as well as a few announcements for new projects or major project updates. \\n\\n## Updates\\n\\nLet\u2019s start with the release updates first. HMTheBoy154 has been busy pushing out some truly amazing innovations for Bliss OS, bringing the platform to support many more devices, and expanding its configurable layers past the graphics stack, and into many others. \\nHe has this to say about what has been going on recently:\\n\\n*Ever since Jon joined Esper, I\u2019ve decided to continue his work. If you join our Telegram group, you\u2019ll notice that a lot has changed since the last releases like Bliss OS 14.3 or 15.1. In this post, let\u2019s take a look at what\u2019s new in these versions.*\\n\\n### Bliss OS v14.10 Release\\n\\n![alt text](assets/asob_q2_2023/image9.png \\"Bliss OS v14.10 Release\\")\\n\\n*Compared to 14.3, the new Bliss OS 14.10 has improved a lot. Although there are some features that I have to remove for example the long iso name to explain what\'s inside the build or Gearlock (while it is a really good recovery solution for Android-x86, I still decided to remove it because it need to be rewritten), I\'ve been putting a lot of changes into it, some of them were on my old [ProjectSakura-x86](https://forum.xda-developers.com/t/beta-11-projectsakura-x86-for-pcs-official.4329533/) builds. Also, please remember that most of these are also available in Bliss OS 15.8 builds and more on that later.*\\n\\n*Here are the new changes :*\\n\\n- Taskbar apps like farmerbb\'s Taskbar or axel358\'s Smart Dock are being updated to the latest.\\n- Kernel has been updated to 5.15.x, this is the same kernel I use on PS-x86 but now with more optimization & hardware support. Also mgLRU, eBPF, DMA-BUF Heap, etc are all being enabled.\\n- ESDFS is being used to bind mount apps\' data just like ChromeOS, this is to fix apps that can\'t be able to read data or obb on Bliss, causing it to crash.\\n- Using Intel\'s Bluetooth HAL, with some changes from Android-x86 to support more Bluetooth cards than just Intel one.\\n- You can now make a list like [modprobe.conf](https://linux.die.net/man/5/modprobe.conf) at /data/vendor/modules.options or /data/vendor/modules.blocklist if you want to blacklist a module.\\n- Bliss can now show the device information just like the old Bliss OS 11 or Android-x86.\\n- virt_wifi is now disabled by default, you can still use it with VIRT_WIFI=1\\n- If you are using a tablet or convertible laptops that have an accelerometer, our iio sensors can now be able to rotate the screen.\\n- PGO optimization for art. This is a feature by Intel to enhance VM workload performance, you can read about it [here](https://www.intel.com/content/www/us/en/developer/articles/technical/enhance-vm-workloads-performance-with-pgo.html). \\n- AutoFast JNI, this is also [another feature by Intel](https://01.org/blogs/2019/intel-optimizations-android-pie-runtime-compiler) to improve performance on Android running in x86 hardware . \\n- zram is enabled by default with zstd compression.\\n- aptX & aptX HD Bluetooth codecs support using Android 13\'s encoders. Bliss is the first Android build on x86 hardware to get this publicly.\\n- `toybox` is being upstreamed with additional tools such as `eject` or `rfkill`. Also, we\'ve included usb.ids and pci.ids for `lsusb` & `lspci` so you can check the USB or PCI devices name.\\n- If you want to mount all of your partitions into Bliss, add `INTERNAL_MOUNT=1` into the cmdline.\\n- If you want to try AOSP\'s experimental \\"PC Mode\\", add `PC_MODE=1` into the cmdline and try.\\n- If you want your Bliss OS build to be recognized as a Google Play Games for PC image, add `HPE=1` into the cmdline and reset Play Store.\\n- You can now force your mouse click as touch, this is to help fixing apps that only use touch input only.\\n- Mouse acceleration can be disabled ,also scroll wheel too.\\n- Night Light is now available.\\n- BoringDroid is back. \\n- For media, while using OMX.ffmpeg codecs as usual, I also provide Codec2 implementation of ffmpeg codecs, made by Micheal Goffioul. Alongside with that, new VAAPI drivers for newer Intel iGPU & other hardware is also being built to support hardware acceleration decoder. I also include a lot of parameters that you can use to get the best result from Bliss OS, you can find it at our [Docs](https://docs.blissos.org/configuration/configuration-through-command-line-parameters/).\\n- For graphics, our graphics stack is being improved significantly compared to the previous builds, not only that, like media, we provide a lot of options through parameters too. You can see some of our changes here like : \\n * Vulkan is now being enabled by default. `VULKAN=1` is dead, long live `VULKAN=1`. \\n * Mesa is being updated to latest version (23.1) with LLVM16 for AMDGPUs.\\n * Also in Mesa we\'ve activated xmlconfig, with this you can create custom configuration for apps & games related to graphics like spoofing GPUs name & vendor. We will update more information in our Docs soon.\\n * While we include a lot of Gralloc & HWC options and we pick the best one depending on what GPU Bliss is running. So if you don\'t want to play with any of this, you can just be sure that you are running the best one that is being tested by us & the community.\\n * For minigbm (and all the different variations that we have), you can switch to Gralloc4 with `GRALLOC4_MINIGBM=1` parameter.\\n * You can force OpenGLES version with `FORCE_GLES=` parameter.\\n * For software rendering solutions, not only we are using Swiftshader, but also SwANGLE. A combination of ANGLE EGL driver & SwiftShader Vulkan made by Google. SwANGLE is already being used on Android 13 but we\'ve backported it.\\n\\n*And for the first time, Bliss is using the new KernelSU for root solution. Not only that, Bliss OS is the first x86_64 Android build ever to integrate KernelSU into it.*\\n\\n![alt text](assets/asob_q2_2023/image13.png \\"Bliss with KSU\\")\\n\\n*These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our [blissos-x86 sourceforge](https://sourceforge.net/projects/blissos-x86/) (where we release our stable builds).*\\n\\n### Bliss OS v15.8 Release\\n\\n![alt text](assets/asob_q2_2023/image11.png \\"Bliss OS v15.8 Release\\")\\n\\n*Bliss OS 15.8 has a different starting point than Bliss OS 15.1. Firstly, Bliss OS 15.8 is based on Android 12L unlike 15.1 which uses Android 12. Second, Bliss OS 15.8 common tree (`device/generic/common`) is based on my 14.10 tree with a few patches instead of using 15.1 one. Which is why I said that most of the new features from 14.10 are also available on 15.8. All the changes you see in 14.10 are also in this version, but with Android 12L instead.*\\n\\n*These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our [blissos-x86 sourceforge](https://sourceforge.net/projects/blissos-x86/) (where we release our stable builds).*\\n\\n### The return of Bliss OS Surface Builds\\n\\n![alt text](assets/asob_q2_2023/image10.png \\"Bliss OS Surface\\")\\n\\n*For Bliss OS, Surface Builds used to be a thing in Bliss OS 11 days with a few builds available. Now we\u2019re happy to announce that we\u2019re bringing back the build with a newer kernel (5.15) using patches from [linux-surface](https://github.com/linux-surface/linux-surface) and using the latest ipts/ithc kernel driver as well as iptsd daemon to support touchscreen.*\\n\\n***NOTE** : Not every Microsoft Surface device has to install surface build to make it work, some can just use generic builds, please check our [Documentation](https://docs.blissos.org/) for more info.*\\n\\n## Releases\\n\\nHMTheBoy154 has been working on a super secret project for Bliss, and we are happy to announce the initial beta release of Bliss OS v16.6 (Android 13) for x86_64v2 PC\u2019s, laptops, tablets, etc. Check the release notes for that below. \\n\\n### Bliss OS v16 Beta Release\\n\\n![alt text](assets/asob_q2_2023/image4.png \\"Bliss OS v16 Release\\")\\n\\n*Yes, you heard that right. Today I\'m happy to announce the first public beta build of Bliss OS 16. The development has already started since October 2022 and I\'ve been working together with not only Android-x86 members & contributors, but also with BlissROMs members and we\'ve made a lot of progress since then. We even work with the LibreMobileOS team to fix some issues like freeform.*\\n\\n*Currently BlissOS 16 is on 16.7 to match with the version on BlissROMs. While it\u2019s still on Beta stage, we can\'t wait to release our new images so you can experience them.*\\n\\n### New Bliss OS Logo Announcement\\n\\nWith the Bliss OS 16 announcement, Designer [XelXen (aka WildWaze)](https://github.com/xelxen/) has also been working with us on a redesigned logo for this and future releases. Not only that, he also included some new wallpapers for us to match with this new design elements.\\n\\n```\\n\u201cThe new logo of BlissOS depicts a human figure standing in between petals of lotus, representing the transparency and diversity of the operating system. The figure also holds a perfectly shaped lotus flower, which is the emblem of BlissLabs and perfection.\u201d\\n```\\n\\nLogo 1 | Logo 2\\n:-------------------------:|:-------------------------:\\n![alt text](assets/asob_q2_2023/image12.png \\"Bliss OS v16\\") | ![alt text](assets/asob_q2_2023/image14.png \\"Bliss OS v16\\")\\n\\nWallpaper 1 | Wallpaper 2\\n:-------------------------:|:-------------------------:\\n![alt text](assets/asob_q2_2023/wall01.png \\"Bliss OS v16\\") | ![alt text](assets/asob_q2_2023/wall02.png \\"Bliss OS v16\\")\\n\\nWallpaper 3 | Wallpaper 4\\n:-------------------------:|:-------------------------:\\n![alt text](assets/asob_q2_2023/wall03.png \\"Bliss OS v16\\") | ![alt text](assets/asob_q2_2023/wall04.png \\"Bliss OS v16\\")\\n\\n### Android-Generic Project Manager Release\\n\\nWe are excited to announce the release of Android-Generic Project Manager (AGPM), a tool that makes it easier to build and configure AOSP based projects. AGPM provides a number of features that can help you save time and effort, including:\\n\\n- Automatic repo init: AGPM can automatically initialize a new AOSP project or update an existing one.\\n- Python virtualenv support: AGPM can wrap your project in a Python virtualenv, which allows you to install packages and run scripts without affecting the rest of your system (quite handy when you are using a shared server over ssh and do not have root access for installing packages).\\n- Check Project Status: AGPM can check a project folders repos against the manifest, and it will build a list of any repos with uncommitted changes, or if the repos are not pushed yet. \\n- Option to push changes: Depending on what Update Checking finds, you can push your updates to the repos found to be behind\\n- Common Tools: Create New, Update, Delete, etc. \\n\\nScreenshots:\\n\\n![alt text](assets/asob_q2_2023/image8.jpg)\\n\\n(Main Menu window: Zenity mode)\\n\\n![alt text](assets/asob_q2_2023/image2.jpg)\\n\\n(Check Project Status results: Zenity mode)\\n\\nCompatibility:\\n\\nAGPM is designed to be flexible and extensible, so you can add your own project configurations and features. Currently, we support the following projects:\\n- AOSP\\n- Bliss ROM\\n- Lineage OS\\n- Bliss OS\\n\\nWe have a planned features list a mile long, and we are always working to add support for more projects. If you have any feedback or suggestions, please feel free to open an issue on the [AGPM GitHub repository](https://github.com/android-generic/ag-project-manager).\\n\\nWe hope you find AGPM to be a useful tool for building and configuring AOSP based projects.\\n\\n### Android-Generic Project (v2023) Release\\n\\nWe are excited to announce the release of Android-Generic Project (v2023), a major update that brings many new features and improvements.\\n\\nKey Features\\n\\n- Support for multiple targets: AG v2023 can now be used to build images for a variety of targets, including Android phones, tablets, Raspberry Pi, emulators, TVs, and PCs. As usual, we start things out with the PC target, and let that act as an example for the rest.\\n- Target-based system: AG v2023 uses a new target-based system that makes it easier to build images for specific targets.\\n- Target variants: AG v2023 now supports target variants, which allow you to build images with different configurations for different targets. This system is used to have separate base structures for targets. So for the PC builds (target), we will have the variants: Android-x86 base, Bliss OS base, Bliss OS Go, etc.\\n- Conditions for menu items: AG v2023 allows you to use conditions to control the availability of menu items. This makes it possible to create more complex and flexible menus.\\n- Addon templates: AG v2023 includes addon templates that you can use to create your own addons. Addons are a great way to extend the functionality of AG.\\n- Public and private addons: AG v2023 supports both public and private addons. Public addons are available to everyone, while private addons are only available to a select group of users. \\n\\nUpdates\\n\\nIn addition to the new features listed above, AG v2023 also includes a number of updates and improvements. These include:\\n- Updates to the easy-menu system for more dynamic menu options.\\n- A new targets based system.\\n- The ability to add target variants.\\n- The ability to lock the process with conditions per option.\\n- Updated api-32 support.\\n- Added api-33 support.\\n- Reworked manifest structure to include in targets.\\n- Added addon template for contributors to use to create their own addons.\\n- Added Targets template for contributors to use to create their own targets.\\n- Reworked open/private addon structure and added new addons.\\n\\nGeneric/PC Addons\\n\\nThe following new addons have been added for generic/PC targets:\\n- Configurable battery stats addon\\n- Rotation/orientation configuration options through Grub\\n- Expanded LMKD configuration addon\\n- LMKD tuning options through Grub\\n- Memory tuning options through Grub\\n- Performance tuning options through Grub\\n\\nLicensed Addons\\n\\nThe following new addons have been added for licensed targets:\\n- Recents tuning addon\\n- Addons for locking various features\\n- Customizing new user functions addon\\n- Configuring packages on boot (hide/disable/unhide/enable)\\n- Addon for locking the ability for the user to change settings\\n\\nSpecial Requests? contact us\\n\\nWe hope you enjoy these new features and improvements!\\n\\n### Bliss Broad Apparatus Support System (Bliss-Bass)\\n*(Automated Vendor Customization Layer for Bliss OS / Bliss OS Go)*\\n\\nBliss Broad Apparatus Support System (Bliss-Bass) is an automated vendor customization layer for Bliss OS / Bliss OS Go (and eventually BlissROM). It is a toolkit that can be used to help with rebranding, customizations, and app changes for Bliss OS based builds. The toolkit comes with a variety of functions, including:\\n- An autopatch function that applies all required changes to the Bliss OS build.\\n- The ability to define custom sets of changes to be applied before customization.\\n- Integration with AOSP\'s build system, which allows a variety of tools to be accessed before the lunch process starts.\\n- The ability to display a customization menu from the pre-lunch hook, using either dialog or zenity, depending on whether or not a GUI is detected.\\n\\nThe Bliss-Bass toolkit is designed to make it easier for users and companies to start off using Bliss for their products. By automating many of the tasks involved in rebranding and customization, Bliss-Bass can save time and energy, allowing users or engineers to focus on the creative parts of the process.\\n\\nHere are some additional details about the autopatch function:\\n- The autopatch function is available from the command line using \u2018check_patchsets\u2019 or through the menu.\\n- The autopatch function can be used to apply a variety of changes to the Bliss OS build, including changes to the kernel, bootloader, system image, and vendor image.\\n- The autopatch function can be used to define custom sets of changes to be applied. This can be useful for organizations that need to make specific changes to Bliss OS for their own products.\\n\\nJust like some of our other toolkits, this project integrates itself into AOSP\u2019s build system and allows a variety of tools to be accessed before the lunch process starts:\\n\\n![alt text](assets/asob_q2_2023/image1.jpg)\\n\\nAnd when you trigger the customization menu to display from the pre-lunch hook, it can use \u2018dialog\u2019 if there is no display or GUI detected:\\n\\n![alt text](assets/asob_q2_2023/image3.jpg)\\n\\nOr `zenity`, to display the menu options if it does detect a GUI:\\n\\n![alt text](assets/asob_q2_2023/image5.jpg)\\n\\nFurther development is being made to add even more options and tools to Bliss-Bass. The project is open source and available on GitHub at https://github.com/BlissRoms-x86/platform_vendor_branding.\\n\\n### Bliss OS Linux Hybrid Preview\\n*(Bliss OS Go edition)*\\n\\n![alt text](assets/asob_q2_2023/image7.jpg)\\n\\nRead More in last weeks release post: [Bliss OS Linux Hybrid Preview](https://blog.blissos.org/bliss-os-linux-hybrid-preview)\\n\\n## New Collaborations\\n### LibreMobileOS\\n\\n![alt text](assets/asob_q2_2023/image15.png \\"LMODroid\\")\\n\\nWe are excited to announce our collaboration with [LibreMobileOS](https://libremobileos.com/), a project that develops and promotes privacy-focused mobile operating systems. As part of this collaboration, we have been working with LibreMobileOS to develop LMODroid-x86, a version of their operating system that is designed to run on x86-based tablets and PCs.\\n\\nLMODroid-x86 was created using Android-Generic Project v2023, a free and open-source prototyping toolkit used to create x86 based Android projects, and other targets. The operating system will be pre-installed with a variety of privacy-focused applications, including a web browser, desktop mode, digital wellbeing (coming soon), and file manager.\\n\\nWe believe that LMODroid-x86 will be a valuable addition to the LibreMobileOS ecosystem. The operating system will provide users with a privacy-focused alternative to the major mobile operating systems, and it will help to promote the use of open-source software.\\nWe would like to thank LibreMobileOS for their collaboration on this project. We are excited to work with them to develop LMODroid-x86 and to help make it available to users around the world.\\n\\nWe would also like to thank HMTheBoy154 for their contributions to this project. Their hard work and dedication has been essential to the success of the project.\\n\\nWe are confident that LMODroid-x86 will be a valuable resource for users who are looking for a privacy-focused and secure mobile operating system. We look forward to sharing more information about the project in the coming months."},{"id":"bliss-os-linux-hybrid-preview","metadata":{"permalink":"/bliss-os-linux-hybrid-preview","source":"@site/blog/2023/bliss-os-linux-hybrid-preview.md","title":"[announcement] Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","description":"Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","date":"2023-06-21T00:00:00.000Z","formattedDate":"June 21, 2023","tags":[{"label":"linux","permalink":"/tags/linux"},{"label":"hybrid","permalink":"/tags/hybrid"},{"label":"android-linux","permalink":"/tags/android-linux"},{"label":"android","permalink":"/tags/android"},{"label":"android-go","permalink":"/tags/android-go"},{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":1.035,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"}],"frontMatter":{"slug":"bliss-os-linux-hybrid-preview","title":"[announcement] Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","authors":["electrikjesus"],"description":"Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","img":null,"date":"2023-06-21T00:00:00.000Z","comments":true,"tags":["linux","hybrid","android-linux","android","android-go","blissos","android-generic","bliss-x86"]},"prevItem":{"title":"A State of Bliss : A Blissful Return - 2nd Quarter 2023","permalink":"/asob-q2-2023"},"nextItem":{"title":"[announcement] Bliss OS Go preview","permalink":"/announcement-bliss-os-go"}},"content":"This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware. \\n\\n\\n## Features:\\n\\n- Based on Xubuntu 22.04.x LTS\\n\\n- Stripped of Snap and other Ubuntu apps/telemetry\\n\\n- Includes Ubuntu expanded hardware support drivers\\n\\n- QEMU based Bliss OS session\\n\\n- Bliss OS grub menu options (for running on bare-metal hardware)\\n\\n- Includes basic update and management scripts for Android side\\n\\n- Lots more, but we are just getting started\u2026\\n\\n\\n## Download the preview:\\n\\nhttps://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU \\n\\n\\n### Live Boot Info:\\n\\nUser: Live\\n\\nPassword: evolution\\n\\n\\n### Step 1:\\n\\nLive boot (boots to xfce4)\\n\\n\\n### Step 2:\\n\\nRun installer (last step shows pop-up to specify data.img size), Done.\\n\\n\\n### Step 3:\\n\\nReboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)\\n\\n\\n## Notes:\\n\\nAutologin is enabled, will launch last loaded session choice from Login screen"},{"id":"announcement-bliss-os-go","metadata":{"permalink":"/announcement-bliss-os-go","source":"@site/blog/2023/announcement-bliss-os-go.md","title":"[announcement] Bliss OS Go preview","description":"Announcement for the Bliss OS Go preview","date":"2023-06-08T00:00:00.000Z","formattedDate":"June 8, 2023","tags":[{"label":"android-go","permalink":"/tags/android-go"},{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":1.735,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"}],"frontMatter":{"slug":"announcement-bliss-os-go","title":"[announcement] Bliss OS Go preview","authors":["electrikjesus"],"description":"Announcement for the Bliss OS Go preview","img":"assets/blissos-go.png","date":"2023-06-08T00:00:00.000Z","comments":true,"tags":["android-go","blissos","android-generic","bliss-x86"]},"prevItem":{"title":"[announcement] Bliss OS Linux Hybrid Preview (Bliss OS Go edition)","permalink":"/bliss-os-linux-hybrid-preview"},"nextItem":{"title":"[Pilot] EIDU and Bliss OS Go","permalink":"/pilot-eidu-and-bliss-os-go"}},"content":"![alt text](assets/blissos-go.png \\"Announcement - Bliss OS Go Preview\\")\\n\\n## [Announcement] Bliss OS Go (Preview Release)\\n\\nBliss OS Go is a new variation of Bliss OS that is designed to run on low-end devices. It is based on Android Go, which is a version of Android that is optimized for devices with limited resources. Bliss OS Go includes a number of features that are designed to improve performance, battery life and usability on low-end devices, such as:\\n\\n- A lower-spec config for recents\\n- A lower-spec config for task management\\n- Expanded configuration options\\n- And much more\\n\\nBliss OS Go is currently in release for a number of low-end devices, including:\\n\\n- Intel Atom devices\\n- Intel Celeron N/M devices\\n- Intel Pentium devices\\n- AMD APU/CPUs\\n\\nIf you have a low-end device and you are looking for a new operating system that will improve performance and battery life, then Bliss OS Go is a great option.\\n\\nHere are some additional details about the features of Bliss OS Go:\\n\\n- Lower-spec configs for recents and task management: These configs reduce the amount of resources that are used by the recents and task management apps, which can improve performance and battery life.\\n- Expanded LMKD configuration: LMKD is a Linux kernel module that can be used to improve performance and battery life by limiting the number of interrupts that are generated by hardware devices. The expanded LMKD configuration in Bliss OS Go makes it easier to tune LMKD for optimal performance and battery life.\\n- Rotation/orientation configuration options through Grub: Rotation/orientation configuration options can also be accessed through Grub. This makes it easy to change the rotation and orientation of the Bliss OS Go display without having to reflash the image.\\n\\n### More Info\\n\\n**Warning**, due to the low-spec nature of the devices we are targeting with these builds, we do not include native-bridge by default on Bliss OS Go builds. \\n\\nDownloads can be found on Sourceforge: https://sourceforge.net/projects/blissos-dev/files/BlissOS-Go/FOSS/20230519/\\n\\nConfiguration documentation for some of the features found in Bliss OS Go can be found on our docs site:\\nhttps://docs.blissos.org/configuration/configuration-through-command-line-parameters/"},{"id":"pilot-eidu-and-bliss-os-go","metadata":{"permalink":"/pilot-eidu-and-bliss-os-go","source":"@site/blog/2023/pilot-eidu-and-bliss-os-go.md","title":"[Pilot] EIDU and Bliss OS Go","description":"Collaboration announcement for our partnership with EIDU on a polit program","date":"2023-05-18T00:00:00.000Z","formattedDate":"May 18, 2023","tags":[{"label":"eidu","permalink":"/tags/eidu"},{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":1.8,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"}],"frontMatter":{"slug":"pilot-eidu-and-bliss-os-go","title":"[Pilot] EIDU and Bliss OS Go","authors":["electrikjesus"],"description":"Collaboration announcement for our partnership with EIDU on a polit program","img":"assets/eidu-pilot.png","date":"2023-05-18T00:00:00.000Z","comments":true,"tags":["eidu","blissos","android-generic","bliss-x86"]},"prevItem":{"title":"[announcement] Bliss OS Go preview","permalink":"/announcement-bliss-os-go"},"nextItem":{"title":"What can open source do for you?","permalink":"/what-can-open-source-do-for-you"}},"content":"![alt text](assets/eidu-pilot.png \\"EIDU + Bliss OS Go\\")\\n\\n## New Collaborations\\n\\n\\n### [pilot] EIDU - Taifa ElimuTab\\n\\nBliss Co-Labs and [EIDU](https://eidu.com/), an organization that builds innovative solutions to digitize education in low and middle-income countries at scale, have partnered to bring an Android Go 12.1 variation of Bliss OS to the aging Windows tablets used by Kenya public primary schools. The pilot program aims to allow millions of devices a second-life through the use of Bliss OS, which is specifically tailored to the devices\' hardware and capabilities.\\n\\nBliss OS is a lightweight operating system that is designed to run on x86 Windows & Linux devices. It is based on Android, but it has been optimized for performance and battery life. Bliss OS Go is a version of Bliss OS that is designed for lower-powered devices, such as the Intel Atom based Windows tablets that are used in Kenya.\\n\\nThe pilot program will test the feasibility of deploying Bliss OS Go on the Windows tablets. If the pilot is successful, it could lead to the deployment of Bliss OS Go on millions of devices, which would provide students in Kenya with access to a more reliable and affordable educational platform.\\n\\nHere are some of the benefits of using Bliss OS Go on the Windows tablets:\\n\\n* Improved performance: Bliss OS Go is designed to run on low-powered devices, so it can provide a significant performance boost over Windows. This will make it easier for students to use the devices for learning.\\n* Longer battery life: Bliss OS Go is also designed to conserve battery life, so students can use the devices for longer periods of time without having to worry about running out of power.\\n* More affordable: Bliss OS Go is a free and open-source operating system, so it is more affordable than Windows. This will make it possible for schools to deploy Bliss OS Go on more devices, which will benefit more students.\\n\\nWe believe that Bliss OS Go has the potential to make a significant impact on education in Kenya. We are excited to partner with EIDU on this pilot program and we look forward to seeing the results."},{"id":"what-can-open-source-do-for-you","metadata":{"permalink":"/what-can-open-source-do-for-you","source":"@site/blog/2023/what-can-open-source-do-for-you.md","title":"What can open source do for you?","description":"As a business, the typical way to do things is to file for patents, and protect your product or idea, and your product team produces the development design and manages updating the product for its lifecycle. The downside to that is that only your team has the ability to spot its flaws, make it better, or see other avenues where it could be used. This is not the case with an open-source project lifecycle. The product you develop is open to the community to use, inspect and improve upon. This helps accelerate the development of the idea or product by allowing open-innovation to take place.","date":"2023-03-11T00:00:00.000Z","formattedDate":"March 11, 2023","tags":[{"label":"blissos","permalink":"/tags/blissos"},{"label":"android-generic","permalink":"/tags/android-generic"},{"label":"bliss-x86","permalink":"/tags/bliss-x-86"}],"readingTime":2.86,"hasTruncateMarker":false,"authors":[{"name":"Jon West","title":"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs","url":"https://github.com/electrikjesus","imageURL":"https://avatars.githubusercontent.com/u/8572619?v=4","key":"electrikjesus"}],"frontMatter":{"slug":"what-can-open-source-do-for-you","title":"What can open source do for you?","authors":["electrikjesus"],"date":"2023-03-11T00:00:00.000Z","comments":true,"tags":["blissos","android-generic","bliss-x86"]},"prevItem":{"title":"[Pilot] EIDU and Bliss OS Go","permalink":"/pilot-eidu-and-bliss-os-go"}},"content":"As a business, the typical way to do things is to file for patents, and protect your product or idea, and your product team produces the development design and manages updating the product for its lifecycle. The downside to that is that only your team has the ability to spot its flaws, make it better, or see other avenues where it could be used. This is not the case with an open-source project lifecycle. The product you develop is open to the community to use, inspect and improve upon. This helps accelerate the development of the idea or product by allowing open-innovation to take place.\\n\\n## Dismissing the current arguments against open-source development\\n\\nCan people take your code and use it for their own projects? The answer is yes, but this is not a bad thing at all. This is one of the things that empowers your idea by allowing you to see the improvements they made and how they made them, then adding those improvements into your code base.\\n\\nCan people alter your code to include malicious code? This depends on how well you manage the pull requests for your code, as even the Linux Kernel has had some bad-actors try and slip in malicious code before, and it was caught by the community. So you just need to make sure you define a strict set of rules for your project maintainers to follow when it comes to merging pull-requests from the community into your code base.\\n\\nCan you make money off Open-Source code? The answer to this is yes, and in many ways. It all comes down to how you design your project and the licensing you choose for it. As many open-source licenses do allow licensing, and support contracts, and many more options can be written into the standard licensing agreements.\\n\\n## How have we leveraged open-source for businesses?\\n\\nAs a consumer, you get to use the products of our work in open-source by testing our work (Bliss OS, Waydroid, Android-x86) on your laptop, tablet, desktop, server, etc. at no cost. \\nAs a business, our projects are limited in use, but can be licensed for inclusion into a project, and we offer development contracts to help businesses further develop their products, with our projects included. We have also created toolkits for businesses to use for free in the past, demonstrating the power of rapid-prototyping through the use of our services.\\n\\nFor other businesses, not used to working in open-source, there will always be hesitations. But that doesn\'t mean we can\'t make it work. We have had some restraints on projects in the past, and the solution for those proprietary constraints is typically to build a system that can handle allowing the end user to use it, while keeping all the private bits, private still. A perfect example of this is how Google Play, Widevine, libndk-translation, Houdini, and other private blobs are included in our projects. We have even gone one step further in this where allowed, and produced tools for the rest of the open-source community to use, that allows them to benefit from using the proprietary blobs, while keeping the businesses private intents intact.\\n\\nIt really all comes down to the mental attitude behind your innovation, and all in how you spin it. It\'s about time the market starts thinking on reasons why they should start going open-source, and not looking for all the reasons why they shouldn\'t."}]}')}}]); \ No newline at end of file diff --git a/assets/js/fe9e6c3d.0c59ca78.js b/assets/js/fe9e6c3d.0c59ca78.js deleted file mode 100644 index bb666fd..0000000 --- a/assets/js/fe9e6c3d.0c59ca78.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkblog_1=self.webpackChunkblog_1||[]).push([[4876],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>b});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),u=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},h=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),p=u(a),c=i,b=p["".concat(l,".").concat(c)]||p[c]||d[c]||o;return a?n.createElement(b,s(s({ref:t},h),{},{components:a})):n.createElement(b,s({ref:t},h))}));function b(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=a.length,s=new Array(o);s[0]=c;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[p]="string"==typeof e?e:i,s[1]=r;for(var u=2;u{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>u});var n=a(7462),i=(a(7294),a(3905));const o={slug:"asob-q3-2023-2024",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",authors:["electrikjesus","hmtheboy154"],description:"A State of Bliss 3rd Quarter 2023 + 2024",img:"assets/asob_q4_2023/asob-eoy23.jpeg",date:new Date("2024-01-17T00:00:00.000Z"),comments:!0,tags:["blissos","android-generic","bliss-x86"]},s="A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",r={permalink:"/asob-q3-2023-2024",source:"@site/blog/2023/asob-q3-2023-2024.md",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",description:"A State of Bliss 3rd Quarter 2023 + 2024",date:"2024-01-17T00:00:00.000Z",formattedDate:"January 17, 2024",tags:[{label:"blissos",permalink:"/tags/blissos"},{label:"android-generic",permalink:"/tags/android-generic"},{label:"bliss-x86",permalink:"/tags/bliss-x-86"}],readingTime:6.95,hasTruncateMarker:!1,authors:[{name:"Jon West",title:"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs",url:"https://github.com/electrikjesus",imageURL:"https://avatars.githubusercontent.com/u/8572619?v=4",key:"electrikjesus"},{name:"HMTheBoy154",title:"Bliss OS Maintainer",url:"https://github.com/hmtheboy154",imageURL:"https://avatars.githubusercontent.com/u/39849246?v=4",key:"hmtheboy154"}],frontMatter:{slug:"asob-q3-2023-2024",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",authors:["electrikjesus","hmtheboy154"],description:"A State of Bliss 3rd Quarter 2023 + 2024",img:"assets/asob_q4_2023/asob-eoy23.jpeg",date:"2024-01-17T00:00:00.000Z",comments:!0,tags:["blissos","android-generic","bliss-x86"]},nextItem:{title:"Bliss OS - Development Updates 11-23",permalink:"/bliss-updates-1123"}},l={authorsImageUrls:[void 0,void 0]},u=[{value:"A revamped bootable installer",id:"a-revamped-bootable-installer",level:2},{value:"An approach to OTA updates on BlissOS",id:"an-approach-to-ota-updates-on-blissos",level:2},{value:"AV1 support for ffmpeg codecs",id:"av1-support-for-ffmpeg-codecs",level:2},{value:"Properly handle suspend",id:"properly-handle-suspend",level:2},{value:"BlissOS Go for all versions",id:"blissos-go-for-all-versions",level:2},{value:"Bump to kernel 6.1 for all builds",id:"bump-to-kernel-61-for-all-builds",level:2},{value:"Introducing BlissOS Zenith",id:"introducing-blissos-zenith",level:2},{value:"Other updates",id:"other-updates",level:2}],h={toc:u},p="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(p,(0,n.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"alt text",src:a(7980).Z,title:"A State of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024",width:"1920",height:"1080"})),(0,i.kt)("p",null,"It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here."),(0,i.kt)("p",null,"Leading Up To Now"),(0,i.kt)("p",null,"We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release."),(0,i.kt)("h2",{id:"a-revamped-bootable-installer"},"A revamped bootable installer"),(0,i.kt)("p",null,"While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven\u2019t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS ",(0,i.kt)("a",{parentName:"p",href:"https://twitter.com/blissos_org/status/1700613048518795683"},"is doing something inappropriate")," , we realized that it\u2019s time and decide to look back at our bootable installer to completely revamped it :"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (",(0,i.kt)("a",{parentName:"li",href:"https://github.com/docker-library/busybox"},"https://github.com/docker-library/busybox"),")"),(0,i.kt)("li",{parentName:"ul"},"Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora)."),(0,i.kt)("li",{parentName:"ul"},"efivar and efibootmgr are still being built from source, but are being updated to latest versions."),(0,i.kt)("li",{parentName:"ul"},"Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps ",(0,i.kt)("strong",{parentName:"li"},"fixing black screen issues when trying to install"),"."),(0,i.kt)("li",{parentName:"ul"},"Support installing with exFAT or F2FS (experimental)."),(0,i.kt)("li",{parentName:"ul"},"UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization."),(0,i.kt)("li",{parentName:"ul"},"Some label and text edit for better comprehensiveness of what the installer tries to do."),(0,i.kt)("li",{parentName:"ul"},"Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it."),(0,i.kt)("li",{parentName:"ul"},"Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.")),(0,i.kt)("p",null,"We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven\u2019t planned to support Secure Boot yet so please disable it before trying to install the OS."),(0,i.kt)("p",null,"Check out the screenshot here if you are interested : ",(0,i.kt)("a",{parentName:"p",href:"https://t.me/hmdumbground/111"},"https://t.me/hmdumbground/111")),(0,i.kt)("h2",{id:"an-approach-to-ota-updates-on-blissos"},"An approach to OTA updates on BlissOS"),(0,i.kt)("p",null,"A few months ago, we reached out to ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/erfanoabdi"},"@erfanoabdi")," for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it\u2019s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many."),(0,i.kt)("p",null,"The disadvantages that we observed is that this method does not support filesystems that are handled by ",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/html/next/filesystems/fuse.html"},"FUSE")," , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation."),(0,i.kt)("p",null,"All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future."),(0,i.kt)("h2",{id:"av1-support-for-ffmpeg-codecs"},"AV1 support for ffmpeg codecs"),(0,i.kt)("p",null,"Thanks to the work of ",(0,i.kt)("a",{parentName:"p",href:"https://konstakang.com/"},"@KonstaKANG"),", we\u2019ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by ",(0,i.kt)("a",{parentName:"p",href:"https://code.videolan.org/videolan/dav1d"},"libdav1d")," made by the developers at VLC and being built using ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/GloDroid/aospext"},"GloDroid\u2019s AOSPExt"),". We are also planning to support VA-API AV1 soon for hardware-accelerated solution."),(0,i.kt)("h2",{id:"properly-handle-suspend"},"Properly handle suspend"),(0,i.kt)("p",null,"While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/Kethen"},"@Kethen")," has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before."),(0,i.kt)("h2",{id:"blissos-go-for-all-versions"},"BlissOS Go for all versions"),(0,i.kt)("p",null,"Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants."),(0,i.kt)("h2",{id:"bump-to-kernel-61-for-all-builds"},"Bump to kernel 6.1 for all builds"),(0,i.kt)("p",null,"Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google\u2019s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve."),(0,i.kt)("h2",{id:"introducing-blissos-zenith"},"Introducing BlissOS Zenith"),(0,i.kt)("p",null,"We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can\u2019t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we\u2019ve decided that we will make another variant, this time with 2 key differences :"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only build the latest version of BlissOS available for this variant, so for now it\u2019s 16."),(0,i.kt)("li",{parentName:"ul"},"Using stable branch of the linux kernel.")),(0,i.kt)("p",null,"We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, \u201cWhat if we ask our community ?\u201d and decide to ask people to give this new build a name on our ",(0,i.kt)("a",{parentName:"p",href:"https://twitter.com/blissos_org/status/1733872766133403666"},"Twitter")," & our group chat. After looking through all the suggestions, we\u2019ve decided to choose ",(0,i.kt)("inlineCode",{parentName:"p"},"Zenith")," ."),(0,i.kt)("p",null,' \\\nBlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6'),(0,i.kt)("h2",{id:"other-updates"},"Other updates"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Kethen"},"@Kethen")," (again)."),(0,i.kt)("li",{parentName:"ul"},"alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/thesofproject/sof-bin"},"sof-firmware")," from Intel is being included to support more audio hardware."),(0,i.kt)("li",{parentName:"ul"},"All builds are now using Mesa 23.3.3"),(0,i.kt)("li",{parentName:"ul"},"Some fixes to the sensors HAL (thanks to ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Kethen"},"@Kethen")," again)"),(0,i.kt)("li",{parentName:"ul"},"Fixed an issue that desktop Nvidia GPUs with nouveau can\u2019t be able to get into the GUI."),(0,i.kt)("li",{parentName:"ul"},"Support KeeTouch touchscreens."),(0,i.kt)("li",{parentName:"ul"},"Rotation quirks for Chuwi Ubook X 2023"),(0,i.kt)("li",{parentName:"ul"},"Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS."),(0,i.kt)("li",{parentName:"ul"},"Users can now fix their audio issues after install by putting their hardware\u2019s alsa state definitions in ",(0,i.kt)("inlineCode",{parentName:"li"},"/data/vendor/alsa/.state")),(0,i.kt)("li",{parentName:"ul"},"Updated KernelSU to latest version."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Console is back"),", you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add ",(0,i.kt)("inlineCode",{parentName:"li"},"androidboot.enable_console=1")," to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering."),(0,i.kt)("li",{parentName:"ul"},"Some tweaks for BlissOS Go taken from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/GloDroid"},"GloDroid Project")," ."),(0,i.kt)("li",{parentName:"ul"},"You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/LMODroid"},"LMODroid")," ."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://web.archive.org/web/20220625232751/https://01.org/blogs/2019/intel-optimizations-android-pie-runtime-compiler"},"AutoFast JNI")," is now available on BlissOS 16."),(0,i.kt)("li",{parentName:"ul"},"BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu")))}d.isMDXComponent=!0},7980:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/asob-eoy23-8763430913ce10c1a6022e3f31260e78.jpeg"}}]); \ No newline at end of file diff --git a/assets/js/fe9e6c3d.18cdd063.js b/assets/js/fe9e6c3d.18cdd063.js new file mode 100644 index 0000000..0118107 --- /dev/null +++ b/assets/js/fe9e6c3d.18cdd063.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkblog_1=self.webpackChunkblog_1||[]).push([[4876],{3905:(e,t,a)=>{a.d(t,{Zo:()=>h,kt:()=>b});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var l=n.createContext({}),u=function(e){var t=n.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},h=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,h=r(e,["components","mdxType","originalType","parentName"]),p=u(a),c=i,b=p["".concat(l,".").concat(c)]||p[c]||d[c]||o;return a?n.createElement(b,s(s({ref:t},h),{},{components:a})):n.createElement(b,s({ref:t},h))}));function b(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=a.length,s=new Array(o);s[0]=c;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[p]="string"==typeof e?e:i,s[1]=r;for(var u=2;u{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>u});var n=a(7462),i=(a(7294),a(3905));const o={slug:"asob-q3-2023-2024",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",authors:["electrikjesus","hmtheboy154"],description:"A State of Bliss 3rd Quarter 2023 + 2024",img:"assets/asob_q4_2023/asob-eoy23.jpeg",date:new Date("2024-01-17T00:00:00.000Z"),comments:!0,tags:["blissos","android-generic","bliss-x86"]},s="A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",r={permalink:"/asob-q3-2023-2024",source:"@site/blog/2023/asob-q3-2023-2024.md",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",description:"A State of Bliss 3rd Quarter 2023 + 2024",date:"2024-01-17T00:00:00.000Z",formattedDate:"January 17, 2024",tags:[{label:"blissos",permalink:"/tags/blissos"},{label:"android-generic",permalink:"/tags/android-generic"},{label:"bliss-x86",permalink:"/tags/bliss-x-86"}],readingTime:6.975,hasTruncateMarker:!1,authors:[{name:"Jon West",title:"Founder / Developer @BlissCoLabs / Incorporator & CTO / Bliss OS / Android-Generic Project @BlissLabs",url:"https://github.com/electrikjesus",imageURL:"https://avatars.githubusercontent.com/u/8572619?v=4",key:"electrikjesus"},{name:"HMTheBoy154",title:"Bliss OS Maintainer",url:"https://github.com/hmtheboy154",imageURL:"https://avatars.githubusercontent.com/u/39849246?v=4",key:"hmtheboy154"}],frontMatter:{slug:"asob-q3-2023-2024",title:"A State Of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024)",authors:["electrikjesus","hmtheboy154"],description:"A State of Bliss 3rd Quarter 2023 + 2024",img:"assets/asob_q4_2023/asob-eoy23.jpeg",date:"2024-01-17T00:00:00.000Z",comments:!0,tags:["blissos","android-generic","bliss-x86"]},nextItem:{title:"Bliss OS - Development Updates 11-23",permalink:"/bliss-updates-1123"}},l={authorsImageUrls:[void 0,void 0]},u=[{value:"A revamped bootable installer",id:"a-revamped-bootable-installer",level:2},{value:"An approach to OTA updates on BlissOS",id:"an-approach-to-ota-updates-on-blissos",level:2},{value:"AV1 support for ffmpeg codecs",id:"av1-support-for-ffmpeg-codecs",level:2},{value:"Properly handle suspend",id:"properly-handle-suspend",level:2},{value:"BlissOS Go for all versions",id:"blissos-go-for-all-versions",level:2},{value:"Bump to kernel 6.1 for all builds",id:"bump-to-kernel-61-for-all-builds",level:2},{value:"Introducing BlissOS Zenith",id:"introducing-blissos-zenith",level:2},{value:"Other updates",id:"other-updates",level:2}],h={toc:u},p="wrapper";function d(e){let{components:t,...o}=e;return(0,i.kt)(p,(0,n.Z)({},h,o,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"alt text",src:a(7980).Z,title:"A State of Bliss : Wrapping up a Blissful year - Last Quarter of 2023 (and beginning of 2024",width:"1920",height:"1080"})),(0,i.kt)("p",null,"It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here."),(0,i.kt)("p",null,"Leading Up To Now"),(0,i.kt)("p",null,"We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release."),(0,i.kt)("h2",{id:"a-revamped-bootable-installer"},"A revamped bootable installer"),(0,i.kt)("p",null,"While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven\u2019t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS ",(0,i.kt)("a",{parentName:"p",href:"https://twitter.com/blissos_org/status/1700613048518795683"},"is doing something inappropriate")," , we realized that it\u2019s time and decide to look back at our bootable installer to completely revamped it :"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (",(0,i.kt)("a",{parentName:"li",href:"https://github.com/docker-library/busybox"},"https://github.com/docker-library/busybox"),")"),(0,i.kt)("li",{parentName:"ul"},"Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora)."),(0,i.kt)("li",{parentName:"ul"},"efivar and efibootmgr are still being built from source, but are being updated to latest versions."),(0,i.kt)("li",{parentName:"ul"},"Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps ",(0,i.kt)("strong",{parentName:"li"},"fixing black screen issues when trying to install"),"."),(0,i.kt)("li",{parentName:"ul"},"Support installing with exFAT or F2FS (experimental)."),(0,i.kt)("li",{parentName:"ul"},"UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization."),(0,i.kt)("li",{parentName:"ul"},"Some label and text edit for better comprehensiveness of what the installer tries to do."),(0,i.kt)("li",{parentName:"ul"},"Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it."),(0,i.kt)("li",{parentName:"ul"},"Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.")),(0,i.kt)("p",null,"We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven\u2019t planned to support Secure Boot yet so please disable it before trying to install the OS."),(0,i.kt)("p",null,"Check out the screenshot here if you are interested : ",(0,i.kt)("a",{parentName:"p",href:"https://t.me/hmdumbground/111"},"https://t.me/hmdumbground/111")),(0,i.kt)("h2",{id:"an-approach-to-ota-updates-on-blissos"},"An approach to OTA updates on BlissOS"),(0,i.kt)("p",null,"A few months ago, we reached out to ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/erfanoabdi"},"@erfanoabdi")," for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it\u2019s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many."),(0,i.kt)("p",null,"The disadvantages that we observed is that this method does not support filesystems that are handled by ",(0,i.kt)("a",{parentName:"p",href:"https://www.kernel.org/doc/html/next/filesystems/fuse.html"},"FUSE")," , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation."),(0,i.kt)("p",null,"All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future."),(0,i.kt)("h2",{id:"av1-support-for-ffmpeg-codecs"},"AV1 support for ffmpeg codecs"),(0,i.kt)("p",null,"Thanks to the work of ",(0,i.kt)("a",{parentName:"p",href:"https://konstakang.com/"},"@KonstaKANG"),", we\u2019ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by ",(0,i.kt)("a",{parentName:"p",href:"https://code.videolan.org/videolan/dav1d"},"libdav1d")," made by the developers at VLC and being built using ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/GloDroid/aospext"},"GloDroid\u2019s AOSPExt"),". We are also planning to support VA-API AV1 soon for hardware-accelerated solution."),(0,i.kt)("h2",{id:"properly-handle-suspend"},"Properly handle suspend"),(0,i.kt)("p",null,"While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/Kethen"},"@Kethen")," has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before."),(0,i.kt)("h2",{id:"blissos-go-for-all-versions"},"BlissOS Go for all versions"),(0,i.kt)("p",null,"Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants."),(0,i.kt)("h2",{id:"bump-to-kernel-61-for-all-builds"},"Bump to kernel 6.1 for all builds"),(0,i.kt)("p",null,"Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google\u2019s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve."),(0,i.kt)("h2",{id:"introducing-blissos-zenith"},"Introducing BlissOS Zenith"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"alt text",src:a(3768).Z,title:"Bliss OS Zenith",width:"1920",height:"1080"})),(0,i.kt)("p",null,"We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can\u2019t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we\u2019ve decided that we will make another variant, this time with 2 key differences :"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Only build the latest version of BlissOS available for this variant, so for now it\u2019s 16."),(0,i.kt)("li",{parentName:"ul"},"Using stable branch of the linux kernel.")),(0,i.kt)("p",null,"We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, \u201cWhat if we ask our community ?\u201d and decide to ask people to give this new build a name on our ",(0,i.kt)("a",{parentName:"p",href:"https://twitter.com/blissos_org/status/1733872766133403666"},"Twitter")," & our group chat. After looking through all the suggestions, we\u2019ve decided to choose ",(0,i.kt)("inlineCode",{parentName:"p"},"Zenith")," ."),(0,i.kt)("p",null,' \\\nBlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6'),(0,i.kt)("h2",{id:"other-updates"},"Other updates"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Kethen"},"@Kethen")," (again)."),(0,i.kt)("li",{parentName:"ul"},"alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/thesofproject/sof-bin"},"sof-firmware")," from Intel is being included to support more audio hardware."),(0,i.kt)("li",{parentName:"ul"},"All builds are now using Mesa 23.3.3"),(0,i.kt)("li",{parentName:"ul"},"Some fixes to the sensors HAL (thanks to ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Kethen"},"@Kethen")," again)"),(0,i.kt)("li",{parentName:"ul"},"Fixed an issue that desktop Nvidia GPUs with nouveau can\u2019t be able to get into the GUI."),(0,i.kt)("li",{parentName:"ul"},"Support KeeTouch touchscreens."),(0,i.kt)("li",{parentName:"ul"},"Rotation quirks for Chuwi Ubook X 2023"),(0,i.kt)("li",{parentName:"ul"},"Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS."),(0,i.kt)("li",{parentName:"ul"},"Users can now fix their audio issues after install by putting their hardware\u2019s alsa state definitions in ",(0,i.kt)("inlineCode",{parentName:"li"},"/data/vendor/alsa/.state")),(0,i.kt)("li",{parentName:"ul"},"Updated KernelSU to latest version."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("strong",{parentName:"li"},"Virtual Console is back"),", you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add ",(0,i.kt)("inlineCode",{parentName:"li"},"androidboot.enable_console=1")," to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering."),(0,i.kt)("li",{parentName:"ul"},"Some tweaks for BlissOS Go taken from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/GloDroid"},"GloDroid Project")," ."),(0,i.kt)("li",{parentName:"ul"},"You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/LMODroid"},"LMODroid")," ."),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://web.archive.org/web/20220625232751/https://01.org/blogs/2019/intel-optimizations-android-pie-runtime-compiler"},"AutoFast JNI")," is now available on BlissOS 16."),(0,i.kt)("li",{parentName:"ul"},"BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu")))}d.isMDXComponent=!0},3768:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/BLISS-OS_ZENITH-0c69d500cecf943295f5db8d4360e9d1.png"},7980:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/asob-eoy23-8763430913ce10c1a6022e3f31260e78.jpeg"}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.b68bff2d.js b/assets/js/runtime~main.eaac3a27.js similarity index 96% rename from assets/js/runtime~main.b68bff2d.js rename to assets/js/runtime~main.eaac3a27.js index 6fb1382..53173b6 100644 --- a/assets/js/runtime~main.b68bff2d.js +++ b/assets/js/runtime~main.eaac3a27.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,f,t,r={},d={};function o(e){var a=d[e];if(void 0!==a)return a.exports;var c=d[e]={id:e,loaded:!1,exports:{}};return r[e].call(c.exports,c,c.exports,o),c.loaded=!0,c.exports}o.m=r,o.c=d,e=[],o.O=(a,c,f,t)=>{if(!c){var r=1/0;for(i=0;i=t)&&Object.keys(o.O).every((e=>o.O[e](c[b])))?c.splice(b--,1):(d=!1,t0&&e[i-1][2]>t;i--)e[i]=e[i-1];e[i]=[c,f,t]},o.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return o.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var t=Object.create(null);o.r(t);var r={};a=a||[null,c({}),c([]),c(c)];for(var d=2&f&&e;"object"==typeof d&&!~a.indexOf(d);d=c(d))Object.getOwnPropertyNames(d).forEach((a=>r[a]=()=>e[a]));return r.default=()=>e,o.d(t,r),t},o.d=(e,a)=>{for(var c in a)o.o(a,c)&&!o.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((a,c)=>(o.f[c](e,a),a)),[])),o.u=e=>"assets/js/"+({152:"fd20961c",704:"0ea7dc37",964:"c573638f",1001:"5de85630",2056:"01133ad1",2324:"634a5c9d",2383:"1799fea9",2535:"814f3328",2576:"795de26f",2609:"becd8dac",2734:"53444ae1",2741:"d675395f",2778:"bc3368ad",2888:"b6d004f1",3085:"1f391b9e",3089:"a6aa9e1f",3306:"e8b70196",3580:"65d9f1e8",3608:"9e4087bc",3901:"6d53a8b2",4013:"01a85c17",4048:"1c129fa5",4106:"15cbf364",4185:"6c3b867a",4426:"f9dc1f3b",4549:"cf7c2789",4712:"b1a838f3",4720:"f8f3e9b7",4780:"6f4dcc67",4876:"fe9e6c3d",4928:"71f7c220",5272:"ec7a0556",5991:"a5557bb9",6103:"ccc49370",6524:"67f92d44",6539:"18e1cc29",7297:"372e67b4",7345:"0e834f58",7354:"7eaf8796",7414:"393be207",7559:"1ec2f953",7571:"60bb068a",8442:"a3f2b4f3",8577:"2d720d8c",8610:"6875c492",8837:"295317aa",9033:"24af3682",9286:"f7e2c7d0",9450:"2e801cce",9741:"52e3e83d",9940:"2510a1a6"}[e]||e)+"."+{152:"282739a9",704:"dc468a68",964:"ea928cd9",1001:"ba7a9f7c",2056:"0657d56c",2324:"37d11f8f",2383:"d0131967",2535:"6b7306dc",2576:"1a657652",2609:"7682a4b1",2734:"fe14d11f",2741:"7159c5e8",2778:"7bd64bd2",2888:"673328b2",3085:"0d1c7d34",3089:"ca1635c6",3306:"10e1ec10",3580:"b12966f7",3608:"fbf08e1f",3901:"e31ffb29",4013:"db0c8946",4048:"50e95fc4",4106:"3749e0d7",4185:"0848226c",4426:"3ca5b88c",4549:"b3b3ec6e",4712:"56217f87",4720:"6958cb4c",4780:"b23ff57e",4876:"0c59ca78",4928:"e65f81b2",4972:"52fd977a",5044:"a64eafa9",5272:"782e093d",5991:"325fc7db",6103:"073f66f7",6524:"9511a4b4",6539:"6758013b",7161:"5033f2da",7297:"0350550d",7345:"108c7856",7354:"185093b3",7414:"3466cf32",7559:"227b322b",7571:"c0cfe9e5",8442:"10807764",8577:"8b6745f9",8610:"3dbefb41",8837:"246bb0b9",9033:"1f509696",9286:"6a491c48",9450:"d3fa65fa",9741:"71cc33e0",9940:"c5ad0a95"}[e]+".js",o.miniCssF=e=>{},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},t="blog-1:",o.l=(e,a,c,r)=>{if(f[e])f[e].push(a);else{var d,b;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(s);var t=f[e];if(delete f[e],d.parentNode&&d.parentNode.removeChild(d),t&&t.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=u.bind(null,d.onerror),d.onload=u.bind(null,d.onload),b&&document.head.appendChild(d)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.p="/",o.gca=function(e){return e={fd20961c:"152","0ea7dc37":"704",c573638f:"964","5de85630":"1001","01133ad1":"2056","634a5c9d":"2324","1799fea9":"2383","814f3328":"2535","795de26f":"2576",becd8dac:"2609","53444ae1":"2734",d675395f:"2741",bc3368ad:"2778",b6d004f1:"2888","1f391b9e":"3085",a6aa9e1f:"3089",e8b70196:"3306","65d9f1e8":"3580","9e4087bc":"3608","6d53a8b2":"3901","01a85c17":"4013","1c129fa5":"4048","15cbf364":"4106","6c3b867a":"4185",f9dc1f3b:"4426",cf7c2789:"4549",b1a838f3:"4712",f8f3e9b7:"4720","6f4dcc67":"4780",fe9e6c3d:"4876","71f7c220":"4928",ec7a0556:"5272",a5557bb9:"5991",ccc49370:"6103","67f92d44":"6524","18e1cc29":"6539","372e67b4":"7297","0e834f58":"7345","7eaf8796":"7354","393be207":"7414","1ec2f953":"7559","60bb068a":"7571",a3f2b4f3:"8442","2d720d8c":"8577","6875c492":"8610","295317aa":"8837","24af3682":"9033",f7e2c7d0:"9286","2e801cce":"9450","52e3e83d":"9741","2510a1a6":"9940"}[e]||e,o.p+o.u(e)},(()=>{var e={1303:0,532:0};o.f.j=(a,c)=>{var f=o.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var t=new Promise(((c,t)=>f=e[a]=[c,t]));c.push(f[2]=t);var r=o.p+o.u(a),d=new Error;o.l(r,(c=>{if(o.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var t=c&&("load"===c.type?"missing":c.type),r=c&&c.target&&c.target.src;d.message="Loading chunk "+a+" failed.\n("+t+": "+r+")",d.name="ChunkLoadError",d.type=t,d.request=r,f[1](d)}}),"chunk-"+a,a)}},o.O.j=a=>0===e[a];var a=(a,c)=>{var f,t,r=c[0],d=c[1],b=c[2],n=0;if(r.some((a=>0!==e[a]))){for(f in d)o.o(d,f)&&(o.m[f]=d[f]);if(b)var i=b(o)}for(a&&a(c);n{"use strict";var e,a,c,f,t,r={},d={};function o(e){var a=d[e];if(void 0!==a)return a.exports;var c=d[e]={id:e,loaded:!1,exports:{}};return r[e].call(c.exports,c,c.exports,o),c.loaded=!0,c.exports}o.m=r,o.c=d,e=[],o.O=(a,c,f,t)=>{if(!c){var r=1/0;for(i=0;i=t)&&Object.keys(o.O).every((e=>o.O[e](c[b])))?c.splice(b--,1):(d=!1,t0&&e[i-1][2]>t;i--)e[i]=e[i-1];e[i]=[c,f,t]},o.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return o.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var t=Object.create(null);o.r(t);var r={};a=a||[null,c({}),c([]),c(c)];for(var d=2&f&&e;"object"==typeof d&&!~a.indexOf(d);d=c(d))Object.getOwnPropertyNames(d).forEach((a=>r[a]=()=>e[a]));return r.default=()=>e,o.d(t,r),t},o.d=(e,a)=>{for(var c in a)o.o(a,c)&&!o.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((a,c)=>(o.f[c](e,a),a)),[])),o.u=e=>"assets/js/"+({152:"fd20961c",704:"0ea7dc37",964:"c573638f",1001:"5de85630",2056:"01133ad1",2324:"634a5c9d",2383:"1799fea9",2535:"814f3328",2576:"795de26f",2609:"becd8dac",2734:"53444ae1",2741:"d675395f",2778:"bc3368ad",2888:"b6d004f1",3085:"1f391b9e",3089:"a6aa9e1f",3306:"e8b70196",3580:"65d9f1e8",3608:"9e4087bc",3901:"6d53a8b2",4013:"01a85c17",4048:"1c129fa5",4106:"15cbf364",4185:"6c3b867a",4426:"f9dc1f3b",4549:"cf7c2789",4712:"b1a838f3",4720:"f8f3e9b7",4780:"6f4dcc67",4876:"fe9e6c3d",4928:"71f7c220",5272:"ec7a0556",5991:"a5557bb9",6103:"ccc49370",6524:"67f92d44",6539:"18e1cc29",7297:"372e67b4",7345:"0e834f58",7354:"7eaf8796",7414:"393be207",7559:"1ec2f953",7571:"60bb068a",8442:"a3f2b4f3",8577:"2d720d8c",8610:"6875c492",8837:"295317aa",9033:"24af3682",9286:"f7e2c7d0",9450:"2e801cce",9741:"52e3e83d",9940:"2510a1a6"}[e]||e)+"."+{152:"282739a9",704:"dc468a68",964:"ea928cd9",1001:"ba7a9f7c",2056:"0657d56c",2324:"37d11f8f",2383:"d0131967",2535:"6b7306dc",2576:"1a657652",2609:"7682a4b1",2734:"fe14d11f",2741:"7159c5e8",2778:"7bd64bd2",2888:"673328b2",3085:"0d1c7d34",3089:"ca1635c6",3306:"10e1ec10",3580:"b12966f7",3608:"fbf08e1f",3901:"e31ffb29",4013:"db0c8946",4048:"50e95fc4",4106:"3749e0d7",4185:"0848226c",4426:"3ca5b88c",4549:"b3b3ec6e",4712:"56217f87",4720:"6958cb4c",4780:"b23ff57e",4876:"18cdd063",4928:"e65f81b2",4972:"52fd977a",5044:"a64eafa9",5272:"782e093d",5991:"325fc7db",6103:"073f66f7",6524:"9511a4b4",6539:"6758013b",7161:"5033f2da",7297:"0350550d",7345:"108c7856",7354:"185093b3",7414:"3466cf32",7559:"227b322b",7571:"c0cfe9e5",8442:"10807764",8577:"8b6745f9",8610:"3dbefb41",8837:"5494a8c9",9033:"1f509696",9286:"6a491c48",9450:"97ac8e53",9741:"71cc33e0",9940:"c5ad0a95"}[e]+".js",o.miniCssF=e=>{},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},t="blog-1:",o.l=(e,a,c,r)=>{if(f[e])f[e].push(a);else{var d,b;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(s);var t=f[e];if(delete f[e],d.parentNode&&d.parentNode.removeChild(d),t&&t.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=u.bind(null,d.onerror),d.onload=u.bind(null,d.onload),b&&document.head.appendChild(d)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.p="/",o.gca=function(e){return e={fd20961c:"152","0ea7dc37":"704",c573638f:"964","5de85630":"1001","01133ad1":"2056","634a5c9d":"2324","1799fea9":"2383","814f3328":"2535","795de26f":"2576",becd8dac:"2609","53444ae1":"2734",d675395f:"2741",bc3368ad:"2778",b6d004f1:"2888","1f391b9e":"3085",a6aa9e1f:"3089",e8b70196:"3306","65d9f1e8":"3580","9e4087bc":"3608","6d53a8b2":"3901","01a85c17":"4013","1c129fa5":"4048","15cbf364":"4106","6c3b867a":"4185",f9dc1f3b:"4426",cf7c2789:"4549",b1a838f3:"4712",f8f3e9b7:"4720","6f4dcc67":"4780",fe9e6c3d:"4876","71f7c220":"4928",ec7a0556:"5272",a5557bb9:"5991",ccc49370:"6103","67f92d44":"6524","18e1cc29":"6539","372e67b4":"7297","0e834f58":"7345","7eaf8796":"7354","393be207":"7414","1ec2f953":"7559","60bb068a":"7571",a3f2b4f3:"8442","2d720d8c":"8577","6875c492":"8610","295317aa":"8837","24af3682":"9033",f7e2c7d0:"9286","2e801cce":"9450","52e3e83d":"9741","2510a1a6":"9940"}[e]||e,o.p+o.u(e)},(()=>{var e={1303:0,532:0};o.f.j=(a,c)=>{var f=o.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var t=new Promise(((c,t)=>f=e[a]=[c,t]));c.push(f[2]=t);var r=o.p+o.u(a),d=new Error;o.l(r,(c=>{if(o.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var t=c&&("load"===c.type?"missing":c.type),r=c&&c.target&&c.target.src;d.message="Loading chunk "+a+" failed.\n("+t+": "+r+")",d.name="ChunkLoadError",d.type=t,d.request=r,f[1](d)}}),"chunk-"+a,a)}},o.O.j=a=>0===e[a];var a=(a,c)=>{var f,t,r=c[0],d=c[1],b=c[2],n=0;if(r.some((a=>0!==e[a]))){for(f in d)o.o(d,f)&&(o.m[f]=d[f]);if(b)var i=b(o)}for(a&&a(c);n 2024-01-17T00:00:00.000Z

- alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ + alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

alt text

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ BlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6

Other updates

  • A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to @Kethen (again).
  • alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues.
  • sof-firmware from Intel is being included to support more audio hardware.
  • All builds are now using Mesa 23.3.3
  • Some fixes to the sensors HAL (thanks to @Kethen again)
  • Fixed an issue that desktop Nvidia GPUs with nouveau can’t be able to get into the GUI.
  • Support KeeTouch touchscreens.
  • Rotation quirks for Chuwi Ubook X 2023
  • Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS.
  • Users can now fix their audio issues after install by putting their hardware’s alsa state definitions in /data/vendor/alsa/<hardware>.state
  • Updated KernelSU to latest version.
  • Virtual Console is back, you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add androidboot.enable_console=1 to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering.
  • Some tweaks for BlissOS Go taken from GloDroid Project .
  • You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from LMODroid .
  • AutoFast JNI is now available on BlissOS 16.
  • BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu
]]> Jon West diff --git a/bliss-168/index.html b/bliss-168/index.html index 484b440..ac09b2f 100644 --- a/bliss-168/index.html +++ b/bliss-168/index.html @@ -13,14 +13,14 @@ - +

BlissOS 16.8 codenamed Typhoon-x86 is now available

· 3 min read
HMTheBoy154

alt text

July is a busy month for us here in BlissLabs. With the release of Android 13 QPR3, we've decided that both BlissROMs and BlissOS this time will release the new updates on the same day which is pretty special for both of us.

You can check out all the changes BlissROMs made here for more info : https://blog.blissroms.org/2023-07-15-typhoon-16.8-updates-jul-2023/

BlissOS exclusive changes

Beside from QPR3 and the changes made by BlissROMs, BlissOS offer some exclusive changes too. There are 3 main things :

New About Tablet design

alt text

BlissROMs gave us the new About Phone/Tablet design, here we made a few modification to it. First, Processor name will show the actual CPU name of the device instead of getting the SoC name with prop ro.soc.model. Device name is a tablet instead of a phone and the screen to show the wallpaper is set to horizontal with 16:9 aspect ratio. Making this a nice tablet info screen for BlissOS.

Exclusive Launcher Features

To say this is an exclusive is a bit odd, because submitted the patches to Gerrit. But BlissROMs decided to put these in the next release (16.9) so we just gonna say that this is exclusive to BlissOS 16.8 :p.

First, the Split button is now properly modified based on the new Recents button layouts.

alt text

Not only that, you can also turn it off in Recents Settings

alt text

Next, by default memory info in Recents is on the top of the screen, we've provided an option to move it down again. We also calculated and change the margin of memory info when you are on Persistent Taskbar or Transient Taskbar so that meminfo will not be covered by taskbars.

alt text alt text

Finally, Developer Options is back ! You can find it under Misc Settings when Developer Options in Settings is enabled.

alt text

Shipping with Kernel 6.1

BlissOS 16.8 will be the first build to ship with Kernel 6.1. Currently I'm still using the same recipe, Google's Common Kernel android14-6.1-lts branch with xanmod patches and some fixes for Android-x86 but because this is Kernel 6.1, more hardware will be supported especially the Steam Deck with some drivers & fixes from Valve that they put on their SteamOS' kernel.

And that's it for this month with the new release of 16.8, we hope that you will enjoy it even though for BlissOS 16 it's still in Beta stage.

#StayBlissful #FeelTheWind🌪

- + \ No newline at end of file diff --git a/bliss-os-linux-hybrid-preview/index.html b/bliss-os-linux-hybrid-preview/index.html index 7c434f2..67fd9a2 100644 --- a/bliss-os-linux-hybrid-preview/index.html +++ b/bliss-os-linux-hybrid-preview/index.html @@ -13,13 +13,13 @@ - +

[announcement] Bliss OS Linux Hybrid Preview (Bliss OS Go edition)

· 2 min read
Jon West

This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware.

Features:

  • Based on Xubuntu 22.04.x LTS

  • Stripped of Snap and other Ubuntu apps/telemetry

  • Includes Ubuntu expanded hardware support drivers

  • QEMU based Bliss OS session

  • Bliss OS grub menu options (for running on bare-metal hardware)

  • Includes basic update and management scripts for Android side

  • Lots more, but we are just getting started…

Download the preview:

https://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU

Live Boot Info:

User: Live

Password: evolution

Step 1:

Live boot (boots to xfce4)

Step 2:

Run installer (last step shows pop-up to specify data.img size), Done.

Step 3:

Reboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)

Notes:

Autologin is enabled, will launch last loaded session choice from Login screen

- + \ No newline at end of file diff --git a/bliss-updates-1123/index.html b/bliss-updates-1123/index.html index 79a57c1..4598f3f 100644 --- a/bliss-updates-1123/index.html +++ b/bliss-updates-1123/index.html @@ -13,13 +13,13 @@ - +

Bliss OS - Development Updates 11-23

· 6 min read
Jon West

alt text

Since the release of our stable Bliss OS 14.x & 15.x builds, we have had the chance to make a number of advancements on the OS in various areas. We will start the post with the updates coming from the value added contributions on the business side of things, then end with the updates being merged into the Bliss OS builds.

Bliss Bass - beta builds started already

alt_text

We have started to push some of the source for our Bliss Bass (Broad Apparatus Support System) builds that we use for customer focused builds based on Bliss OS, and the feedback from that has been pushing our development on the platform in a positive direction. These builds will be 100% ready for use in products, and will come with a number of added configuration options for features, UI/UX, updates, and more. We have released a few beta builds of the base FOSS variant of Bliss Bass for testing on Sourceforge. The initial flavors we will offer are:

  • Kiosk variant
  • Desktop variant
  • Tablet variant
  • Tablet Go - IOT/IIOT variant
  • More on its way

There will be a new website created for these builds, and they will still be free to download and test, although the initial test builds will come watermarked. This will ensure that we are able to produce these test builds for the public while still retaining our licensing rights for it.

We are still collecting valuable information from our customers and would love to hear what our users think of this approach. Please leave a comment and let us know your thoughts.

Bliss OS Updates

There are a few important changes that we are gearing up for on Bliss OS. First, on Bliss OS 14.x & 15.x, we will be shipping with Kernel 6.1, this includes our Surface builds. Second change will be for BlissOS 14.x, 15.x & 16.x (Generic/Surface), and that will be a switch to a new Audio HAL made by Intel’s Project Celadon

Switching to the new Audio HAL will be an important change for us, so we would like to ask everyone to help us to test these new HAL so that we can have feedback and improve it further. Once tested, we will update the builds to include the new audio HAL changes.

Please join our Discord or Telegram to gain access to the new test builds of BlissOS 15.8.8 with Kernel 6.1.36 and the new Audio HAL.

Go builds & Low RAM devices can now bypass some options in Settings

In BlissOS Go builds, there are some options that are being blocked by Android. Most notably the option to allow apps to draw on other apps. You will see this text when you are trying to grant the permission :

alt_text

With the latest update of BlissOS, we've included a switch in Blissify Settings to allow bypassing this restriction. So now you are able to use apps like Smart Dock or Taskbar just like the usual generic version. The new option will be available in all of the upcoming BlissOS releases including 14, 15 and 16.

A/B OTA Updates - rolling out soon

Our efforts on Bliss Co-Labs have been paying off and we have a number of features and options developed from there heading to our open-source Bliss OS builds soon. The recently merged changes for the Bliss Setup Wizard for Bliss OS 15.x is one of those.

The other will be coming in the form of OTA updates for Bliss OS. These updates will bring the following improvements to the system:

  • Separate A/B slots for all three images (system.img, initrd.img & kernel)
  • System Rollbacks - Native bootctrl behavior
  • Update server controlled by our own Shipper Stack

We have worked around a few issues with shipping sfs/erofs images and will keep the community posted on the progress. The early beta builds might not have all those fixes included just yet, so just be aware if you are trying to mount as read/write.

Grub updates to v2.06 - also rolling out soon

Now that we have the groundwork laid out for updating Grub with our A/B OTA updates, we decided it was best to update to the current version of Grub that Linux uses, and in doing so, we also solve an issue that 12th gen+ Intel CPU’s have had where the screen is black after selecting any boot option from Grub. This means that the most recent gen CPU’s will now be supported by both the kernel and the bootloader for Bliss OS.

This effort came from a few different contributors, so we have an initial solution we will likely release, and then split the other contributions into phases where we merge binary updates, libraries, modules, installer updates, and others separately in order to ensure stability as we move forward.

OEM Install mode options - also rolling out soon

Bliss OS builds (and Android-x86) have had some major issues with the auto-install mode that have been the source of many headaches and many long nights of reinstalling other operating systems in order to correct. So we took some time to update the current auto-install solution and give it a more proper name of OEM install, along with adding a few more options for unattended installation (Force):

  • OEM Install (same as old auto-install, will require some interaction)
  • OEM Install - Force MBR [Unattended Install] (if bios is set to use Legacy)
  • OEM Install - Force EFI [Unattended Install] (if bios is set to use UEFI/EFI)
  • OEM Install - Force [Unattended Install] (autodetect MBR/EFI)
  • OEM Update - Will auto-update a previous default install or OEM install

These modes are intended for factory setup and will not work with devices that come with Windows unless you wipe all partitions except for EFI and leave a second OS partition with all the remaining space.

We have more on the way

We don’t want to spoil any of the surprises we have planned, so we will leave things here for this post. Just know that there will be a lot of contributions heading towards Bliss OS source, coming from the efforts of Bliss Co-Labs’ and the community in helping bring our project even further than we ever thought possible.

Thanks again and enjoy the builds!

- + \ No newline at end of file diff --git a/index.html b/index.html index b99fd4b..60ba093 100644 --- a/index.html +++ b/index.html @@ -13,19 +13,19 @@ - +
-

· 7 min read
Jon West
HMTheBoy154

alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ +

· 7 min read
Jon West
HMTheBoy154

alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

alt text

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ BlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6

Other updates

  • A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to @Kethen (again).
  • alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues.
  • sof-firmware from Intel is being included to support more audio hardware.
  • All builds are now using Mesa 23.3.3
  • Some fixes to the sensors HAL (thanks to @Kethen again)
  • Fixed an issue that desktop Nvidia GPUs with nouveau can’t be able to get into the GUI.
  • Support KeeTouch touchscreens.
  • Rotation quirks for Chuwi Ubook X 2023
  • Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS.
  • Users can now fix their audio issues after install by putting their hardware’s alsa state definitions in /data/vendor/alsa/<hardware>.state
  • Updated KernelSU to latest version.
  • Virtual Console is back, you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add androidboot.enable_console=1 to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering.
  • Some tweaks for BlissOS Go taken from GloDroid Project .
  • You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from LMODroid .
  • AutoFast JNI is now available on BlissOS 16.
  • BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu

· 6 min read
Jon West

alt text

Since the release of our stable Bliss OS 14.x & 15.x builds, we have had the chance to make a number of advancements on the OS in various areas. We will start the post with the updates coming from the value added contributions on the business side of things, then end with the updates being merged into the Bliss OS builds.

Bliss Bass - beta builds started already

alt_text

We have started to push some of the source for our Bliss Bass (Broad Apparatus Support System) builds that we use for customer focused builds based on Bliss OS, and the feedback from that has been pushing our development on the platform in a positive direction. These builds will be 100% ready for use in products, and will come with a number of added configuration options for features, UI/UX, updates, and more. We have released a few beta builds of the base FOSS variant of Bliss Bass for testing on Sourceforge. The initial flavors we will offer are:

  • Kiosk variant
  • Desktop variant
  • Tablet variant
  • Tablet Go - IOT/IIOT variant
  • More on its way

There will be a new website created for these builds, and they will still be free to download and test, although the initial test builds will come watermarked. This will ensure that we are able to produce these test builds for the public while still retaining our licensing rights for it.

We are still collecting valuable information from our customers and would love to hear what our users think of this approach. Please leave a comment and let us know your thoughts.

Bliss OS Updates

There are a few important changes that we are gearing up for on Bliss OS. First, on Bliss OS 14.x & 15.x, we will be shipping with Kernel 6.1, this includes our Surface builds. Second change will be for BlissOS 14.x, 15.x & 16.x (Generic/Surface), and that will be a switch to a new Audio HAL made by Intel’s Project Celadon

Switching to the new Audio HAL will be an important change for us, so we would like to ask everyone to help us to test these new HAL so that we can have feedback and improve it further. Once tested, we will update the builds to include the new audio HAL changes.

Please join our Discord or Telegram to gain access to the new test builds of BlissOS 15.8.8 with Kernel 6.1.36 and the new Audio HAL.

Go builds & Low RAM devices can now bypass some options in Settings

In BlissOS Go builds, there are some options that are being blocked by Android. Most notably the option to allow apps to draw on other apps. You will see this text when you are trying to grant the permission :

alt_text

With the latest update of BlissOS, we've included a switch in Blissify Settings to allow bypassing this restriction. So now you are able to use apps like Smart Dock or Taskbar just like the usual generic version. The new option will be available in all of the upcoming BlissOS releases including 14, 15 and 16.

A/B OTA Updates - rolling out soon

Our efforts on Bliss Co-Labs have been paying off and we have a number of features and options developed from there heading to our open-source Bliss OS builds soon. The recently merged changes for the Bliss Setup Wizard for Bliss OS 15.x is one of those.

The other will be coming in the form of OTA updates for Bliss OS. These updates will bring the following improvements to the system:

  • Separate A/B slots for all three images (system.img, initrd.img & kernel)
  • System Rollbacks - Native bootctrl behavior
  • Update server controlled by our own Shipper Stack

We have worked around a few issues with shipping sfs/erofs images and will keep the community posted on the progress. The early beta builds might not have all those fixes included just yet, so just be aware if you are trying to mount as read/write.

Grub updates to v2.06 - also rolling out soon

Now that we have the groundwork laid out for updating Grub with our A/B OTA updates, we decided it was best to update to the current version of Grub that Linux uses, and in doing so, we also solve an issue that 12th gen+ Intel CPU’s have had where the screen is black after selecting any boot option from Grub. This means that the most recent gen CPU’s will now be supported by both the kernel and the bootloader for Bliss OS.

This effort came from a few different contributors, so we have an initial solution we will likely release, and then split the other contributions into phases where we merge binary updates, libraries, modules, installer updates, and others separately in order to ensure stability as we move forward.

OEM Install mode options - also rolling out soon

Bliss OS builds (and Android-x86) have had some major issues with the auto-install mode that have been the source of many headaches and many long nights of reinstalling other operating systems in order to correct. So we took some time to update the current auto-install solution and give it a more proper name of OEM install, along with adding a few more options for unattended installation (Force):

  • OEM Install (same as old auto-install, will require some interaction)
  • OEM Install - Force MBR [Unattended Install] (if bios is set to use Legacy)
  • OEM Install - Force EFI [Unattended Install] (if bios is set to use UEFI/EFI)
  • OEM Install - Force [Unattended Install] (autodetect MBR/EFI)
  • OEM Update - Will auto-update a previous default install or OEM install

These modes are intended for factory setup and will not work with devices that come with Windows unless you wipe all partitions except for EFI and leave a second OS partition with all the remaining space.

We have more on the way

We don’t want to spoil any of the surprises we have planned, so we will leave things here for this post. Just know that there will be a lot of contributions heading towards Bliss OS source, coming from the efforts of Bliss Co-Labs’ and the community in helping bring our project even further than we ever thought possible.

Thanks again and enjoy the builds!

· 3 min read
HMTheBoy154

alt text

July is a busy month for us here in BlissLabs. With the release of Android 13 QPR3, we've decided that both BlissROMs and BlissOS this time will release the new updates on the same day which is pretty special for both of us.

You can check out all the changes BlissROMs made here for more info : https://blog.blissroms.org/2023-07-15-typhoon-16.8-updates-jul-2023/

BlissOS exclusive changes

Beside from QPR3 and the changes made by BlissROMs, BlissOS offer some exclusive changes too. There are 3 main things :

New About Tablet design

alt text

BlissROMs gave us the new About Phone/Tablet design, here we made a few modification to it. First, Processor name will show the actual CPU name of the device instead of getting the SoC name with prop ro.soc.model. Device name is a tablet instead of a phone and the screen to show the wallpaper is set to horizontal with 16:9 aspect ratio. Making this a nice tablet info screen for BlissOS.

Exclusive Launcher Features

To say this is an exclusive is a bit odd, because submitted the patches to Gerrit. But BlissROMs decided to put these in the next release (16.9) so we just gonna say that this is exclusive to BlissOS 16.8 :p.

First, the Split button is now properly modified based on the new Recents button layouts.

alt text

Not only that, you can also turn it off in Recents Settings

alt text

Next, by default memory info in Recents is on the top of the screen, we've provided an option to move it down again. We also calculated and change the margin of memory info when you are on Persistent Taskbar or Transient Taskbar so that meminfo will not be covered by taskbars.

alt text alt text

Finally, Developer Options is back ! You can find it under Misc Settings when Developer Options in Settings is enabled.

alt text

Shipping with Kernel 6.1

BlissOS 16.8 will be the first build to ship with Kernel 6.1. Currently I'm still using the same recipe, Google's Common Kernel android14-6.1-lts branch with xanmod patches and some fixes for Android-x86 but because this is Kernel 6.1, more hardware will be supported especially the Steam Deck with some drivers & fixes from Valve that they put on their SteamOS' kernel.

And that's it for this month with the new release of 16.8, we hope that you will enjoy it even though for BlissOS 16 it's still in Beta stage.

#StayBlissful #FeelTheWind🌪

· 15 min read
Jon West
HMTheBoy154

alt text

The last couple months have been pretty busy at Bliss. Since January/February, we’ve been able to get a lot of work done on many different fronts. With my return to Bliss, we’ve started a collaborative contract development and consulting firm named Bliss Co-Labs, and have been working on a few client projects. Without letting the open-source side of things skip a beat, we’ve also been busy making changes and working on quite a few new updates and projects. So we think it’s about time to at least announce a few of the changes we have in store, as well as a few announcements for new projects or major project updates.

Updates

Let’s start with the release updates first. HMTheBoy154 has been busy pushing out some truly amazing innovations for Bliss OS, bringing the platform to support many more devices, and expanding its configurable layers past the graphics stack, and into many others. He has this to say about what has been going on recently:

Ever since Jon joined Esper, I’ve decided to continue his work. If you join our Telegram group, you’ll notice that a lot has changed since the last releases like Bliss OS 14.3 or 15.1. In this post, let’s take a look at what’s new in these versions.

Bliss OS v14.10 Release

alt text

Compared to 14.3, the new Bliss OS 14.10 has improved a lot. Although there are some features that I have to remove for example the long iso name to explain what's inside the build or Gearlock (while it is a really good recovery solution for Android-x86, I still decided to remove it because it need to be rewritten), I've been putting a lot of changes into it, some of them were on my old ProjectSakura-x86 builds. Also, please remember that most of these are also available in Bliss OS 15.8 builds and more on that later.

Here are the new changes :

  • Taskbar apps like farmerbb's Taskbar or axel358's Smart Dock are being updated to the latest.
  • Kernel has been updated to 5.15.x, this is the same kernel I use on PS-x86 but now with more optimization & hardware support. Also mgLRU, eBPF, DMA-BUF Heap, etc are all being enabled.
  • ESDFS is being used to bind mount apps' data just like ChromeOS, this is to fix apps that can't be able to read data or obb on Bliss, causing it to crash.
  • Using Intel's Bluetooth HAL, with some changes from Android-x86 to support more Bluetooth cards than just Intel one.
  • You can now make a list like modprobe.conf at /data/vendor/modules.options or /data/vendor/modules.blocklist if you want to blacklist a module.
  • Bliss can now show the device information just like the old Bliss OS 11 or Android-x86.
  • virt_wifi is now disabled by default, you can still use it with VIRT_WIFI=1
  • If you are using a tablet or convertible laptops that have an accelerometer, our iio sensors can now be able to rotate the screen.
  • PGO optimization for art. This is a feature by Intel to enhance VM workload performance, you can read about it here.
  • AutoFast JNI, this is also another feature by Intel to improve performance on Android running in x86 hardware .
  • zram is enabled by default with zstd compression.
  • aptX & aptX HD Bluetooth codecs support using Android 13's encoders. Bliss is the first Android build on x86 hardware to get this publicly.
  • toybox is being upstreamed with additional tools such as eject or rfkill. Also, we've included usb.ids and pci.ids for lsusb & lspci so you can check the USB or PCI devices name.
  • If you want to mount all of your partitions into Bliss, add INTERNAL_MOUNT=1 into the cmdline.
  • If you want to try AOSP's experimental "PC Mode", add PC_MODE=1 into the cmdline and try.
  • If you want your Bliss OS build to be recognized as a Google Play Games for PC image, add HPE=1 into the cmdline and reset Play Store.
  • You can now force your mouse click as touch, this is to help fixing apps that only use touch input only.
  • Mouse acceleration can be disabled ,also scroll wheel too.
  • Night Light is now available.
  • BoringDroid is back.
  • For media, while using OMX.ffmpeg codecs as usual, I also provide Codec2 implementation of ffmpeg codecs, made by Micheal Goffioul. Alongside with that, new VAAPI drivers for newer Intel iGPU & other hardware is also being built to support hardware acceleration decoder. I also include a lot of parameters that you can use to get the best result from Bliss OS, you can find it at our Docs.
  • For graphics, our graphics stack is being improved significantly compared to the previous builds, not only that, like media, we provide a lot of options through parameters too. You can see some of our changes here like :
    • Vulkan is now being enabled by default. VULKAN=1 is dead, long live VULKAN=1.
    • Mesa is being updated to latest version (23.1) with LLVM16 for AMDGPUs.
    • Also in Mesa we've activated xmlconfig, with this you can create custom configuration for apps & games related to graphics like spoofing GPUs name & vendor. We will update more information in our Docs soon.
    • While we include a lot of Gralloc & HWC options and we pick the best one depending on what GPU Bliss is running. So if you don't want to play with any of this, you can just be sure that you are running the best one that is being tested by us & the community.
    • For minigbm (and all the different variations that we have), you can switch to Gralloc4 with GRALLOC4_MINIGBM=1 parameter.
    • You can force OpenGLES version with FORCE_GLES=<version> parameter.
    • For software rendering solutions, not only we are using Swiftshader, but also SwANGLE. A combination of ANGLE EGL driver & SwiftShader Vulkan made by Google. SwANGLE is already being used on Android 13 but we've backported it.

And for the first time, Bliss is using the new KernelSU for root solution. Not only that, Bliss OS is the first x86_64 Android build ever to integrate KernelSU into it.

alt text

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

Bliss OS v15.8 Release

alt text

Bliss OS 15.8 has a different starting point than Bliss OS 15.1. Firstly, Bliss OS 15.8 is based on Android 12L unlike 15.1 which uses Android 12. Second, Bliss OS 15.8 common tree (device/generic/common) is based on my 14.10 tree with a few patches instead of using 15.1 one. Which is why I said that most of the new features from 14.10 are also available on 15.8. All the changes you see in 14.10 are also in this version, but with Android 12L instead.

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

The return of Bliss OS Surface Builds

alt text

For Bliss OS, Surface Builds used to be a thing in Bliss OS 11 days with a few builds available. Now we’re happy to announce that we’re bringing back the build with a newer kernel (5.15) using patches from linux-surface and using the latest ipts/ithc kernel driver as well as iptsd daemon to support touchscreen.

*NOTE : Not every Microsoft Surface device has to install surface build to make it work, some can just use generic builds, please check our Documentation for more info.*

Releases

HMTheBoy154 has been working on a super secret project for Bliss, and we are happy to announce the initial beta release of Bliss OS v16.6 (Android 13) for x86_64v2 PC’s, laptops, tablets, etc. Check the release notes for that below.

Bliss OS v16 Beta Release

alt text

Yes, you heard that right. Today I'm happy to announce the first public beta build of Bliss OS 16. The development has already started since October 2022 and I've been working together with not only Android-x86 members & contributors, but also with BlissROMs members and we've made a lot of progress since then. We even work with the LibreMobileOS team to fix some issues like freeform.

Currently BlissOS 16 is on 16.7 to match with the version on BlissROMs. While it’s still on Beta stage, we can't wait to release our new images so you can experience them.

New Bliss OS Logo Announcement

With the Bliss OS 16 announcement, Designer XelXen (aka WildWaze) has also been working with us on a redesigned logo for this and future releases. Not only that, he also included some new wallpapers for us to match with this new design elements.

“The new logo of BlissOS depicts a human figure standing in between petals of lotus, representing the transparency and diversity of the operating system. The figure also holds a perfectly shaped lotus flower, which is the emblem of BlissLabs and perfection.”
Logo 1Logo 2
alt textalt text
Wallpaper 1Wallpaper 2
alt textalt text
Wallpaper 3Wallpaper 4
alt textalt text

Android-Generic Project Manager Release

We are excited to announce the release of Android-Generic Project Manager (AGPM), a tool that makes it easier to build and configure AOSP based projects. AGPM provides a number of features that can help you save time and effort, including:

  • Automatic repo init: AGPM can automatically initialize a new AOSP project or update an existing one.
  • Python virtualenv support: AGPM can wrap your project in a Python virtualenv, which allows you to install packages and run scripts without affecting the rest of your system (quite handy when you are using a shared server over ssh and do not have root access for installing packages).
  • Check Project Status: AGPM can check a project folders repos against the manifest, and it will build a list of any repos with uncommitted changes, or if the repos are not pushed yet.
  • Option to push changes: Depending on what Update Checking finds, you can push your updates to the repos found to be behind
  • Common Tools: Create New, Update, Delete, etc.

Screenshots:

alt text

(Main Menu window: Zenity mode)

alt text

(Check Project Status results: Zenity mode)

Compatibility:

AGPM is designed to be flexible and extensible, so you can add your own project configurations and features. Currently, we support the following projects:

  • AOSP
  • Bliss ROM
  • Lineage OS
  • Bliss OS

We have a planned features list a mile long, and we are always working to add support for more projects. If you have any feedback or suggestions, please feel free to open an issue on the AGPM GitHub repository.

We hope you find AGPM to be a useful tool for building and configuring AOSP based projects.

Android-Generic Project (v2023) Release

We are excited to announce the release of Android-Generic Project (v2023), a major update that brings many new features and improvements.

Key Features

  • Support for multiple targets: AG v2023 can now be used to build images for a variety of targets, including Android phones, tablets, Raspberry Pi, emulators, TVs, and PCs. As usual, we start things out with the PC target, and let that act as an example for the rest.
  • Target-based system: AG v2023 uses a new target-based system that makes it easier to build images for specific targets.
  • Target variants: AG v2023 now supports target variants, which allow you to build images with different configurations for different targets. This system is used to have separate base structures for targets. So for the PC builds (target), we will have the variants: Android-x86 base, Bliss OS base, Bliss OS Go, etc.
  • Conditions for menu items: AG v2023 allows you to use conditions to control the availability of menu items. This makes it possible to create more complex and flexible menus.
  • Addon templates: AG v2023 includes addon templates that you can use to create your own addons. Addons are a great way to extend the functionality of AG.
  • Public and private addons: AG v2023 supports both public and private addons. Public addons are available to everyone, while private addons are only available to a select group of users.

Updates

In addition to the new features listed above, AG v2023 also includes a number of updates and improvements. These include:

  • Updates to the easy-menu system for more dynamic menu options.
  • A new targets based system.
  • The ability to add target variants.
  • The ability to lock the process with conditions per option.
  • Updated api-32 support.
  • Added api-33 support.
  • Reworked manifest structure to include in targets.
  • Added addon template for contributors to use to create their own addons.
  • Added Targets template for contributors to use to create their own targets.
  • Reworked open/private addon structure and added new addons.

Generic/PC Addons

The following new addons have been added for generic/PC targets:

  • Configurable battery stats addon
  • Rotation/orientation configuration options through Grub
  • Expanded LMKD configuration addon
  • LMKD tuning options through Grub
  • Memory tuning options through Grub
  • Performance tuning options through Grub

Licensed Addons

The following new addons have been added for licensed targets:

  • Recents tuning addon
  • Addons for locking various features
  • Customizing new user functions addon
  • Configuring packages on boot (hide/disable/unhide/enable)
  • Addon for locking the ability for the user to change settings

Special Requests? contact us

We hope you enjoy these new features and improvements!

Bliss Broad Apparatus Support System (Bliss-Bass)

(Automated Vendor Customization Layer for Bliss OS / Bliss OS Go)

Bliss Broad Apparatus Support System (Bliss-Bass) is an automated vendor customization layer for Bliss OS / Bliss OS Go (and eventually BlissROM). It is a toolkit that can be used to help with rebranding, customizations, and app changes for Bliss OS based builds. The toolkit comes with a variety of functions, including:

  • An autopatch function that applies all required changes to the Bliss OS build.
  • The ability to define custom sets of changes to be applied before customization.
  • Integration with AOSP's build system, which allows a variety of tools to be accessed before the lunch process starts.
  • The ability to display a customization menu from the pre-lunch hook, using either dialog or zenity, depending on whether or not a GUI is detected.

The Bliss-Bass toolkit is designed to make it easier for users and companies to start off using Bliss for their products. By automating many of the tasks involved in rebranding and customization, Bliss-Bass can save time and energy, allowing users or engineers to focus on the creative parts of the process.

Here are some additional details about the autopatch function:

  • The autopatch function is available from the command line using ‘check_patchsets’ or through the menu.
  • The autopatch function can be used to apply a variety of changes to the Bliss OS build, including changes to the kernel, bootloader, system image, and vendor image.
  • The autopatch function can be used to define custom sets of changes to be applied. This can be useful for organizations that need to make specific changes to Bliss OS for their own products.

Just like some of our other toolkits, this project integrates itself into AOSP’s build system and allows a variety of tools to be accessed before the lunch process starts:

alt text

And when you trigger the customization menu to display from the pre-lunch hook, it can use ‘dialog’ if there is no display or GUI detected:

alt text

Or zenity, to display the menu options if it does detect a GUI:

alt text

Further development is being made to add even more options and tools to Bliss-Bass. The project is open source and available on GitHub at https://github.com/BlissRoms-x86/platform_vendor_branding.

Bliss OS Linux Hybrid Preview

(Bliss OS Go edition)

alt text

Read More in last weeks release post: Bliss OS Linux Hybrid Preview

New Collaborations

LibreMobileOS

alt text

We are excited to announce our collaboration with LibreMobileOS, a project that develops and promotes privacy-focused mobile operating systems. As part of this collaboration, we have been working with LibreMobileOS to develop LMODroid-x86, a version of their operating system that is designed to run on x86-based tablets and PCs.

LMODroid-x86 was created using Android-Generic Project v2023, a free and open-source prototyping toolkit used to create x86 based Android projects, and other targets. The operating system will be pre-installed with a variety of privacy-focused applications, including a web browser, desktop mode, digital wellbeing (coming soon), and file manager.

We believe that LMODroid-x86 will be a valuable addition to the LibreMobileOS ecosystem. The operating system will provide users with a privacy-focused alternative to the major mobile operating systems, and it will help to promote the use of open-source software. We would like to thank LibreMobileOS for their collaboration on this project. We are excited to work with them to develop LMODroid-x86 and to help make it available to users around the world.

We would also like to thank HMTheBoy154 for their contributions to this project. Their hard work and dedication has been essential to the success of the project.

We are confident that LMODroid-x86 will be a valuable resource for users who are looking for a privacy-focused and secure mobile operating system. We look forward to sharing more information about the project in the coming months.

· 2 min read
Jon West

This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware.

Features:

  • Based on Xubuntu 22.04.x LTS

  • Stripped of Snap and other Ubuntu apps/telemetry

  • Includes Ubuntu expanded hardware support drivers

  • QEMU based Bliss OS session

  • Bliss OS grub menu options (for running on bare-metal hardware)

  • Includes basic update and management scripts for Android side

  • Lots more, but we are just getting started…

Download the preview:

https://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU

Live Boot Info:

User: Live

Password: evolution

Step 1:

Live boot (boots to xfce4)

Step 2:

Run installer (last step shows pop-up to specify data.img size), Done.

Step 3:

Reboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)

Notes:

Autologin is enabled, will launch last loaded session choice from Login screen

· 2 min read
Jon West

alt text

[Announcement] Bliss OS Go (Preview Release)

Bliss OS Go is a new variation of Bliss OS that is designed to run on low-end devices. It is based on Android Go, which is a version of Android that is optimized for devices with limited resources. Bliss OS Go includes a number of features that are designed to improve performance, battery life and usability on low-end devices, such as:

  • A lower-spec config for recents
  • A lower-spec config for task management
  • Expanded configuration options
  • And much more

Bliss OS Go is currently in release for a number of low-end devices, including:

  • Intel Atom devices
  • Intel Celeron N/M devices
  • Intel Pentium devices
  • AMD APU/CPUs

If you have a low-end device and you are looking for a new operating system that will improve performance and battery life, then Bliss OS Go is a great option.

Here are some additional details about the features of Bliss OS Go:

  • Lower-spec configs for recents and task management: These configs reduce the amount of resources that are used by the recents and task management apps, which can improve performance and battery life.
  • Expanded LMKD configuration: LMKD is a Linux kernel module that can be used to improve performance and battery life by limiting the number of interrupts that are generated by hardware devices. The expanded LMKD configuration in Bliss OS Go makes it easier to tune LMKD for optimal performance and battery life.
  • Rotation/orientation configuration options through Grub: Rotation/orientation configuration options can also be accessed through Grub. This makes it easy to change the rotation and orientation of the Bliss OS Go display without having to reflash the image.

More Info

Warning, due to the low-spec nature of the devices we are targeting with these builds, we do not include native-bridge by default on Bliss OS Go builds.

Downloads can be found on Sourceforge: https://sourceforge.net/projects/blissos-dev/files/BlissOS-Go/FOSS/20230519/

Configuration documentation for some of the features found in Bliss OS Go can be found on our docs site: https://docs.blissos.org/configuration/configuration-through-command-line-parameters/

· 2 min read
Jon West

alt text

New Collaborations

[pilot] EIDU - Taifa ElimuTab

Bliss Co-Labs and EIDU, an organization that builds innovative solutions to digitize education in low and middle-income countries at scale, have partnered to bring an Android Go 12.1 variation of Bliss OS to the aging Windows tablets used by Kenya public primary schools. The pilot program aims to allow millions of devices a second-life through the use of Bliss OS, which is specifically tailored to the devices' hardware and capabilities.

Bliss OS is a lightweight operating system that is designed to run on x86 Windows & Linux devices. It is based on Android, but it has been optimized for performance and battery life. Bliss OS Go is a version of Bliss OS that is designed for lower-powered devices, such as the Intel Atom based Windows tablets that are used in Kenya.

The pilot program will test the feasibility of deploying Bliss OS Go on the Windows tablets. If the pilot is successful, it could lead to the deployment of Bliss OS Go on millions of devices, which would provide students in Kenya with access to a more reliable and affordable educational platform.

Here are some of the benefits of using Bliss OS Go on the Windows tablets:

  • Improved performance: Bliss OS Go is designed to run on low-powered devices, so it can provide a significant performance boost over Windows. This will make it easier for students to use the devices for learning.
  • Longer battery life: Bliss OS Go is also designed to conserve battery life, so students can use the devices for longer periods of time without having to worry about running out of power.
  • More affordable: Bliss OS Go is a free and open-source operating system, so it is more affordable than Windows. This will make it possible for schools to deploy Bliss OS Go on more devices, which will benefit more students.

We believe that Bliss OS Go has the potential to make a significant impact on education in Kenya. We are excited to partner with EIDU on this pilot program and we look forward to seeing the results.

· 3 min read
Jon West

As a business, the typical way to do things is to file for patents, and protect your product or idea, and your product team produces the development design and manages updating the product for its lifecycle. The downside to that is that only your team has the ability to spot its flaws, make it better, or see other avenues where it could be used. This is not the case with an open-source project lifecycle. The product you develop is open to the community to use, inspect and improve upon. This helps accelerate the development of the idea or product by allowing open-innovation to take place.

Dismissing the current arguments against open-source development

Can people take your code and use it for their own projects? The answer is yes, but this is not a bad thing at all. This is one of the things that empowers your idea by allowing you to see the improvements they made and how they made them, then adding those improvements into your code base.

Can people alter your code to include malicious code? This depends on how well you manage the pull requests for your code, as even the Linux Kernel has had some bad-actors try and slip in malicious code before, and it was caught by the community. So you just need to make sure you define a strict set of rules for your project maintainers to follow when it comes to merging pull-requests from the community into your code base.

Can you make money off Open-Source code? The answer to this is yes, and in many ways. It all comes down to how you design your project and the licensing you choose for it. As many open-source licenses do allow licensing, and support contracts, and many more options can be written into the standard licensing agreements.

How have we leveraged open-source for businesses?

As a consumer, you get to use the products of our work in open-source by testing our work (Bliss OS, Waydroid, Android-x86) on your laptop, tablet, desktop, server, etc. at no cost. As a business, our projects are limited in use, but can be licensed for inclusion into a project, and we offer development contracts to help businesses further develop their products, with our projects included. We have also created toolkits for businesses to use for free in the past, demonstrating the power of rapid-prototyping through the use of our services.

For other businesses, not used to working in open-source, there will always be hesitations. But that doesn't mean we can't make it work. We have had some restraints on projects in the past, and the solution for those proprietary constraints is typically to build a system that can handle allowing the end user to use it, while keeping all the private bits, private still. A perfect example of this is how Google Play, Widevine, libndk-translation, Houdini, and other private blobs are included in our projects. We have even gone one step further in this where allowed, and produced tools for the rest of the open-source community to use, that allows them to benefit from using the proprietary blobs, while keeping the businesses private intents intact.

It really all comes down to the mental attitude behind your innovation, and all in how you spin it. It's about time the market starts thinking on reasons why they should start going open-source, and not looking for all the reasons why they shouldn't.

- + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html index 93c0513..5aed93e 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/pilot-eidu-and-bliss-os-go/index.html b/pilot-eidu-and-bliss-os-go/index.html index 47b4c23..756338e 100644 --- a/pilot-eidu-and-bliss-os-go/index.html +++ b/pilot-eidu-and-bliss-os-go/index.html @@ -13,13 +13,13 @@ - +

[Pilot] EIDU and Bliss OS Go

· 2 min read
Jon West

alt text

New Collaborations

[pilot] EIDU - Taifa ElimuTab

Bliss Co-Labs and EIDU, an organization that builds innovative solutions to digitize education in low and middle-income countries at scale, have partnered to bring an Android Go 12.1 variation of Bliss OS to the aging Windows tablets used by Kenya public primary schools. The pilot program aims to allow millions of devices a second-life through the use of Bliss OS, which is specifically tailored to the devices' hardware and capabilities.

Bliss OS is a lightweight operating system that is designed to run on x86 Windows & Linux devices. It is based on Android, but it has been optimized for performance and battery life. Bliss OS Go is a version of Bliss OS that is designed for lower-powered devices, such as the Intel Atom based Windows tablets that are used in Kenya.

The pilot program will test the feasibility of deploying Bliss OS Go on the Windows tablets. If the pilot is successful, it could lead to the deployment of Bliss OS Go on millions of devices, which would provide students in Kenya with access to a more reliable and affordable educational platform.

Here are some of the benefits of using Bliss OS Go on the Windows tablets:

  • Improved performance: Bliss OS Go is designed to run on low-powered devices, so it can provide a significant performance boost over Windows. This will make it easier for students to use the devices for learning.
  • Longer battery life: Bliss OS Go is also designed to conserve battery life, so students can use the devices for longer periods of time without having to worry about running out of power.
  • More affordable: Bliss OS Go is a free and open-source operating system, so it is more affordable than Windows. This will make it possible for schools to deploy Bliss OS Go on more devices, which will benefit more students.

We believe that Bliss OS Go has the potential to make a significant impact on education in Kenya. We are excited to partner with EIDU on this pilot program and we look forward to seeing the results.

- + \ No newline at end of file diff --git a/rss.xml b/rss.xml index 96b1f6d..68bfc2d 100644 --- a/rss.xml +++ b/rss.xml @@ -14,7 +14,7 @@ https://blog.blissos.org/asob-q3-2023-2024 Wed, 17 Jan 2024 00:00:00 GMT - alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ + alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

alt text

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ BlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6

Other updates

  • A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to @Kethen (again).
  • alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues.
  • sof-firmware from Intel is being included to support more audio hardware.
  • All builds are now using Mesa 23.3.3
  • Some fixes to the sensors HAL (thanks to @Kethen again)
  • Fixed an issue that desktop Nvidia GPUs with nouveau can’t be able to get into the GUI.
  • Support KeeTouch touchscreens.
  • Rotation quirks for Chuwi Ubook X 2023
  • Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS.
  • Users can now fix their audio issues after install by putting their hardware’s alsa state definitions in /data/vendor/alsa/<hardware>.state
  • Updated KernelSU to latest version.
  • Virtual Console is back, you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add androidboot.enable_console=1 to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering.
  • Some tweaks for BlissOS Go taken from GloDroid Project .
  • You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from LMODroid .
  • AutoFast JNI is now available on BlissOS 16.
  • BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu
]]>
blissos android-generic diff --git a/tags/android-generic/index.html b/tags/android-generic/index.html index 4afc01e..c9bc183 100644 --- a/tags/android-generic/index.html +++ b/tags/android-generic/index.html @@ -13,18 +13,18 @@ - +
-

6 posts tagged with "android-generic"

View All Tags

· 7 min read
Jon West
HMTheBoy154

alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ +

6 posts tagged with "android-generic"

View All Tags

· 7 min read
Jon West
HMTheBoy154

alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

alt text

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ BlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6

Other updates

  • A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to @Kethen (again).
  • alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues.
  • sof-firmware from Intel is being included to support more audio hardware.
  • All builds are now using Mesa 23.3.3
  • Some fixes to the sensors HAL (thanks to @Kethen again)
  • Fixed an issue that desktop Nvidia GPUs with nouveau can’t be able to get into the GUI.
  • Support KeeTouch touchscreens.
  • Rotation quirks for Chuwi Ubook X 2023
  • Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS.
  • Users can now fix their audio issues after install by putting their hardware’s alsa state definitions in /data/vendor/alsa/<hardware>.state
  • Updated KernelSU to latest version.
  • Virtual Console is back, you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add androidboot.enable_console=1 to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering.
  • Some tweaks for BlissOS Go taken from GloDroid Project .
  • You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from LMODroid .
  • AutoFast JNI is now available on BlissOS 16.
  • BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu

· 15 min read
Jon West
HMTheBoy154

alt text

The last couple months have been pretty busy at Bliss. Since January/February, we’ve been able to get a lot of work done on many different fronts. With my return to Bliss, we’ve started a collaborative contract development and consulting firm named Bliss Co-Labs, and have been working on a few client projects. Without letting the open-source side of things skip a beat, we’ve also been busy making changes and working on quite a few new updates and projects. So we think it’s about time to at least announce a few of the changes we have in store, as well as a few announcements for new projects or major project updates.

Updates

Let’s start with the release updates first. HMTheBoy154 has been busy pushing out some truly amazing innovations for Bliss OS, bringing the platform to support many more devices, and expanding its configurable layers past the graphics stack, and into many others. He has this to say about what has been going on recently:

Ever since Jon joined Esper, I’ve decided to continue his work. If you join our Telegram group, you’ll notice that a lot has changed since the last releases like Bliss OS 14.3 or 15.1. In this post, let’s take a look at what’s new in these versions.

Bliss OS v14.10 Release

alt text

Compared to 14.3, the new Bliss OS 14.10 has improved a lot. Although there are some features that I have to remove for example the long iso name to explain what's inside the build or Gearlock (while it is a really good recovery solution for Android-x86, I still decided to remove it because it need to be rewritten), I've been putting a lot of changes into it, some of them were on my old ProjectSakura-x86 builds. Also, please remember that most of these are also available in Bliss OS 15.8 builds and more on that later.

Here are the new changes :

  • Taskbar apps like farmerbb's Taskbar or axel358's Smart Dock are being updated to the latest.
  • Kernel has been updated to 5.15.x, this is the same kernel I use on PS-x86 but now with more optimization & hardware support. Also mgLRU, eBPF, DMA-BUF Heap, etc are all being enabled.
  • ESDFS is being used to bind mount apps' data just like ChromeOS, this is to fix apps that can't be able to read data or obb on Bliss, causing it to crash.
  • Using Intel's Bluetooth HAL, with some changes from Android-x86 to support more Bluetooth cards than just Intel one.
  • You can now make a list like modprobe.conf at /data/vendor/modules.options or /data/vendor/modules.blocklist if you want to blacklist a module.
  • Bliss can now show the device information just like the old Bliss OS 11 or Android-x86.
  • virt_wifi is now disabled by default, you can still use it with VIRT_WIFI=1
  • If you are using a tablet or convertible laptops that have an accelerometer, our iio sensors can now be able to rotate the screen.
  • PGO optimization for art. This is a feature by Intel to enhance VM workload performance, you can read about it here.
  • AutoFast JNI, this is also another feature by Intel to improve performance on Android running in x86 hardware .
  • zram is enabled by default with zstd compression.
  • aptX & aptX HD Bluetooth codecs support using Android 13's encoders. Bliss is the first Android build on x86 hardware to get this publicly.
  • toybox is being upstreamed with additional tools such as eject or rfkill. Also, we've included usb.ids and pci.ids for lsusb & lspci so you can check the USB or PCI devices name.
  • If you want to mount all of your partitions into Bliss, add INTERNAL_MOUNT=1 into the cmdline.
  • If you want to try AOSP's experimental "PC Mode", add PC_MODE=1 into the cmdline and try.
  • If you want your Bliss OS build to be recognized as a Google Play Games for PC image, add HPE=1 into the cmdline and reset Play Store.
  • You can now force your mouse click as touch, this is to help fixing apps that only use touch input only.
  • Mouse acceleration can be disabled ,also scroll wheel too.
  • Night Light is now available.
  • BoringDroid is back.
  • For media, while using OMX.ffmpeg codecs as usual, I also provide Codec2 implementation of ffmpeg codecs, made by Micheal Goffioul. Alongside with that, new VAAPI drivers for newer Intel iGPU & other hardware is also being built to support hardware acceleration decoder. I also include a lot of parameters that you can use to get the best result from Bliss OS, you can find it at our Docs.
  • For graphics, our graphics stack is being improved significantly compared to the previous builds, not only that, like media, we provide a lot of options through parameters too. You can see some of our changes here like :
    • Vulkan is now being enabled by default. VULKAN=1 is dead, long live VULKAN=1.
    • Mesa is being updated to latest version (23.1) with LLVM16 for AMDGPUs.
    • Also in Mesa we've activated xmlconfig, with this you can create custom configuration for apps & games related to graphics like spoofing GPUs name & vendor. We will update more information in our Docs soon.
    • While we include a lot of Gralloc & HWC options and we pick the best one depending on what GPU Bliss is running. So if you don't want to play with any of this, you can just be sure that you are running the best one that is being tested by us & the community.
    • For minigbm (and all the different variations that we have), you can switch to Gralloc4 with GRALLOC4_MINIGBM=1 parameter.
    • You can force OpenGLES version with FORCE_GLES=<version> parameter.
    • For software rendering solutions, not only we are using Swiftshader, but also SwANGLE. A combination of ANGLE EGL driver & SwiftShader Vulkan made by Google. SwANGLE is already being used on Android 13 but we've backported it.

And for the first time, Bliss is using the new KernelSU for root solution. Not only that, Bliss OS is the first x86_64 Android build ever to integrate KernelSU into it.

alt text

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

Bliss OS v15.8 Release

alt text

Bliss OS 15.8 has a different starting point than Bliss OS 15.1. Firstly, Bliss OS 15.8 is based on Android 12L unlike 15.1 which uses Android 12. Second, Bliss OS 15.8 common tree (device/generic/common) is based on my 14.10 tree with a few patches instead of using 15.1 one. Which is why I said that most of the new features from 14.10 are also available on 15.8. All the changes you see in 14.10 are also in this version, but with Android 12L instead.

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

The return of Bliss OS Surface Builds

alt text

For Bliss OS, Surface Builds used to be a thing in Bliss OS 11 days with a few builds available. Now we’re happy to announce that we’re bringing back the build with a newer kernel (5.15) using patches from linux-surface and using the latest ipts/ithc kernel driver as well as iptsd daemon to support touchscreen.

*NOTE : Not every Microsoft Surface device has to install surface build to make it work, some can just use generic builds, please check our Documentation for more info.*

Releases

HMTheBoy154 has been working on a super secret project for Bliss, and we are happy to announce the initial beta release of Bliss OS v16.6 (Android 13) for x86_64v2 PC’s, laptops, tablets, etc. Check the release notes for that below.

Bliss OS v16 Beta Release

alt text

Yes, you heard that right. Today I'm happy to announce the first public beta build of Bliss OS 16. The development has already started since October 2022 and I've been working together with not only Android-x86 members & contributors, but also with BlissROMs members and we've made a lot of progress since then. We even work with the LibreMobileOS team to fix some issues like freeform.

Currently BlissOS 16 is on 16.7 to match with the version on BlissROMs. While it’s still on Beta stage, we can't wait to release our new images so you can experience them.

New Bliss OS Logo Announcement

With the Bliss OS 16 announcement, Designer XelXen (aka WildWaze) has also been working with us on a redesigned logo for this and future releases. Not only that, he also included some new wallpapers for us to match with this new design elements.

“The new logo of BlissOS depicts a human figure standing in between petals of lotus, representing the transparency and diversity of the operating system. The figure also holds a perfectly shaped lotus flower, which is the emblem of BlissLabs and perfection.”
Logo 1Logo 2
alt textalt text
Wallpaper 1Wallpaper 2
alt textalt text
Wallpaper 3Wallpaper 4
alt textalt text

Android-Generic Project Manager Release

We are excited to announce the release of Android-Generic Project Manager (AGPM), a tool that makes it easier to build and configure AOSP based projects. AGPM provides a number of features that can help you save time and effort, including:

  • Automatic repo init: AGPM can automatically initialize a new AOSP project or update an existing one.
  • Python virtualenv support: AGPM can wrap your project in a Python virtualenv, which allows you to install packages and run scripts without affecting the rest of your system (quite handy when you are using a shared server over ssh and do not have root access for installing packages).
  • Check Project Status: AGPM can check a project folders repos against the manifest, and it will build a list of any repos with uncommitted changes, or if the repos are not pushed yet.
  • Option to push changes: Depending on what Update Checking finds, you can push your updates to the repos found to be behind
  • Common Tools: Create New, Update, Delete, etc.

Screenshots:

alt text

(Main Menu window: Zenity mode)

alt text

(Check Project Status results: Zenity mode)

Compatibility:

AGPM is designed to be flexible and extensible, so you can add your own project configurations and features. Currently, we support the following projects:

  • AOSP
  • Bliss ROM
  • Lineage OS
  • Bliss OS

We have a planned features list a mile long, and we are always working to add support for more projects. If you have any feedback or suggestions, please feel free to open an issue on the AGPM GitHub repository.

We hope you find AGPM to be a useful tool for building and configuring AOSP based projects.

Android-Generic Project (v2023) Release

We are excited to announce the release of Android-Generic Project (v2023), a major update that brings many new features and improvements.

Key Features

  • Support for multiple targets: AG v2023 can now be used to build images for a variety of targets, including Android phones, tablets, Raspberry Pi, emulators, TVs, and PCs. As usual, we start things out with the PC target, and let that act as an example for the rest.
  • Target-based system: AG v2023 uses a new target-based system that makes it easier to build images for specific targets.
  • Target variants: AG v2023 now supports target variants, which allow you to build images with different configurations for different targets. This system is used to have separate base structures for targets. So for the PC builds (target), we will have the variants: Android-x86 base, Bliss OS base, Bliss OS Go, etc.
  • Conditions for menu items: AG v2023 allows you to use conditions to control the availability of menu items. This makes it possible to create more complex and flexible menus.
  • Addon templates: AG v2023 includes addon templates that you can use to create your own addons. Addons are a great way to extend the functionality of AG.
  • Public and private addons: AG v2023 supports both public and private addons. Public addons are available to everyone, while private addons are only available to a select group of users.

Updates

In addition to the new features listed above, AG v2023 also includes a number of updates and improvements. These include:

  • Updates to the easy-menu system for more dynamic menu options.
  • A new targets based system.
  • The ability to add target variants.
  • The ability to lock the process with conditions per option.
  • Updated api-32 support.
  • Added api-33 support.
  • Reworked manifest structure to include in targets.
  • Added addon template for contributors to use to create their own addons.
  • Added Targets template for contributors to use to create their own targets.
  • Reworked open/private addon structure and added new addons.

Generic/PC Addons

The following new addons have been added for generic/PC targets:

  • Configurable battery stats addon
  • Rotation/orientation configuration options through Grub
  • Expanded LMKD configuration addon
  • LMKD tuning options through Grub
  • Memory tuning options through Grub
  • Performance tuning options through Grub

Licensed Addons

The following new addons have been added for licensed targets:

  • Recents tuning addon
  • Addons for locking various features
  • Customizing new user functions addon
  • Configuring packages on boot (hide/disable/unhide/enable)
  • Addon for locking the ability for the user to change settings

Special Requests? contact us

We hope you enjoy these new features and improvements!

Bliss Broad Apparatus Support System (Bliss-Bass)

(Automated Vendor Customization Layer for Bliss OS / Bliss OS Go)

Bliss Broad Apparatus Support System (Bliss-Bass) is an automated vendor customization layer for Bliss OS / Bliss OS Go (and eventually BlissROM). It is a toolkit that can be used to help with rebranding, customizations, and app changes for Bliss OS based builds. The toolkit comes with a variety of functions, including:

  • An autopatch function that applies all required changes to the Bliss OS build.
  • The ability to define custom sets of changes to be applied before customization.
  • Integration with AOSP's build system, which allows a variety of tools to be accessed before the lunch process starts.
  • The ability to display a customization menu from the pre-lunch hook, using either dialog or zenity, depending on whether or not a GUI is detected.

The Bliss-Bass toolkit is designed to make it easier for users and companies to start off using Bliss for their products. By automating many of the tasks involved in rebranding and customization, Bliss-Bass can save time and energy, allowing users or engineers to focus on the creative parts of the process.

Here are some additional details about the autopatch function:

  • The autopatch function is available from the command line using ‘check_patchsets’ or through the menu.
  • The autopatch function can be used to apply a variety of changes to the Bliss OS build, including changes to the kernel, bootloader, system image, and vendor image.
  • The autopatch function can be used to define custom sets of changes to be applied. This can be useful for organizations that need to make specific changes to Bliss OS for their own products.

Just like some of our other toolkits, this project integrates itself into AOSP’s build system and allows a variety of tools to be accessed before the lunch process starts:

alt text

And when you trigger the customization menu to display from the pre-lunch hook, it can use ‘dialog’ if there is no display or GUI detected:

alt text

Or zenity, to display the menu options if it does detect a GUI:

alt text

Further development is being made to add even more options and tools to Bliss-Bass. The project is open source and available on GitHub at https://github.com/BlissRoms-x86/platform_vendor_branding.

Bliss OS Linux Hybrid Preview

(Bliss OS Go edition)

alt text

Read More in last weeks release post: Bliss OS Linux Hybrid Preview

New Collaborations

LibreMobileOS

alt text

We are excited to announce our collaboration with LibreMobileOS, a project that develops and promotes privacy-focused mobile operating systems. As part of this collaboration, we have been working with LibreMobileOS to develop LMODroid-x86, a version of their operating system that is designed to run on x86-based tablets and PCs.

LMODroid-x86 was created using Android-Generic Project v2023, a free and open-source prototyping toolkit used to create x86 based Android projects, and other targets. The operating system will be pre-installed with a variety of privacy-focused applications, including a web browser, desktop mode, digital wellbeing (coming soon), and file manager.

We believe that LMODroid-x86 will be a valuable addition to the LibreMobileOS ecosystem. The operating system will provide users with a privacy-focused alternative to the major mobile operating systems, and it will help to promote the use of open-source software. We would like to thank LibreMobileOS for their collaboration on this project. We are excited to work with them to develop LMODroid-x86 and to help make it available to users around the world.

We would also like to thank HMTheBoy154 for their contributions to this project. Their hard work and dedication has been essential to the success of the project.

We are confident that LMODroid-x86 will be a valuable resource for users who are looking for a privacy-focused and secure mobile operating system. We look forward to sharing more information about the project in the coming months.

· 2 min read
Jon West

This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware.

Features:

  • Based on Xubuntu 22.04.x LTS

  • Stripped of Snap and other Ubuntu apps/telemetry

  • Includes Ubuntu expanded hardware support drivers

  • QEMU based Bliss OS session

  • Bliss OS grub menu options (for running on bare-metal hardware)

  • Includes basic update and management scripts for Android side

  • Lots more, but we are just getting started…

Download the preview:

https://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU

Live Boot Info:

User: Live

Password: evolution

Step 1:

Live boot (boots to xfce4)

Step 2:

Run installer (last step shows pop-up to specify data.img size), Done.

Step 3:

Reboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)

Notes:

Autologin is enabled, will launch last loaded session choice from Login screen

· 2 min read
Jon West

alt text

[Announcement] Bliss OS Go (Preview Release)

Bliss OS Go is a new variation of Bliss OS that is designed to run on low-end devices. It is based on Android Go, which is a version of Android that is optimized for devices with limited resources. Bliss OS Go includes a number of features that are designed to improve performance, battery life and usability on low-end devices, such as:

  • A lower-spec config for recents
  • A lower-spec config for task management
  • Expanded configuration options
  • And much more

Bliss OS Go is currently in release for a number of low-end devices, including:

  • Intel Atom devices
  • Intel Celeron N/M devices
  • Intel Pentium devices
  • AMD APU/CPUs

If you have a low-end device and you are looking for a new operating system that will improve performance and battery life, then Bliss OS Go is a great option.

Here are some additional details about the features of Bliss OS Go:

  • Lower-spec configs for recents and task management: These configs reduce the amount of resources that are used by the recents and task management apps, which can improve performance and battery life.
  • Expanded LMKD configuration: LMKD is a Linux kernel module that can be used to improve performance and battery life by limiting the number of interrupts that are generated by hardware devices. The expanded LMKD configuration in Bliss OS Go makes it easier to tune LMKD for optimal performance and battery life.
  • Rotation/orientation configuration options through Grub: Rotation/orientation configuration options can also be accessed through Grub. This makes it easy to change the rotation and orientation of the Bliss OS Go display without having to reflash the image.

More Info

Warning, due to the low-spec nature of the devices we are targeting with these builds, we do not include native-bridge by default on Bliss OS Go builds.

Downloads can be found on Sourceforge: https://sourceforge.net/projects/blissos-dev/files/BlissOS-Go/FOSS/20230519/

Configuration documentation for some of the features found in Bliss OS Go can be found on our docs site: https://docs.blissos.org/configuration/configuration-through-command-line-parameters/

· 2 min read
Jon West

alt text

New Collaborations

[pilot] EIDU - Taifa ElimuTab

Bliss Co-Labs and EIDU, an organization that builds innovative solutions to digitize education in low and middle-income countries at scale, have partnered to bring an Android Go 12.1 variation of Bliss OS to the aging Windows tablets used by Kenya public primary schools. The pilot program aims to allow millions of devices a second-life through the use of Bliss OS, which is specifically tailored to the devices' hardware and capabilities.

Bliss OS is a lightweight operating system that is designed to run on x86 Windows & Linux devices. It is based on Android, but it has been optimized for performance and battery life. Bliss OS Go is a version of Bliss OS that is designed for lower-powered devices, such as the Intel Atom based Windows tablets that are used in Kenya.

The pilot program will test the feasibility of deploying Bliss OS Go on the Windows tablets. If the pilot is successful, it could lead to the deployment of Bliss OS Go on millions of devices, which would provide students in Kenya with access to a more reliable and affordable educational platform.

Here are some of the benefits of using Bliss OS Go on the Windows tablets:

  • Improved performance: Bliss OS Go is designed to run on low-powered devices, so it can provide a significant performance boost over Windows. This will make it easier for students to use the devices for learning.
  • Longer battery life: Bliss OS Go is also designed to conserve battery life, so students can use the devices for longer periods of time without having to worry about running out of power.
  • More affordable: Bliss OS Go is a free and open-source operating system, so it is more affordable than Windows. This will make it possible for schools to deploy Bliss OS Go on more devices, which will benefit more students.

We believe that Bliss OS Go has the potential to make a significant impact on education in Kenya. We are excited to partner with EIDU on this pilot program and we look forward to seeing the results.

· 3 min read
Jon West

As a business, the typical way to do things is to file for patents, and protect your product or idea, and your product team produces the development design and manages updating the product for its lifecycle. The downside to that is that only your team has the ability to spot its flaws, make it better, or see other avenues where it could be used. This is not the case with an open-source project lifecycle. The product you develop is open to the community to use, inspect and improve upon. This helps accelerate the development of the idea or product by allowing open-innovation to take place.

Dismissing the current arguments against open-source development

Can people take your code and use it for their own projects? The answer is yes, but this is not a bad thing at all. This is one of the things that empowers your idea by allowing you to see the improvements they made and how they made them, then adding those improvements into your code base.

Can people alter your code to include malicious code? This depends on how well you manage the pull requests for your code, as even the Linux Kernel has had some bad-actors try and slip in malicious code before, and it was caught by the community. So you just need to make sure you define a strict set of rules for your project maintainers to follow when it comes to merging pull-requests from the community into your code base.

Can you make money off Open-Source code? The answer to this is yes, and in many ways. It all comes down to how you design your project and the licensing you choose for it. As many open-source licenses do allow licensing, and support contracts, and many more options can be written into the standard licensing agreements.

How have we leveraged open-source for businesses?

As a consumer, you get to use the products of our work in open-source by testing our work (Bliss OS, Waydroid, Android-x86) on your laptop, tablet, desktop, server, etc. at no cost. As a business, our projects are limited in use, but can be licensed for inclusion into a project, and we offer development contracts to help businesses further develop their products, with our projects included. We have also created toolkits for businesses to use for free in the past, demonstrating the power of rapid-prototyping through the use of our services.

For other businesses, not used to working in open-source, there will always be hesitations. But that doesn't mean we can't make it work. We have had some restraints on projects in the past, and the solution for those proprietary constraints is typically to build a system that can handle allowing the end user to use it, while keeping all the private bits, private still. A perfect example of this is how Google Play, Widevine, libndk-translation, Houdini, and other private blobs are included in our projects. We have even gone one step further in this where allowed, and produced tools for the rest of the open-source community to use, that allows them to benefit from using the proprietary blobs, while keeping the businesses private intents intact.

It really all comes down to the mental attitude behind your innovation, and all in how you spin it. It's about time the market starts thinking on reasons why they should start going open-source, and not looking for all the reasons why they shouldn't.

- + \ No newline at end of file diff --git a/tags/android-go/index.html b/tags/android-go/index.html index 52b3c68..27408ea 100644 --- a/tags/android-go/index.html +++ b/tags/android-go/index.html @@ -13,14 +13,14 @@ - +

2 posts tagged with "android-go"

View All Tags

· 2 min read
Jon West

This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware.

Features:

  • Based on Xubuntu 22.04.x LTS

  • Stripped of Snap and other Ubuntu apps/telemetry

  • Includes Ubuntu expanded hardware support drivers

  • QEMU based Bliss OS session

  • Bliss OS grub menu options (for running on bare-metal hardware)

  • Includes basic update and management scripts for Android side

  • Lots more, but we are just getting started…

Download the preview:

https://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU

Live Boot Info:

User: Live

Password: evolution

Step 1:

Live boot (boots to xfce4)

Step 2:

Run installer (last step shows pop-up to specify data.img size), Done.

Step 3:

Reboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)

Notes:

Autologin is enabled, will launch last loaded session choice from Login screen

· 2 min read
Jon West

alt text

[Announcement] Bliss OS Go (Preview Release)

Bliss OS Go is a new variation of Bliss OS that is designed to run on low-end devices. It is based on Android Go, which is a version of Android that is optimized for devices with limited resources. Bliss OS Go includes a number of features that are designed to improve performance, battery life and usability on low-end devices, such as:

  • A lower-spec config for recents
  • A lower-spec config for task management
  • Expanded configuration options
  • And much more

Bliss OS Go is currently in release for a number of low-end devices, including:

  • Intel Atom devices
  • Intel Celeron N/M devices
  • Intel Pentium devices
  • AMD APU/CPUs

If you have a low-end device and you are looking for a new operating system that will improve performance and battery life, then Bliss OS Go is a great option.

Here are some additional details about the features of Bliss OS Go:

  • Lower-spec configs for recents and task management: These configs reduce the amount of resources that are used by the recents and task management apps, which can improve performance and battery life.
  • Expanded LMKD configuration: LMKD is a Linux kernel module that can be used to improve performance and battery life by limiting the number of interrupts that are generated by hardware devices. The expanded LMKD configuration in Bliss OS Go makes it easier to tune LMKD for optimal performance and battery life.
  • Rotation/orientation configuration options through Grub: Rotation/orientation configuration options can also be accessed through Grub. This makes it easy to change the rotation and orientation of the Bliss OS Go display without having to reflash the image.

More Info

Warning, due to the low-spec nature of the devices we are targeting with these builds, we do not include native-bridge by default on Bliss OS Go builds.

Downloads can be found on Sourceforge: https://sourceforge.net/projects/blissos-dev/files/BlissOS-Go/FOSS/20230519/

Configuration documentation for some of the features found in Bliss OS Go can be found on our docs site: https://docs.blissos.org/configuration/configuration-through-command-line-parameters/

- + \ No newline at end of file diff --git a/tags/android-linux/index.html b/tags/android-linux/index.html index 1bdf3c2..12b36fe 100644 --- a/tags/android-linux/index.html +++ b/tags/android-linux/index.html @@ -13,13 +13,13 @@ - +

One post tagged with "android-linux"

View All Tags

· 2 min read
Jon West

This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware.

Features:

  • Based on Xubuntu 22.04.x LTS

  • Stripped of Snap and other Ubuntu apps/telemetry

  • Includes Ubuntu expanded hardware support drivers

  • QEMU based Bliss OS session

  • Bliss OS grub menu options (for running on bare-metal hardware)

  • Includes basic update and management scripts for Android side

  • Lots more, but we are just getting started…

Download the preview:

https://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU

Live Boot Info:

User: Live

Password: evolution

Step 1:

Live boot (boots to xfce4)

Step 2:

Run installer (last step shows pop-up to specify data.img size), Done.

Step 3:

Reboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)

Notes:

Autologin is enabled, will launch last loaded session choice from Login screen

- + \ No newline at end of file diff --git a/tags/android/index.html b/tags/android/index.html index b1db502..3c021eb 100644 --- a/tags/android/index.html +++ b/tags/android/index.html @@ -13,13 +13,13 @@ - +

One post tagged with "android"

View All Tags

· 2 min read
Jon West

This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware.

Features:

  • Based on Xubuntu 22.04.x LTS

  • Stripped of Snap and other Ubuntu apps/telemetry

  • Includes Ubuntu expanded hardware support drivers

  • QEMU based Bliss OS session

  • Bliss OS grub menu options (for running on bare-metal hardware)

  • Includes basic update and management scripts for Android side

  • Lots more, but we are just getting started…

Download the preview:

https://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU

Live Boot Info:

User: Live

Password: evolution

Step 1:

Live boot (boots to xfce4)

Step 2:

Run installer (last step shows pop-up to specify data.img size), Done.

Step 3:

Reboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)

Notes:

Autologin is enabled, will launch last loaded session choice from Login screen

- + \ No newline at end of file diff --git a/tags/bliss-x-86/index.html b/tags/bliss-x-86/index.html index a95305f..9c6f7b9 100644 --- a/tags/bliss-x-86/index.html +++ b/tags/bliss-x-86/index.html @@ -13,19 +13,19 @@ - +
-

8 posts tagged with "bliss-x86"

View All Tags

· 7 min read
Jon West
HMTheBoy154

alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ +

8 posts tagged with "bliss-x86"

View All Tags

· 7 min read
Jon West
HMTheBoy154

alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

alt text

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ BlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6

Other updates

  • A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to @Kethen (again).
  • alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues.
  • sof-firmware from Intel is being included to support more audio hardware.
  • All builds are now using Mesa 23.3.3
  • Some fixes to the sensors HAL (thanks to @Kethen again)
  • Fixed an issue that desktop Nvidia GPUs with nouveau can’t be able to get into the GUI.
  • Support KeeTouch touchscreens.
  • Rotation quirks for Chuwi Ubook X 2023
  • Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS.
  • Users can now fix their audio issues after install by putting their hardware’s alsa state definitions in /data/vendor/alsa/<hardware>.state
  • Updated KernelSU to latest version.
  • Virtual Console is back, you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add androidboot.enable_console=1 to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering.
  • Some tweaks for BlissOS Go taken from GloDroid Project .
  • You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from LMODroid .
  • AutoFast JNI is now available on BlissOS 16.
  • BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu

· 6 min read
Jon West

alt text

Since the release of our stable Bliss OS 14.x & 15.x builds, we have had the chance to make a number of advancements on the OS in various areas. We will start the post with the updates coming from the value added contributions on the business side of things, then end with the updates being merged into the Bliss OS builds.

Bliss Bass - beta builds started already

alt_text

We have started to push some of the source for our Bliss Bass (Broad Apparatus Support System) builds that we use for customer focused builds based on Bliss OS, and the feedback from that has been pushing our development on the platform in a positive direction. These builds will be 100% ready for use in products, and will come with a number of added configuration options for features, UI/UX, updates, and more. We have released a few beta builds of the base FOSS variant of Bliss Bass for testing on Sourceforge. The initial flavors we will offer are:

  • Kiosk variant
  • Desktop variant
  • Tablet variant
  • Tablet Go - IOT/IIOT variant
  • More on its way

There will be a new website created for these builds, and they will still be free to download and test, although the initial test builds will come watermarked. This will ensure that we are able to produce these test builds for the public while still retaining our licensing rights for it.

We are still collecting valuable information from our customers and would love to hear what our users think of this approach. Please leave a comment and let us know your thoughts.

Bliss OS Updates

There are a few important changes that we are gearing up for on Bliss OS. First, on Bliss OS 14.x & 15.x, we will be shipping with Kernel 6.1, this includes our Surface builds. Second change will be for BlissOS 14.x, 15.x & 16.x (Generic/Surface), and that will be a switch to a new Audio HAL made by Intel’s Project Celadon

Switching to the new Audio HAL will be an important change for us, so we would like to ask everyone to help us to test these new HAL so that we can have feedback and improve it further. Once tested, we will update the builds to include the new audio HAL changes.

Please join our Discord or Telegram to gain access to the new test builds of BlissOS 15.8.8 with Kernel 6.1.36 and the new Audio HAL.

Go builds & Low RAM devices can now bypass some options in Settings

In BlissOS Go builds, there are some options that are being blocked by Android. Most notably the option to allow apps to draw on other apps. You will see this text when you are trying to grant the permission :

alt_text

With the latest update of BlissOS, we've included a switch in Blissify Settings to allow bypassing this restriction. So now you are able to use apps like Smart Dock or Taskbar just like the usual generic version. The new option will be available in all of the upcoming BlissOS releases including 14, 15 and 16.

A/B OTA Updates - rolling out soon

Our efforts on Bliss Co-Labs have been paying off and we have a number of features and options developed from there heading to our open-source Bliss OS builds soon. The recently merged changes for the Bliss Setup Wizard for Bliss OS 15.x is one of those.

The other will be coming in the form of OTA updates for Bliss OS. These updates will bring the following improvements to the system:

  • Separate A/B slots for all three images (system.img, initrd.img & kernel)
  • System Rollbacks - Native bootctrl behavior
  • Update server controlled by our own Shipper Stack

We have worked around a few issues with shipping sfs/erofs images and will keep the community posted on the progress. The early beta builds might not have all those fixes included just yet, so just be aware if you are trying to mount as read/write.

Grub updates to v2.06 - also rolling out soon

Now that we have the groundwork laid out for updating Grub with our A/B OTA updates, we decided it was best to update to the current version of Grub that Linux uses, and in doing so, we also solve an issue that 12th gen+ Intel CPU’s have had where the screen is black after selecting any boot option from Grub. This means that the most recent gen CPU’s will now be supported by both the kernel and the bootloader for Bliss OS.

This effort came from a few different contributors, so we have an initial solution we will likely release, and then split the other contributions into phases where we merge binary updates, libraries, modules, installer updates, and others separately in order to ensure stability as we move forward.

OEM Install mode options - also rolling out soon

Bliss OS builds (and Android-x86) have had some major issues with the auto-install mode that have been the source of many headaches and many long nights of reinstalling other operating systems in order to correct. So we took some time to update the current auto-install solution and give it a more proper name of OEM install, along with adding a few more options for unattended installation (Force):

  • OEM Install (same as old auto-install, will require some interaction)
  • OEM Install - Force MBR [Unattended Install] (if bios is set to use Legacy)
  • OEM Install - Force EFI [Unattended Install] (if bios is set to use UEFI/EFI)
  • OEM Install - Force [Unattended Install] (autodetect MBR/EFI)
  • OEM Update - Will auto-update a previous default install or OEM install

These modes are intended for factory setup and will not work with devices that come with Windows unless you wipe all partitions except for EFI and leave a second OS partition with all the remaining space.

We have more on the way

We don’t want to spoil any of the surprises we have planned, so we will leave things here for this post. Just know that there will be a lot of contributions heading towards Bliss OS source, coming from the efforts of Bliss Co-Labs’ and the community in helping bring our project even further than we ever thought possible.

Thanks again and enjoy the builds!

· 3 min read
HMTheBoy154

alt text

July is a busy month for us here in BlissLabs. With the release of Android 13 QPR3, we've decided that both BlissROMs and BlissOS this time will release the new updates on the same day which is pretty special for both of us.

You can check out all the changes BlissROMs made here for more info : https://blog.blissroms.org/2023-07-15-typhoon-16.8-updates-jul-2023/

BlissOS exclusive changes

Beside from QPR3 and the changes made by BlissROMs, BlissOS offer some exclusive changes too. There are 3 main things :

New About Tablet design

alt text

BlissROMs gave us the new About Phone/Tablet design, here we made a few modification to it. First, Processor name will show the actual CPU name of the device instead of getting the SoC name with prop ro.soc.model. Device name is a tablet instead of a phone and the screen to show the wallpaper is set to horizontal with 16:9 aspect ratio. Making this a nice tablet info screen for BlissOS.

Exclusive Launcher Features

To say this is an exclusive is a bit odd, because submitted the patches to Gerrit. But BlissROMs decided to put these in the next release (16.9) so we just gonna say that this is exclusive to BlissOS 16.8 :p.

First, the Split button is now properly modified based on the new Recents button layouts.

alt text

Not only that, you can also turn it off in Recents Settings

alt text

Next, by default memory info in Recents is on the top of the screen, we've provided an option to move it down again. We also calculated and change the margin of memory info when you are on Persistent Taskbar or Transient Taskbar so that meminfo will not be covered by taskbars.

alt text alt text

Finally, Developer Options is back ! You can find it under Misc Settings when Developer Options in Settings is enabled.

alt text

Shipping with Kernel 6.1

BlissOS 16.8 will be the first build to ship with Kernel 6.1. Currently I'm still using the same recipe, Google's Common Kernel android14-6.1-lts branch with xanmod patches and some fixes for Android-x86 but because this is Kernel 6.1, more hardware will be supported especially the Steam Deck with some drivers & fixes from Valve that they put on their SteamOS' kernel.

And that's it for this month with the new release of 16.8, we hope that you will enjoy it even though for BlissOS 16 it's still in Beta stage.

#StayBlissful #FeelTheWind🌪

· 15 min read
Jon West
HMTheBoy154

alt text

The last couple months have been pretty busy at Bliss. Since January/February, we’ve been able to get a lot of work done on many different fronts. With my return to Bliss, we’ve started a collaborative contract development and consulting firm named Bliss Co-Labs, and have been working on a few client projects. Without letting the open-source side of things skip a beat, we’ve also been busy making changes and working on quite a few new updates and projects. So we think it’s about time to at least announce a few of the changes we have in store, as well as a few announcements for new projects or major project updates.

Updates

Let’s start with the release updates first. HMTheBoy154 has been busy pushing out some truly amazing innovations for Bliss OS, bringing the platform to support many more devices, and expanding its configurable layers past the graphics stack, and into many others. He has this to say about what has been going on recently:

Ever since Jon joined Esper, I’ve decided to continue his work. If you join our Telegram group, you’ll notice that a lot has changed since the last releases like Bliss OS 14.3 or 15.1. In this post, let’s take a look at what’s new in these versions.

Bliss OS v14.10 Release

alt text

Compared to 14.3, the new Bliss OS 14.10 has improved a lot. Although there are some features that I have to remove for example the long iso name to explain what's inside the build or Gearlock (while it is a really good recovery solution for Android-x86, I still decided to remove it because it need to be rewritten), I've been putting a lot of changes into it, some of them were on my old ProjectSakura-x86 builds. Also, please remember that most of these are also available in Bliss OS 15.8 builds and more on that later.

Here are the new changes :

  • Taskbar apps like farmerbb's Taskbar or axel358's Smart Dock are being updated to the latest.
  • Kernel has been updated to 5.15.x, this is the same kernel I use on PS-x86 but now with more optimization & hardware support. Also mgLRU, eBPF, DMA-BUF Heap, etc are all being enabled.
  • ESDFS is being used to bind mount apps' data just like ChromeOS, this is to fix apps that can't be able to read data or obb on Bliss, causing it to crash.
  • Using Intel's Bluetooth HAL, with some changes from Android-x86 to support more Bluetooth cards than just Intel one.
  • You can now make a list like modprobe.conf at /data/vendor/modules.options or /data/vendor/modules.blocklist if you want to blacklist a module.
  • Bliss can now show the device information just like the old Bliss OS 11 or Android-x86.
  • virt_wifi is now disabled by default, you can still use it with VIRT_WIFI=1
  • If you are using a tablet or convertible laptops that have an accelerometer, our iio sensors can now be able to rotate the screen.
  • PGO optimization for art. This is a feature by Intel to enhance VM workload performance, you can read about it here.
  • AutoFast JNI, this is also another feature by Intel to improve performance on Android running in x86 hardware .
  • zram is enabled by default with zstd compression.
  • aptX & aptX HD Bluetooth codecs support using Android 13's encoders. Bliss is the first Android build on x86 hardware to get this publicly.
  • toybox is being upstreamed with additional tools such as eject or rfkill. Also, we've included usb.ids and pci.ids for lsusb & lspci so you can check the USB or PCI devices name.
  • If you want to mount all of your partitions into Bliss, add INTERNAL_MOUNT=1 into the cmdline.
  • If you want to try AOSP's experimental "PC Mode", add PC_MODE=1 into the cmdline and try.
  • If you want your Bliss OS build to be recognized as a Google Play Games for PC image, add HPE=1 into the cmdline and reset Play Store.
  • You can now force your mouse click as touch, this is to help fixing apps that only use touch input only.
  • Mouse acceleration can be disabled ,also scroll wheel too.
  • Night Light is now available.
  • BoringDroid is back.
  • For media, while using OMX.ffmpeg codecs as usual, I also provide Codec2 implementation of ffmpeg codecs, made by Micheal Goffioul. Alongside with that, new VAAPI drivers for newer Intel iGPU & other hardware is also being built to support hardware acceleration decoder. I also include a lot of parameters that you can use to get the best result from Bliss OS, you can find it at our Docs.
  • For graphics, our graphics stack is being improved significantly compared to the previous builds, not only that, like media, we provide a lot of options through parameters too. You can see some of our changes here like :
    • Vulkan is now being enabled by default. VULKAN=1 is dead, long live VULKAN=1.
    • Mesa is being updated to latest version (23.1) with LLVM16 for AMDGPUs.
    • Also in Mesa we've activated xmlconfig, with this you can create custom configuration for apps & games related to graphics like spoofing GPUs name & vendor. We will update more information in our Docs soon.
    • While we include a lot of Gralloc & HWC options and we pick the best one depending on what GPU Bliss is running. So if you don't want to play with any of this, you can just be sure that you are running the best one that is being tested by us & the community.
    • For minigbm (and all the different variations that we have), you can switch to Gralloc4 with GRALLOC4_MINIGBM=1 parameter.
    • You can force OpenGLES version with FORCE_GLES=<version> parameter.
    • For software rendering solutions, not only we are using Swiftshader, but also SwANGLE. A combination of ANGLE EGL driver & SwiftShader Vulkan made by Google. SwANGLE is already being used on Android 13 but we've backported it.

And for the first time, Bliss is using the new KernelSU for root solution. Not only that, Bliss OS is the first x86_64 Android build ever to integrate KernelSU into it.

alt text

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

Bliss OS v15.8 Release

alt text

Bliss OS 15.8 has a different starting point than Bliss OS 15.1. Firstly, Bliss OS 15.8 is based on Android 12L unlike 15.1 which uses Android 12. Second, Bliss OS 15.8 common tree (device/generic/common) is based on my 14.10 tree with a few patches instead of using 15.1 one. Which is why I said that most of the new features from 14.10 are also available on 15.8. All the changes you see in 14.10 are also in this version, but with Android 12L instead.

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

The return of Bliss OS Surface Builds

alt text

For Bliss OS, Surface Builds used to be a thing in Bliss OS 11 days with a few builds available. Now we’re happy to announce that we’re bringing back the build with a newer kernel (5.15) using patches from linux-surface and using the latest ipts/ithc kernel driver as well as iptsd daemon to support touchscreen.

*NOTE : Not every Microsoft Surface device has to install surface build to make it work, some can just use generic builds, please check our Documentation for more info.*

Releases

HMTheBoy154 has been working on a super secret project for Bliss, and we are happy to announce the initial beta release of Bliss OS v16.6 (Android 13) for x86_64v2 PC’s, laptops, tablets, etc. Check the release notes for that below.

Bliss OS v16 Beta Release

alt text

Yes, you heard that right. Today I'm happy to announce the first public beta build of Bliss OS 16. The development has already started since October 2022 and I've been working together with not only Android-x86 members & contributors, but also with BlissROMs members and we've made a lot of progress since then. We even work with the LibreMobileOS team to fix some issues like freeform.

Currently BlissOS 16 is on 16.7 to match with the version on BlissROMs. While it’s still on Beta stage, we can't wait to release our new images so you can experience them.

New Bliss OS Logo Announcement

With the Bliss OS 16 announcement, Designer XelXen (aka WildWaze) has also been working with us on a redesigned logo for this and future releases. Not only that, he also included some new wallpapers for us to match with this new design elements.

“The new logo of BlissOS depicts a human figure standing in between petals of lotus, representing the transparency and diversity of the operating system. The figure also holds a perfectly shaped lotus flower, which is the emblem of BlissLabs and perfection.”
Logo 1Logo 2
alt textalt text
Wallpaper 1Wallpaper 2
alt textalt text
Wallpaper 3Wallpaper 4
alt textalt text

Android-Generic Project Manager Release

We are excited to announce the release of Android-Generic Project Manager (AGPM), a tool that makes it easier to build and configure AOSP based projects. AGPM provides a number of features that can help you save time and effort, including:

  • Automatic repo init: AGPM can automatically initialize a new AOSP project or update an existing one.
  • Python virtualenv support: AGPM can wrap your project in a Python virtualenv, which allows you to install packages and run scripts without affecting the rest of your system (quite handy when you are using a shared server over ssh and do not have root access for installing packages).
  • Check Project Status: AGPM can check a project folders repos against the manifest, and it will build a list of any repos with uncommitted changes, or if the repos are not pushed yet.
  • Option to push changes: Depending on what Update Checking finds, you can push your updates to the repos found to be behind
  • Common Tools: Create New, Update, Delete, etc.

Screenshots:

alt text

(Main Menu window: Zenity mode)

alt text

(Check Project Status results: Zenity mode)

Compatibility:

AGPM is designed to be flexible and extensible, so you can add your own project configurations and features. Currently, we support the following projects:

  • AOSP
  • Bliss ROM
  • Lineage OS
  • Bliss OS

We have a planned features list a mile long, and we are always working to add support for more projects. If you have any feedback or suggestions, please feel free to open an issue on the AGPM GitHub repository.

We hope you find AGPM to be a useful tool for building and configuring AOSP based projects.

Android-Generic Project (v2023) Release

We are excited to announce the release of Android-Generic Project (v2023), a major update that brings many new features and improvements.

Key Features

  • Support for multiple targets: AG v2023 can now be used to build images for a variety of targets, including Android phones, tablets, Raspberry Pi, emulators, TVs, and PCs. As usual, we start things out with the PC target, and let that act as an example for the rest.
  • Target-based system: AG v2023 uses a new target-based system that makes it easier to build images for specific targets.
  • Target variants: AG v2023 now supports target variants, which allow you to build images with different configurations for different targets. This system is used to have separate base structures for targets. So for the PC builds (target), we will have the variants: Android-x86 base, Bliss OS base, Bliss OS Go, etc.
  • Conditions for menu items: AG v2023 allows you to use conditions to control the availability of menu items. This makes it possible to create more complex and flexible menus.
  • Addon templates: AG v2023 includes addon templates that you can use to create your own addons. Addons are a great way to extend the functionality of AG.
  • Public and private addons: AG v2023 supports both public and private addons. Public addons are available to everyone, while private addons are only available to a select group of users.

Updates

In addition to the new features listed above, AG v2023 also includes a number of updates and improvements. These include:

  • Updates to the easy-menu system for more dynamic menu options.
  • A new targets based system.
  • The ability to add target variants.
  • The ability to lock the process with conditions per option.
  • Updated api-32 support.
  • Added api-33 support.
  • Reworked manifest structure to include in targets.
  • Added addon template for contributors to use to create their own addons.
  • Added Targets template for contributors to use to create their own targets.
  • Reworked open/private addon structure and added new addons.

Generic/PC Addons

The following new addons have been added for generic/PC targets:

  • Configurable battery stats addon
  • Rotation/orientation configuration options through Grub
  • Expanded LMKD configuration addon
  • LMKD tuning options through Grub
  • Memory tuning options through Grub
  • Performance tuning options through Grub

Licensed Addons

The following new addons have been added for licensed targets:

  • Recents tuning addon
  • Addons for locking various features
  • Customizing new user functions addon
  • Configuring packages on boot (hide/disable/unhide/enable)
  • Addon for locking the ability for the user to change settings

Special Requests? contact us

We hope you enjoy these new features and improvements!

Bliss Broad Apparatus Support System (Bliss-Bass)

(Automated Vendor Customization Layer for Bliss OS / Bliss OS Go)

Bliss Broad Apparatus Support System (Bliss-Bass) is an automated vendor customization layer for Bliss OS / Bliss OS Go (and eventually BlissROM). It is a toolkit that can be used to help with rebranding, customizations, and app changes for Bliss OS based builds. The toolkit comes with a variety of functions, including:

  • An autopatch function that applies all required changes to the Bliss OS build.
  • The ability to define custom sets of changes to be applied before customization.
  • Integration with AOSP's build system, which allows a variety of tools to be accessed before the lunch process starts.
  • The ability to display a customization menu from the pre-lunch hook, using either dialog or zenity, depending on whether or not a GUI is detected.

The Bliss-Bass toolkit is designed to make it easier for users and companies to start off using Bliss for their products. By automating many of the tasks involved in rebranding and customization, Bliss-Bass can save time and energy, allowing users or engineers to focus on the creative parts of the process.

Here are some additional details about the autopatch function:

  • The autopatch function is available from the command line using ‘check_patchsets’ or through the menu.
  • The autopatch function can be used to apply a variety of changes to the Bliss OS build, including changes to the kernel, bootloader, system image, and vendor image.
  • The autopatch function can be used to define custom sets of changes to be applied. This can be useful for organizations that need to make specific changes to Bliss OS for their own products.

Just like some of our other toolkits, this project integrates itself into AOSP’s build system and allows a variety of tools to be accessed before the lunch process starts:

alt text

And when you trigger the customization menu to display from the pre-lunch hook, it can use ‘dialog’ if there is no display or GUI detected:

alt text

Or zenity, to display the menu options if it does detect a GUI:

alt text

Further development is being made to add even more options and tools to Bliss-Bass. The project is open source and available on GitHub at https://github.com/BlissRoms-x86/platform_vendor_branding.

Bliss OS Linux Hybrid Preview

(Bliss OS Go edition)

alt text

Read More in last weeks release post: Bliss OS Linux Hybrid Preview

New Collaborations

LibreMobileOS

alt text

We are excited to announce our collaboration with LibreMobileOS, a project that develops and promotes privacy-focused mobile operating systems. As part of this collaboration, we have been working with LibreMobileOS to develop LMODroid-x86, a version of their operating system that is designed to run on x86-based tablets and PCs.

LMODroid-x86 was created using Android-Generic Project v2023, a free and open-source prototyping toolkit used to create x86 based Android projects, and other targets. The operating system will be pre-installed with a variety of privacy-focused applications, including a web browser, desktop mode, digital wellbeing (coming soon), and file manager.

We believe that LMODroid-x86 will be a valuable addition to the LibreMobileOS ecosystem. The operating system will provide users with a privacy-focused alternative to the major mobile operating systems, and it will help to promote the use of open-source software. We would like to thank LibreMobileOS for their collaboration on this project. We are excited to work with them to develop LMODroid-x86 and to help make it available to users around the world.

We would also like to thank HMTheBoy154 for their contributions to this project. Their hard work and dedication has been essential to the success of the project.

We are confident that LMODroid-x86 will be a valuable resource for users who are looking for a privacy-focused and secure mobile operating system. We look forward to sharing more information about the project in the coming months.

· 2 min read
Jon West

This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware.

Features:

  • Based on Xubuntu 22.04.x LTS

  • Stripped of Snap and other Ubuntu apps/telemetry

  • Includes Ubuntu expanded hardware support drivers

  • QEMU based Bliss OS session

  • Bliss OS grub menu options (for running on bare-metal hardware)

  • Includes basic update and management scripts for Android side

  • Lots more, but we are just getting started…

Download the preview:

https://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU

Live Boot Info:

User: Live

Password: evolution

Step 1:

Live boot (boots to xfce4)

Step 2:

Run installer (last step shows pop-up to specify data.img size), Done.

Step 3:

Reboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)

Notes:

Autologin is enabled, will launch last loaded session choice from Login screen

· 2 min read
Jon West

alt text

[Announcement] Bliss OS Go (Preview Release)

Bliss OS Go is a new variation of Bliss OS that is designed to run on low-end devices. It is based on Android Go, which is a version of Android that is optimized for devices with limited resources. Bliss OS Go includes a number of features that are designed to improve performance, battery life and usability on low-end devices, such as:

  • A lower-spec config for recents
  • A lower-spec config for task management
  • Expanded configuration options
  • And much more

Bliss OS Go is currently in release for a number of low-end devices, including:

  • Intel Atom devices
  • Intel Celeron N/M devices
  • Intel Pentium devices
  • AMD APU/CPUs

If you have a low-end device and you are looking for a new operating system that will improve performance and battery life, then Bliss OS Go is a great option.

Here are some additional details about the features of Bliss OS Go:

  • Lower-spec configs for recents and task management: These configs reduce the amount of resources that are used by the recents and task management apps, which can improve performance and battery life.
  • Expanded LMKD configuration: LMKD is a Linux kernel module that can be used to improve performance and battery life by limiting the number of interrupts that are generated by hardware devices. The expanded LMKD configuration in Bliss OS Go makes it easier to tune LMKD for optimal performance and battery life.
  • Rotation/orientation configuration options through Grub: Rotation/orientation configuration options can also be accessed through Grub. This makes it easy to change the rotation and orientation of the Bliss OS Go display without having to reflash the image.

More Info

Warning, due to the low-spec nature of the devices we are targeting with these builds, we do not include native-bridge by default on Bliss OS Go builds.

Downloads can be found on Sourceforge: https://sourceforge.net/projects/blissos-dev/files/BlissOS-Go/FOSS/20230519/

Configuration documentation for some of the features found in Bliss OS Go can be found on our docs site: https://docs.blissos.org/configuration/configuration-through-command-line-parameters/

· 2 min read
Jon West

alt text

New Collaborations

[pilot] EIDU - Taifa ElimuTab

Bliss Co-Labs and EIDU, an organization that builds innovative solutions to digitize education in low and middle-income countries at scale, have partnered to bring an Android Go 12.1 variation of Bliss OS to the aging Windows tablets used by Kenya public primary schools. The pilot program aims to allow millions of devices a second-life through the use of Bliss OS, which is specifically tailored to the devices' hardware and capabilities.

Bliss OS is a lightweight operating system that is designed to run on x86 Windows & Linux devices. It is based on Android, but it has been optimized for performance and battery life. Bliss OS Go is a version of Bliss OS that is designed for lower-powered devices, such as the Intel Atom based Windows tablets that are used in Kenya.

The pilot program will test the feasibility of deploying Bliss OS Go on the Windows tablets. If the pilot is successful, it could lead to the deployment of Bliss OS Go on millions of devices, which would provide students in Kenya with access to a more reliable and affordable educational platform.

Here are some of the benefits of using Bliss OS Go on the Windows tablets:

  • Improved performance: Bliss OS Go is designed to run on low-powered devices, so it can provide a significant performance boost over Windows. This will make it easier for students to use the devices for learning.
  • Longer battery life: Bliss OS Go is also designed to conserve battery life, so students can use the devices for longer periods of time without having to worry about running out of power.
  • More affordable: Bliss OS Go is a free and open-source operating system, so it is more affordable than Windows. This will make it possible for schools to deploy Bliss OS Go on more devices, which will benefit more students.

We believe that Bliss OS Go has the potential to make a significant impact on education in Kenya. We are excited to partner with EIDU on this pilot program and we look forward to seeing the results.

· 3 min read
Jon West

As a business, the typical way to do things is to file for patents, and protect your product or idea, and your product team produces the development design and manages updating the product for its lifecycle. The downside to that is that only your team has the ability to spot its flaws, make it better, or see other avenues where it could be used. This is not the case with an open-source project lifecycle. The product you develop is open to the community to use, inspect and improve upon. This helps accelerate the development of the idea or product by allowing open-innovation to take place.

Dismissing the current arguments against open-source development

Can people take your code and use it for their own projects? The answer is yes, but this is not a bad thing at all. This is one of the things that empowers your idea by allowing you to see the improvements they made and how they made them, then adding those improvements into your code base.

Can people alter your code to include malicious code? This depends on how well you manage the pull requests for your code, as even the Linux Kernel has had some bad-actors try and slip in malicious code before, and it was caught by the community. So you just need to make sure you define a strict set of rules for your project maintainers to follow when it comes to merging pull-requests from the community into your code base.

Can you make money off Open-Source code? The answer to this is yes, and in many ways. It all comes down to how you design your project and the licensing you choose for it. As many open-source licenses do allow licensing, and support contracts, and many more options can be written into the standard licensing agreements.

How have we leveraged open-source for businesses?

As a consumer, you get to use the products of our work in open-source by testing our work (Bliss OS, Waydroid, Android-x86) on your laptop, tablet, desktop, server, etc. at no cost. As a business, our projects are limited in use, but can be licensed for inclusion into a project, and we offer development contracts to help businesses further develop their products, with our projects included. We have also created toolkits for businesses to use for free in the past, demonstrating the power of rapid-prototyping through the use of our services.

For other businesses, not used to working in open-source, there will always be hesitations. But that doesn't mean we can't make it work. We have had some restraints on projects in the past, and the solution for those proprietary constraints is typically to build a system that can handle allowing the end user to use it, while keeping all the private bits, private still. A perfect example of this is how Google Play, Widevine, libndk-translation, Houdini, and other private blobs are included in our projects. We have even gone one step further in this where allowed, and produced tools for the rest of the open-source community to use, that allows them to benefit from using the proprietary blobs, while keeping the businesses private intents intact.

It really all comes down to the mental attitude behind your innovation, and all in how you spin it. It's about time the market starts thinking on reasons why they should start going open-source, and not looking for all the reasons why they shouldn't.

- + \ No newline at end of file diff --git a/tags/blissos/index.html b/tags/blissos/index.html index 766426a..8897fe9 100644 --- a/tags/blissos/index.html +++ b/tags/blissos/index.html @@ -13,19 +13,19 @@ - +
-

8 posts tagged with "blissos"

View All Tags

· 7 min read
Jon West
HMTheBoy154

alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ +

8 posts tagged with "blissos"

View All Tags

· 7 min read
Jon West
HMTheBoy154

alt text

It is that time of the year to share and look forward to the future, so we are back with another update on what all we have been up to and where we are headed from here.

Leading Up To Now

We have been working on merging upstream changes, our install process, our update process, and adding more features and configuration options to Bliss OS, and much of that work is getting ready for release.

A revamped bootable installer

While there are many reports that the bootable installer was really buggy in recent years, because there are alternatives like Grub2Win or manual Linux dual-boot setup we haven’t spent much time on it. However, with the shocking discover that Grub2Win, a project that we and many people are using to install and dual-boot BlissOS is doing something inappropriate , we realized that it’s time and decide to look back at our bootable installer to completely revamped it :

  • Both the installer and the initrd now will use latest busybox 1.36.1 built by Docker (https://github.com/docker-library/busybox)
  • Almost all of the libraries & programs are now using prebuilts from Debian 13 i386 instead of the old one from Android-x86 (which was taken from an old version of Fedora).
  • efivar and efibootmgr are still being built from source, but are being updated to latest versions.
  • Grub has been bumped to Grub 2.06 for both Legacy BIOS or UEFI. Bumping Grub2 to the latest stable version also helps fixing black screen issues when trying to install.
  • Support installing with exFAT or F2FS (experimental).
  • UEFI users can now be able to manually choose the ESP (EFI System Partition) if they want, this is for people who have multiple ESP in their setup or just want to make sure that the installer picks the correct partition. We also allow users to change the label on the folder or on the UEFI entry if you want more customization.
  • Some label and text edit for better comprehensiveness of what the installer tries to do.
  • Support install with rEFInd for UEFI users, it is still in the experimental stage so please consider carefully before choosing it.
  • Using rsync for the files copy stage as it can fix an annoying problem that the progress bar will reach 200% when done.

We believe that with these new changes, users will have a great experience setting up the OS. Just a small caution : Unlike Android-x86, we haven’t planned to support Secure Boot yet so please disable it before trying to install the OS.

Check out the screenshot here if you are interested : https://t.me/hmdumbground/111

An approach to OTA updates on BlissOS

A few months ago, we reached out to @erfanoabdi for a solution to OTA updates. This was intended for Bliss Co-Labs clients and later applied to BlissOS and it is unlike any other OTA method that any Android-x86 or other derivative used to use. The idea here is utilizing virtual A/B by making a bootctrl HAL that will edit Grub configuration to switch between the two slots. The advantage is that with virtual A/B, users can still be able to use the OS while it’s updating because the update is being handled in another slot. Also other custom ROMs can easily use our method as the update is being handled by LineageUpdater, which is being used by many.

The disadvantages that we observed is that this method does not support filesystems that are handled by FUSE , so if you install BlissOS on an NTFS partition, you will not be able to use it. Another issue is that because switching slot is to edit a config file, manual Linux dual-boot will now have to take extra steps if you want OTA support. We will soon update it in our Documentation.

All versions that we are maintaining will support OTA. This includes BlissOS 14, 15 and 16. Please install the new builds to get the latest OTA updates in the future.

AV1 support for ffmpeg codecs

Thanks to the work of @KonstaKANG, we’ve been able to bring AV1 support into our ffmpeg codecs. Currently AV1 is being handled by libdav1d made by the developers at VLC and being built using GloDroid’s AOSPExt. We are also planning to support VA-API AV1 soon for hardware-accelerated solution.

Properly handle suspend

While making her first big contribution to the project which is providing fixes to the Steam Deck, our friend @Kethen has decided to help us tackle the suspend issue. Suspending the machine or waking it up now feels less buggy than before.

BlissOS Go for all versions

Announced in June with only 15 (Android 12L) versions, BlissOS Go is still being continued to develop and now we are announcing that the Go version will be available to all BlissOS versions, including 14, 15 and 16 with both Gapps or FOSS variants.

Bump to kernel 6.1 for all builds

Kernel 6.1 has been tested internally and is available on BlissOS 16 for a while now and we decided to finally release all of our BlissOS versions with it. Still the same combination of Google’s Android common kernel source + Android-x86 patches + some xanmod patches. Now with more hardware supported especially the Steam Deck with some drivers & fixes being pulled directly from Valve.

Introducing BlissOS Zenith

alt text

We realized that there are users out there who are using hardware that are too new for the kernel in BlissOS to support. This is a challenge as we know that we can’t just build all the current BlissOS versions with stable or mainline kernel, that would risk the stability of the OS. So we’ve decided that we will make another variant, this time with 2 key differences :

  • Only build the latest version of BlissOS available for this variant, so for now it’s 16.
  • Using stable branch of the linux kernel.

We want to make this build for users that have new hardware or the one that always wants the latest, latest version of BlissOS and the latest kernel. With that said, we still need a name for this new variant. This gave us an idea, “What if we ask our community ?” and decide to ask people to give this new build a name on our Twitter & our group chat. After looking through all the suggestions, we’ve decided to choose Zenith .

\ BlissOS Zenith, The new flagship build of BlissOS, intended for "chasing the latest". Starting now with version 16.9.4 and kernel 6.6

Other updates

  • A lot of fixes for Steam Deck, even a dedicated sensor HAL thanks to @Kethen (again).
  • alsa-info.sh is now being included into BlissOS, this will generate a file with all the necessary information related to audio, this is intended to debug audio issues.
  • sof-firmware from Intel is being included to support more audio hardware.
  • All builds are now using Mesa 23.3.3
  • Some fixes to the sensors HAL (thanks to @Kethen again)
  • Fixed an issue that desktop Nvidia GPUs with nouveau can’t be able to get into the GUI.
  • Support KeeTouch touchscreens.
  • Rotation quirks for Chuwi Ubook X 2023
  • Extra properties to disable navbar, statusbar, taskbar and recents for BlissOS 15 & 16. This used to be a part of Bliss-Bass and has now been ported to BlissOS.
  • Users can now fix their audio issues after install by putting their hardware’s alsa state definitions in /data/vendor/alsa/<hardware>.state
  • Updated KernelSU to latest version.
  • Virtual Console is back, you can now press Ctrl + Alt + F1 to switch to it. If you want to unlock the console, add androidboot.enable_console=1 to the cmdline. Bringing a virtual console also helps fixing another issue: hiding a small blinking cursor when using software rendering.
  • Some tweaks for BlissOS Go taken from GloDroid Project .
  • You can now disable the tablet taskbar on BlissOS 15 & 16. Patches were taken from LMODroid .
  • AutoFast JNI is now available on BlissOS 16.
  • BlissOS 15 and 16 now have a new Sleep logo, and you can enable/disable the button on Blissify Settings => Power Menu

· 6 min read
Jon West

alt text

Since the release of our stable Bliss OS 14.x & 15.x builds, we have had the chance to make a number of advancements on the OS in various areas. We will start the post with the updates coming from the value added contributions on the business side of things, then end with the updates being merged into the Bliss OS builds.

Bliss Bass - beta builds started already

alt_text

We have started to push some of the source for our Bliss Bass (Broad Apparatus Support System) builds that we use for customer focused builds based on Bliss OS, and the feedback from that has been pushing our development on the platform in a positive direction. These builds will be 100% ready for use in products, and will come with a number of added configuration options for features, UI/UX, updates, and more. We have released a few beta builds of the base FOSS variant of Bliss Bass for testing on Sourceforge. The initial flavors we will offer are:

  • Kiosk variant
  • Desktop variant
  • Tablet variant
  • Tablet Go - IOT/IIOT variant
  • More on its way

There will be a new website created for these builds, and they will still be free to download and test, although the initial test builds will come watermarked. This will ensure that we are able to produce these test builds for the public while still retaining our licensing rights for it.

We are still collecting valuable information from our customers and would love to hear what our users think of this approach. Please leave a comment and let us know your thoughts.

Bliss OS Updates

There are a few important changes that we are gearing up for on Bliss OS. First, on Bliss OS 14.x & 15.x, we will be shipping with Kernel 6.1, this includes our Surface builds. Second change will be for BlissOS 14.x, 15.x & 16.x (Generic/Surface), and that will be a switch to a new Audio HAL made by Intel’s Project Celadon

Switching to the new Audio HAL will be an important change for us, so we would like to ask everyone to help us to test these new HAL so that we can have feedback and improve it further. Once tested, we will update the builds to include the new audio HAL changes.

Please join our Discord or Telegram to gain access to the new test builds of BlissOS 15.8.8 with Kernel 6.1.36 and the new Audio HAL.

Go builds & Low RAM devices can now bypass some options in Settings

In BlissOS Go builds, there are some options that are being blocked by Android. Most notably the option to allow apps to draw on other apps. You will see this text when you are trying to grant the permission :

alt_text

With the latest update of BlissOS, we've included a switch in Blissify Settings to allow bypassing this restriction. So now you are able to use apps like Smart Dock or Taskbar just like the usual generic version. The new option will be available in all of the upcoming BlissOS releases including 14, 15 and 16.

A/B OTA Updates - rolling out soon

Our efforts on Bliss Co-Labs have been paying off and we have a number of features and options developed from there heading to our open-source Bliss OS builds soon. The recently merged changes for the Bliss Setup Wizard for Bliss OS 15.x is one of those.

The other will be coming in the form of OTA updates for Bliss OS. These updates will bring the following improvements to the system:

  • Separate A/B slots for all three images (system.img, initrd.img & kernel)
  • System Rollbacks - Native bootctrl behavior
  • Update server controlled by our own Shipper Stack

We have worked around a few issues with shipping sfs/erofs images and will keep the community posted on the progress. The early beta builds might not have all those fixes included just yet, so just be aware if you are trying to mount as read/write.

Grub updates to v2.06 - also rolling out soon

Now that we have the groundwork laid out for updating Grub with our A/B OTA updates, we decided it was best to update to the current version of Grub that Linux uses, and in doing so, we also solve an issue that 12th gen+ Intel CPU’s have had where the screen is black after selecting any boot option from Grub. This means that the most recent gen CPU’s will now be supported by both the kernel and the bootloader for Bliss OS.

This effort came from a few different contributors, so we have an initial solution we will likely release, and then split the other contributions into phases where we merge binary updates, libraries, modules, installer updates, and others separately in order to ensure stability as we move forward.

OEM Install mode options - also rolling out soon

Bliss OS builds (and Android-x86) have had some major issues with the auto-install mode that have been the source of many headaches and many long nights of reinstalling other operating systems in order to correct. So we took some time to update the current auto-install solution and give it a more proper name of OEM install, along with adding a few more options for unattended installation (Force):

  • OEM Install (same as old auto-install, will require some interaction)
  • OEM Install - Force MBR [Unattended Install] (if bios is set to use Legacy)
  • OEM Install - Force EFI [Unattended Install] (if bios is set to use UEFI/EFI)
  • OEM Install - Force [Unattended Install] (autodetect MBR/EFI)
  • OEM Update - Will auto-update a previous default install or OEM install

These modes are intended for factory setup and will not work with devices that come with Windows unless you wipe all partitions except for EFI and leave a second OS partition with all the remaining space.

We have more on the way

We don’t want to spoil any of the surprises we have planned, so we will leave things here for this post. Just know that there will be a lot of contributions heading towards Bliss OS source, coming from the efforts of Bliss Co-Labs’ and the community in helping bring our project even further than we ever thought possible.

Thanks again and enjoy the builds!

· 3 min read
HMTheBoy154

alt text

July is a busy month for us here in BlissLabs. With the release of Android 13 QPR3, we've decided that both BlissROMs and BlissOS this time will release the new updates on the same day which is pretty special for both of us.

You can check out all the changes BlissROMs made here for more info : https://blog.blissroms.org/2023-07-15-typhoon-16.8-updates-jul-2023/

BlissOS exclusive changes

Beside from QPR3 and the changes made by BlissROMs, BlissOS offer some exclusive changes too. There are 3 main things :

New About Tablet design

alt text

BlissROMs gave us the new About Phone/Tablet design, here we made a few modification to it. First, Processor name will show the actual CPU name of the device instead of getting the SoC name with prop ro.soc.model. Device name is a tablet instead of a phone and the screen to show the wallpaper is set to horizontal with 16:9 aspect ratio. Making this a nice tablet info screen for BlissOS.

Exclusive Launcher Features

To say this is an exclusive is a bit odd, because submitted the patches to Gerrit. But BlissROMs decided to put these in the next release (16.9) so we just gonna say that this is exclusive to BlissOS 16.8 :p.

First, the Split button is now properly modified based on the new Recents button layouts.

alt text

Not only that, you can also turn it off in Recents Settings

alt text

Next, by default memory info in Recents is on the top of the screen, we've provided an option to move it down again. We also calculated and change the margin of memory info when you are on Persistent Taskbar or Transient Taskbar so that meminfo will not be covered by taskbars.

alt text alt text

Finally, Developer Options is back ! You can find it under Misc Settings when Developer Options in Settings is enabled.

alt text

Shipping with Kernel 6.1

BlissOS 16.8 will be the first build to ship with Kernel 6.1. Currently I'm still using the same recipe, Google's Common Kernel android14-6.1-lts branch with xanmod patches and some fixes for Android-x86 but because this is Kernel 6.1, more hardware will be supported especially the Steam Deck with some drivers & fixes from Valve that they put on their SteamOS' kernel.

And that's it for this month with the new release of 16.8, we hope that you will enjoy it even though for BlissOS 16 it's still in Beta stage.

#StayBlissful #FeelTheWind🌪

· 15 min read
Jon West
HMTheBoy154

alt text

The last couple months have been pretty busy at Bliss. Since January/February, we’ve been able to get a lot of work done on many different fronts. With my return to Bliss, we’ve started a collaborative contract development and consulting firm named Bliss Co-Labs, and have been working on a few client projects. Without letting the open-source side of things skip a beat, we’ve also been busy making changes and working on quite a few new updates and projects. So we think it’s about time to at least announce a few of the changes we have in store, as well as a few announcements for new projects or major project updates.

Updates

Let’s start with the release updates first. HMTheBoy154 has been busy pushing out some truly amazing innovations for Bliss OS, bringing the platform to support many more devices, and expanding its configurable layers past the graphics stack, and into many others. He has this to say about what has been going on recently:

Ever since Jon joined Esper, I’ve decided to continue his work. If you join our Telegram group, you’ll notice that a lot has changed since the last releases like Bliss OS 14.3 or 15.1. In this post, let’s take a look at what’s new in these versions.

Bliss OS v14.10 Release

alt text

Compared to 14.3, the new Bliss OS 14.10 has improved a lot. Although there are some features that I have to remove for example the long iso name to explain what's inside the build or Gearlock (while it is a really good recovery solution for Android-x86, I still decided to remove it because it need to be rewritten), I've been putting a lot of changes into it, some of them were on my old ProjectSakura-x86 builds. Also, please remember that most of these are also available in Bliss OS 15.8 builds and more on that later.

Here are the new changes :

  • Taskbar apps like farmerbb's Taskbar or axel358's Smart Dock are being updated to the latest.
  • Kernel has been updated to 5.15.x, this is the same kernel I use on PS-x86 but now with more optimization & hardware support. Also mgLRU, eBPF, DMA-BUF Heap, etc are all being enabled.
  • ESDFS is being used to bind mount apps' data just like ChromeOS, this is to fix apps that can't be able to read data or obb on Bliss, causing it to crash.
  • Using Intel's Bluetooth HAL, with some changes from Android-x86 to support more Bluetooth cards than just Intel one.
  • You can now make a list like modprobe.conf at /data/vendor/modules.options or /data/vendor/modules.blocklist if you want to blacklist a module.
  • Bliss can now show the device information just like the old Bliss OS 11 or Android-x86.
  • virt_wifi is now disabled by default, you can still use it with VIRT_WIFI=1
  • If you are using a tablet or convertible laptops that have an accelerometer, our iio sensors can now be able to rotate the screen.
  • PGO optimization for art. This is a feature by Intel to enhance VM workload performance, you can read about it here.
  • AutoFast JNI, this is also another feature by Intel to improve performance on Android running in x86 hardware .
  • zram is enabled by default with zstd compression.
  • aptX & aptX HD Bluetooth codecs support using Android 13's encoders. Bliss is the first Android build on x86 hardware to get this publicly.
  • toybox is being upstreamed with additional tools such as eject or rfkill. Also, we've included usb.ids and pci.ids for lsusb & lspci so you can check the USB or PCI devices name.
  • If you want to mount all of your partitions into Bliss, add INTERNAL_MOUNT=1 into the cmdline.
  • If you want to try AOSP's experimental "PC Mode", add PC_MODE=1 into the cmdline and try.
  • If you want your Bliss OS build to be recognized as a Google Play Games for PC image, add HPE=1 into the cmdline and reset Play Store.
  • You can now force your mouse click as touch, this is to help fixing apps that only use touch input only.
  • Mouse acceleration can be disabled ,also scroll wheel too.
  • Night Light is now available.
  • BoringDroid is back.
  • For media, while using OMX.ffmpeg codecs as usual, I also provide Codec2 implementation of ffmpeg codecs, made by Micheal Goffioul. Alongside with that, new VAAPI drivers for newer Intel iGPU & other hardware is also being built to support hardware acceleration decoder. I also include a lot of parameters that you can use to get the best result from Bliss OS, you can find it at our Docs.
  • For graphics, our graphics stack is being improved significantly compared to the previous builds, not only that, like media, we provide a lot of options through parameters too. You can see some of our changes here like :
    • Vulkan is now being enabled by default. VULKAN=1 is dead, long live VULKAN=1.
    • Mesa is being updated to latest version (23.1) with LLVM16 for AMDGPUs.
    • Also in Mesa we've activated xmlconfig, with this you can create custom configuration for apps & games related to graphics like spoofing GPUs name & vendor. We will update more information in our Docs soon.
    • While we include a lot of Gralloc & HWC options and we pick the best one depending on what GPU Bliss is running. So if you don't want to play with any of this, you can just be sure that you are running the best one that is being tested by us & the community.
    • For minigbm (and all the different variations that we have), you can switch to Gralloc4 with GRALLOC4_MINIGBM=1 parameter.
    • You can force OpenGLES version with FORCE_GLES=<version> parameter.
    • For software rendering solutions, not only we are using Swiftshader, but also SwANGLE. A combination of ANGLE EGL driver & SwiftShader Vulkan made by Google. SwANGLE is already being used on Android 13 but we've backported it.

And for the first time, Bliss is using the new KernelSU for root solution. Not only that, Bliss OS is the first x86_64 Android build ever to integrate KernelSU into it.

alt text

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

Bliss OS v15.8 Release

alt text

Bliss OS 15.8 has a different starting point than Bliss OS 15.1. Firstly, Bliss OS 15.8 is based on Android 12L unlike 15.1 which uses Android 12. Second, Bliss OS 15.8 common tree (device/generic/common) is based on my 14.10 tree with a few patches instead of using 15.1 one. Which is why I said that most of the new features from 14.10 are also available on 15.8. All the changes you see in 14.10 are also in this version, but with Android 12L instead.

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

The return of Bliss OS Surface Builds

alt text

For Bliss OS, Surface Builds used to be a thing in Bliss OS 11 days with a few builds available. Now we’re happy to announce that we’re bringing back the build with a newer kernel (5.15) using patches from linux-surface and using the latest ipts/ithc kernel driver as well as iptsd daemon to support touchscreen.

*NOTE : Not every Microsoft Surface device has to install surface build to make it work, some can just use generic builds, please check our Documentation for more info.*

Releases

HMTheBoy154 has been working on a super secret project for Bliss, and we are happy to announce the initial beta release of Bliss OS v16.6 (Android 13) for x86_64v2 PC’s, laptops, tablets, etc. Check the release notes for that below.

Bliss OS v16 Beta Release

alt text

Yes, you heard that right. Today I'm happy to announce the first public beta build of Bliss OS 16. The development has already started since October 2022 and I've been working together with not only Android-x86 members & contributors, but also with BlissROMs members and we've made a lot of progress since then. We even work with the LibreMobileOS team to fix some issues like freeform.

Currently BlissOS 16 is on 16.7 to match with the version on BlissROMs. While it’s still on Beta stage, we can't wait to release our new images so you can experience them.

New Bliss OS Logo Announcement

With the Bliss OS 16 announcement, Designer XelXen (aka WildWaze) has also been working with us on a redesigned logo for this and future releases. Not only that, he also included some new wallpapers for us to match with this new design elements.

“The new logo of BlissOS depicts a human figure standing in between petals of lotus, representing the transparency and diversity of the operating system. The figure also holds a perfectly shaped lotus flower, which is the emblem of BlissLabs and perfection.”
Logo 1Logo 2
alt textalt text
Wallpaper 1Wallpaper 2
alt textalt text
Wallpaper 3Wallpaper 4
alt textalt text

Android-Generic Project Manager Release

We are excited to announce the release of Android-Generic Project Manager (AGPM), a tool that makes it easier to build and configure AOSP based projects. AGPM provides a number of features that can help you save time and effort, including:

  • Automatic repo init: AGPM can automatically initialize a new AOSP project or update an existing one.
  • Python virtualenv support: AGPM can wrap your project in a Python virtualenv, which allows you to install packages and run scripts without affecting the rest of your system (quite handy when you are using a shared server over ssh and do not have root access for installing packages).
  • Check Project Status: AGPM can check a project folders repos against the manifest, and it will build a list of any repos with uncommitted changes, or if the repos are not pushed yet.
  • Option to push changes: Depending on what Update Checking finds, you can push your updates to the repos found to be behind
  • Common Tools: Create New, Update, Delete, etc.

Screenshots:

alt text

(Main Menu window: Zenity mode)

alt text

(Check Project Status results: Zenity mode)

Compatibility:

AGPM is designed to be flexible and extensible, so you can add your own project configurations and features. Currently, we support the following projects:

  • AOSP
  • Bliss ROM
  • Lineage OS
  • Bliss OS

We have a planned features list a mile long, and we are always working to add support for more projects. If you have any feedback or suggestions, please feel free to open an issue on the AGPM GitHub repository.

We hope you find AGPM to be a useful tool for building and configuring AOSP based projects.

Android-Generic Project (v2023) Release

We are excited to announce the release of Android-Generic Project (v2023), a major update that brings many new features and improvements.

Key Features

  • Support for multiple targets: AG v2023 can now be used to build images for a variety of targets, including Android phones, tablets, Raspberry Pi, emulators, TVs, and PCs. As usual, we start things out with the PC target, and let that act as an example for the rest.
  • Target-based system: AG v2023 uses a new target-based system that makes it easier to build images for specific targets.
  • Target variants: AG v2023 now supports target variants, which allow you to build images with different configurations for different targets. This system is used to have separate base structures for targets. So for the PC builds (target), we will have the variants: Android-x86 base, Bliss OS base, Bliss OS Go, etc.
  • Conditions for menu items: AG v2023 allows you to use conditions to control the availability of menu items. This makes it possible to create more complex and flexible menus.
  • Addon templates: AG v2023 includes addon templates that you can use to create your own addons. Addons are a great way to extend the functionality of AG.
  • Public and private addons: AG v2023 supports both public and private addons. Public addons are available to everyone, while private addons are only available to a select group of users.

Updates

In addition to the new features listed above, AG v2023 also includes a number of updates and improvements. These include:

  • Updates to the easy-menu system for more dynamic menu options.
  • A new targets based system.
  • The ability to add target variants.
  • The ability to lock the process with conditions per option.
  • Updated api-32 support.
  • Added api-33 support.
  • Reworked manifest structure to include in targets.
  • Added addon template for contributors to use to create their own addons.
  • Added Targets template for contributors to use to create their own targets.
  • Reworked open/private addon structure and added new addons.

Generic/PC Addons

The following new addons have been added for generic/PC targets:

  • Configurable battery stats addon
  • Rotation/orientation configuration options through Grub
  • Expanded LMKD configuration addon
  • LMKD tuning options through Grub
  • Memory tuning options through Grub
  • Performance tuning options through Grub

Licensed Addons

The following new addons have been added for licensed targets:

  • Recents tuning addon
  • Addons for locking various features
  • Customizing new user functions addon
  • Configuring packages on boot (hide/disable/unhide/enable)
  • Addon for locking the ability for the user to change settings

Special Requests? contact us

We hope you enjoy these new features and improvements!

Bliss Broad Apparatus Support System (Bliss-Bass)

(Automated Vendor Customization Layer for Bliss OS / Bliss OS Go)

Bliss Broad Apparatus Support System (Bliss-Bass) is an automated vendor customization layer for Bliss OS / Bliss OS Go (and eventually BlissROM). It is a toolkit that can be used to help with rebranding, customizations, and app changes for Bliss OS based builds. The toolkit comes with a variety of functions, including:

  • An autopatch function that applies all required changes to the Bliss OS build.
  • The ability to define custom sets of changes to be applied before customization.
  • Integration with AOSP's build system, which allows a variety of tools to be accessed before the lunch process starts.
  • The ability to display a customization menu from the pre-lunch hook, using either dialog or zenity, depending on whether or not a GUI is detected.

The Bliss-Bass toolkit is designed to make it easier for users and companies to start off using Bliss for their products. By automating many of the tasks involved in rebranding and customization, Bliss-Bass can save time and energy, allowing users or engineers to focus on the creative parts of the process.

Here are some additional details about the autopatch function:

  • The autopatch function is available from the command line using ‘check_patchsets’ or through the menu.
  • The autopatch function can be used to apply a variety of changes to the Bliss OS build, including changes to the kernel, bootloader, system image, and vendor image.
  • The autopatch function can be used to define custom sets of changes to be applied. This can be useful for organizations that need to make specific changes to Bliss OS for their own products.

Just like some of our other toolkits, this project integrates itself into AOSP’s build system and allows a variety of tools to be accessed before the lunch process starts:

alt text

And when you trigger the customization menu to display from the pre-lunch hook, it can use ‘dialog’ if there is no display or GUI detected:

alt text

Or zenity, to display the menu options if it does detect a GUI:

alt text

Further development is being made to add even more options and tools to Bliss-Bass. The project is open source and available on GitHub at https://github.com/BlissRoms-x86/platform_vendor_branding.

Bliss OS Linux Hybrid Preview

(Bliss OS Go edition)

alt text

Read More in last weeks release post: Bliss OS Linux Hybrid Preview

New Collaborations

LibreMobileOS

alt text

We are excited to announce our collaboration with LibreMobileOS, a project that develops and promotes privacy-focused mobile operating systems. As part of this collaboration, we have been working with LibreMobileOS to develop LMODroid-x86, a version of their operating system that is designed to run on x86-based tablets and PCs.

LMODroid-x86 was created using Android-Generic Project v2023, a free and open-source prototyping toolkit used to create x86 based Android projects, and other targets. The operating system will be pre-installed with a variety of privacy-focused applications, including a web browser, desktop mode, digital wellbeing (coming soon), and file manager.

We believe that LMODroid-x86 will be a valuable addition to the LibreMobileOS ecosystem. The operating system will provide users with a privacy-focused alternative to the major mobile operating systems, and it will help to promote the use of open-source software. We would like to thank LibreMobileOS for their collaboration on this project. We are excited to work with them to develop LMODroid-x86 and to help make it available to users around the world.

We would also like to thank HMTheBoy154 for their contributions to this project. Their hard work and dedication has been essential to the success of the project.

We are confident that LMODroid-x86 will be a valuable resource for users who are looking for a privacy-focused and secure mobile operating system. We look forward to sharing more information about the project in the coming months.

· 2 min read
Jon West

This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware.

Features:

  • Based on Xubuntu 22.04.x LTS

  • Stripped of Snap and other Ubuntu apps/telemetry

  • Includes Ubuntu expanded hardware support drivers

  • QEMU based Bliss OS session

  • Bliss OS grub menu options (for running on bare-metal hardware)

  • Includes basic update and management scripts for Android side

  • Lots more, but we are just getting started…

Download the preview:

https://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU

Live Boot Info:

User: Live

Password: evolution

Step 1:

Live boot (boots to xfce4)

Step 2:

Run installer (last step shows pop-up to specify data.img size), Done.

Step 3:

Reboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)

Notes:

Autologin is enabled, will launch last loaded session choice from Login screen

· 2 min read
Jon West

alt text

[Announcement] Bliss OS Go (Preview Release)

Bliss OS Go is a new variation of Bliss OS that is designed to run on low-end devices. It is based on Android Go, which is a version of Android that is optimized for devices with limited resources. Bliss OS Go includes a number of features that are designed to improve performance, battery life and usability on low-end devices, such as:

  • A lower-spec config for recents
  • A lower-spec config for task management
  • Expanded configuration options
  • And much more

Bliss OS Go is currently in release for a number of low-end devices, including:

  • Intel Atom devices
  • Intel Celeron N/M devices
  • Intel Pentium devices
  • AMD APU/CPUs

If you have a low-end device and you are looking for a new operating system that will improve performance and battery life, then Bliss OS Go is a great option.

Here are some additional details about the features of Bliss OS Go:

  • Lower-spec configs for recents and task management: These configs reduce the amount of resources that are used by the recents and task management apps, which can improve performance and battery life.
  • Expanded LMKD configuration: LMKD is a Linux kernel module that can be used to improve performance and battery life by limiting the number of interrupts that are generated by hardware devices. The expanded LMKD configuration in Bliss OS Go makes it easier to tune LMKD for optimal performance and battery life.
  • Rotation/orientation configuration options through Grub: Rotation/orientation configuration options can also be accessed through Grub. This makes it easy to change the rotation and orientation of the Bliss OS Go display without having to reflash the image.

More Info

Warning, due to the low-spec nature of the devices we are targeting with these builds, we do not include native-bridge by default on Bliss OS Go builds.

Downloads can be found on Sourceforge: https://sourceforge.net/projects/blissos-dev/files/BlissOS-Go/FOSS/20230519/

Configuration documentation for some of the features found in Bliss OS Go can be found on our docs site: https://docs.blissos.org/configuration/configuration-through-command-line-parameters/

· 2 min read
Jon West

alt text

New Collaborations

[pilot] EIDU - Taifa ElimuTab

Bliss Co-Labs and EIDU, an organization that builds innovative solutions to digitize education in low and middle-income countries at scale, have partnered to bring an Android Go 12.1 variation of Bliss OS to the aging Windows tablets used by Kenya public primary schools. The pilot program aims to allow millions of devices a second-life through the use of Bliss OS, which is specifically tailored to the devices' hardware and capabilities.

Bliss OS is a lightweight operating system that is designed to run on x86 Windows & Linux devices. It is based on Android, but it has been optimized for performance and battery life. Bliss OS Go is a version of Bliss OS that is designed for lower-powered devices, such as the Intel Atom based Windows tablets that are used in Kenya.

The pilot program will test the feasibility of deploying Bliss OS Go on the Windows tablets. If the pilot is successful, it could lead to the deployment of Bliss OS Go on millions of devices, which would provide students in Kenya with access to a more reliable and affordable educational platform.

Here are some of the benefits of using Bliss OS Go on the Windows tablets:

  • Improved performance: Bliss OS Go is designed to run on low-powered devices, so it can provide a significant performance boost over Windows. This will make it easier for students to use the devices for learning.
  • Longer battery life: Bliss OS Go is also designed to conserve battery life, so students can use the devices for longer periods of time without having to worry about running out of power.
  • More affordable: Bliss OS Go is a free and open-source operating system, so it is more affordable than Windows. This will make it possible for schools to deploy Bliss OS Go on more devices, which will benefit more students.

We believe that Bliss OS Go has the potential to make a significant impact on education in Kenya. We are excited to partner with EIDU on this pilot program and we look forward to seeing the results.

· 3 min read
Jon West

As a business, the typical way to do things is to file for patents, and protect your product or idea, and your product team produces the development design and manages updating the product for its lifecycle. The downside to that is that only your team has the ability to spot its flaws, make it better, or see other avenues where it could be used. This is not the case with an open-source project lifecycle. The product you develop is open to the community to use, inspect and improve upon. This helps accelerate the development of the idea or product by allowing open-innovation to take place.

Dismissing the current arguments against open-source development

Can people take your code and use it for their own projects? The answer is yes, but this is not a bad thing at all. This is one of the things that empowers your idea by allowing you to see the improvements they made and how they made them, then adding those improvements into your code base.

Can people alter your code to include malicious code? This depends on how well you manage the pull requests for your code, as even the Linux Kernel has had some bad-actors try and slip in malicious code before, and it was caught by the community. So you just need to make sure you define a strict set of rules for your project maintainers to follow when it comes to merging pull-requests from the community into your code base.

Can you make money off Open-Source code? The answer to this is yes, and in many ways. It all comes down to how you design your project and the licensing you choose for it. As many open-source licenses do allow licensing, and support contracts, and many more options can be written into the standard licensing agreements.

How have we leveraged open-source for businesses?

As a consumer, you get to use the products of our work in open-source by testing our work (Bliss OS, Waydroid, Android-x86) on your laptop, tablet, desktop, server, etc. at no cost. As a business, our projects are limited in use, but can be licensed for inclusion into a project, and we offer development contracts to help businesses further develop their products, with our projects included. We have also created toolkits for businesses to use for free in the past, demonstrating the power of rapid-prototyping through the use of our services.

For other businesses, not used to working in open-source, there will always be hesitations. But that doesn't mean we can't make it work. We have had some restraints on projects in the past, and the solution for those proprietary constraints is typically to build a system that can handle allowing the end user to use it, while keeping all the private bits, private still. A perfect example of this is how Google Play, Widevine, libndk-translation, Houdini, and other private blobs are included in our projects. We have even gone one step further in this where allowed, and produced tools for the rest of the open-source community to use, that allows them to benefit from using the proprietary blobs, while keeping the businesses private intents intact.

It really all comes down to the mental attitude behind your innovation, and all in how you spin it. It's about time the market starts thinking on reasons why they should start going open-source, and not looking for all the reasons why they shouldn't.

- + \ No newline at end of file diff --git a/tags/blissoslinux/index.html b/tags/blissoslinux/index.html index 3be2881..f1e9e2d 100644 --- a/tags/blissoslinux/index.html +++ b/tags/blissoslinux/index.html @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@

One post tagged with "blissoslinux"

View All Tags

· 15 min read
Jon West
HMTheBoy154

alt text

The last couple months have been pretty busy at Bliss. Since January/February, we’ve been able to get a lot of work done on many different fronts. With my return to Bliss, we’ve started a collaborative contract development and consulting firm named Bliss Co-Labs, and have been working on a few client projects. Without letting the open-source side of things skip a beat, we’ve also been busy making changes and working on quite a few new updates and projects. So we think it’s about time to at least announce a few of the changes we have in store, as well as a few announcements for new projects or major project updates.

Updates

Let’s start with the release updates first. HMTheBoy154 has been busy pushing out some truly amazing innovations for Bliss OS, bringing the platform to support many more devices, and expanding its configurable layers past the graphics stack, and into many others. He has this to say about what has been going on recently:

Ever since Jon joined Esper, I’ve decided to continue his work. If you join our Telegram group, you’ll notice that a lot has changed since the last releases like Bliss OS 14.3 or 15.1. In this post, let’s take a look at what’s new in these versions.

Bliss OS v14.10 Release

alt text

Compared to 14.3, the new Bliss OS 14.10 has improved a lot. Although there are some features that I have to remove for example the long iso name to explain what's inside the build or Gearlock (while it is a really good recovery solution for Android-x86, I still decided to remove it because it need to be rewritten), I've been putting a lot of changes into it, some of them were on my old ProjectSakura-x86 builds. Also, please remember that most of these are also available in Bliss OS 15.8 builds and more on that later.

Here are the new changes :

  • Taskbar apps like farmerbb's Taskbar or axel358's Smart Dock are being updated to the latest.
  • Kernel has been updated to 5.15.x, this is the same kernel I use on PS-x86 but now with more optimization & hardware support. Also mgLRU, eBPF, DMA-BUF Heap, etc are all being enabled.
  • ESDFS is being used to bind mount apps' data just like ChromeOS, this is to fix apps that can't be able to read data or obb on Bliss, causing it to crash.
  • Using Intel's Bluetooth HAL, with some changes from Android-x86 to support more Bluetooth cards than just Intel one.
  • You can now make a list like modprobe.conf at /data/vendor/modules.options or /data/vendor/modules.blocklist if you want to blacklist a module.
  • Bliss can now show the device information just like the old Bliss OS 11 or Android-x86.
  • virt_wifi is now disabled by default, you can still use it with VIRT_WIFI=1
  • If you are using a tablet or convertible laptops that have an accelerometer, our iio sensors can now be able to rotate the screen.
  • PGO optimization for art. This is a feature by Intel to enhance VM workload performance, you can read about it here.
  • AutoFast JNI, this is also another feature by Intel to improve performance on Android running in x86 hardware .
  • zram is enabled by default with zstd compression.
  • aptX & aptX HD Bluetooth codecs support using Android 13's encoders. Bliss is the first Android build on x86 hardware to get this publicly.
  • toybox is being upstreamed with additional tools such as eject or rfkill. Also, we've included usb.ids and pci.ids for lsusb & lspci so you can check the USB or PCI devices name.
  • If you want to mount all of your partitions into Bliss, add INTERNAL_MOUNT=1 into the cmdline.
  • If you want to try AOSP's experimental "PC Mode", add PC_MODE=1 into the cmdline and try.
  • If you want your Bliss OS build to be recognized as a Google Play Games for PC image, add HPE=1 into the cmdline and reset Play Store.
  • You can now force your mouse click as touch, this is to help fixing apps that only use touch input only.
  • Mouse acceleration can be disabled ,also scroll wheel too.
  • Night Light is now available.
  • BoringDroid is back.
  • For media, while using OMX.ffmpeg codecs as usual, I also provide Codec2 implementation of ffmpeg codecs, made by Micheal Goffioul. Alongside with that, new VAAPI drivers for newer Intel iGPU & other hardware is also being built to support hardware acceleration decoder. I also include a lot of parameters that you can use to get the best result from Bliss OS, you can find it at our Docs.
  • For graphics, our graphics stack is being improved significantly compared to the previous builds, not only that, like media, we provide a lot of options through parameters too. You can see some of our changes here like :
    • Vulkan is now being enabled by default. VULKAN=1 is dead, long live VULKAN=1.
    • Mesa is being updated to latest version (23.1) with LLVM16 for AMDGPUs.
    • Also in Mesa we've activated xmlconfig, with this you can create custom configuration for apps & games related to graphics like spoofing GPUs name & vendor. We will update more information in our Docs soon.
    • While we include a lot of Gralloc & HWC options and we pick the best one depending on what GPU Bliss is running. So if you don't want to play with any of this, you can just be sure that you are running the best one that is being tested by us & the community.
    • For minigbm (and all the different variations that we have), you can switch to Gralloc4 with GRALLOC4_MINIGBM=1 parameter.
    • You can force OpenGLES version with FORCE_GLES=<version> parameter.
    • For software rendering solutions, not only we are using Swiftshader, but also SwANGLE. A combination of ANGLE EGL driver & SwiftShader Vulkan made by Google. SwANGLE is already being used on Android 13 but we've backported it.

And for the first time, Bliss is using the new KernelSU for root solution. Not only that, Bliss OS is the first x86_64 Android build ever to integrate KernelSU into it.

alt text

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

Bliss OS v15.8 Release

alt text

Bliss OS 15.8 has a different starting point than Bliss OS 15.1. Firstly, Bliss OS 15.8 is based on Android 12L unlike 15.1 which uses Android 12. Second, Bliss OS 15.8 common tree (device/generic/common) is based on my 14.10 tree with a few patches instead of using 15.1 one. Which is why I said that most of the new features from 14.10 are also available on 15.8. All the changes you see in 14.10 are also in this version, but with Android 12L instead.

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

The return of Bliss OS Surface Builds

alt text

For Bliss OS, Surface Builds used to be a thing in Bliss OS 11 days with a few builds available. Now we’re happy to announce that we’re bringing back the build with a newer kernel (5.15) using patches from linux-surface and using the latest ipts/ithc kernel driver as well as iptsd daemon to support touchscreen.

*NOTE : Not every Microsoft Surface device has to install surface build to make it work, some can just use generic builds, please check our Documentation for more info.*

Releases

HMTheBoy154 has been working on a super secret project for Bliss, and we are happy to announce the initial beta release of Bliss OS v16.6 (Android 13) for x86_64v2 PC’s, laptops, tablets, etc. Check the release notes for that below.

Bliss OS v16 Beta Release

alt text

Yes, you heard that right. Today I'm happy to announce the first public beta build of Bliss OS 16. The development has already started since October 2022 and I've been working together with not only Android-x86 members & contributors, but also with BlissROMs members and we've made a lot of progress since then. We even work with the LibreMobileOS team to fix some issues like freeform.

Currently BlissOS 16 is on 16.7 to match with the version on BlissROMs. While it’s still on Beta stage, we can't wait to release our new images so you can experience them.

New Bliss OS Logo Announcement

With the Bliss OS 16 announcement, Designer XelXen (aka WildWaze) has also been working with us on a redesigned logo for this and future releases. Not only that, he also included some new wallpapers for us to match with this new design elements.

“The new logo of BlissOS depicts a human figure standing in between petals of lotus, representing the transparency and diversity of the operating system. The figure also holds a perfectly shaped lotus flower, which is the emblem of BlissLabs and perfection.”
Logo 1Logo 2
alt textalt text
Wallpaper 1Wallpaper 2
alt textalt text
Wallpaper 3Wallpaper 4
alt textalt text

Android-Generic Project Manager Release

We are excited to announce the release of Android-Generic Project Manager (AGPM), a tool that makes it easier to build and configure AOSP based projects. AGPM provides a number of features that can help you save time and effort, including:

  • Automatic repo init: AGPM can automatically initialize a new AOSP project or update an existing one.
  • Python virtualenv support: AGPM can wrap your project in a Python virtualenv, which allows you to install packages and run scripts without affecting the rest of your system (quite handy when you are using a shared server over ssh and do not have root access for installing packages).
  • Check Project Status: AGPM can check a project folders repos against the manifest, and it will build a list of any repos with uncommitted changes, or if the repos are not pushed yet.
  • Option to push changes: Depending on what Update Checking finds, you can push your updates to the repos found to be behind
  • Common Tools: Create New, Update, Delete, etc.

Screenshots:

alt text

(Main Menu window: Zenity mode)

alt text

(Check Project Status results: Zenity mode)

Compatibility:

AGPM is designed to be flexible and extensible, so you can add your own project configurations and features. Currently, we support the following projects:

  • AOSP
  • Bliss ROM
  • Lineage OS
  • Bliss OS

We have a planned features list a mile long, and we are always working to add support for more projects. If you have any feedback or suggestions, please feel free to open an issue on the AGPM GitHub repository.

We hope you find AGPM to be a useful tool for building and configuring AOSP based projects.

Android-Generic Project (v2023) Release

We are excited to announce the release of Android-Generic Project (v2023), a major update that brings many new features and improvements.

Key Features

  • Support for multiple targets: AG v2023 can now be used to build images for a variety of targets, including Android phones, tablets, Raspberry Pi, emulators, TVs, and PCs. As usual, we start things out with the PC target, and let that act as an example for the rest.
  • Target-based system: AG v2023 uses a new target-based system that makes it easier to build images for specific targets.
  • Target variants: AG v2023 now supports target variants, which allow you to build images with different configurations for different targets. This system is used to have separate base structures for targets. So for the PC builds (target), we will have the variants: Android-x86 base, Bliss OS base, Bliss OS Go, etc.
  • Conditions for menu items: AG v2023 allows you to use conditions to control the availability of menu items. This makes it possible to create more complex and flexible menus.
  • Addon templates: AG v2023 includes addon templates that you can use to create your own addons. Addons are a great way to extend the functionality of AG.
  • Public and private addons: AG v2023 supports both public and private addons. Public addons are available to everyone, while private addons are only available to a select group of users.

Updates

In addition to the new features listed above, AG v2023 also includes a number of updates and improvements. These include:

  • Updates to the easy-menu system for more dynamic menu options.
  • A new targets based system.
  • The ability to add target variants.
  • The ability to lock the process with conditions per option.
  • Updated api-32 support.
  • Added api-33 support.
  • Reworked manifest structure to include in targets.
  • Added addon template for contributors to use to create their own addons.
  • Added Targets template for contributors to use to create their own targets.
  • Reworked open/private addon structure and added new addons.

Generic/PC Addons

The following new addons have been added for generic/PC targets:

  • Configurable battery stats addon
  • Rotation/orientation configuration options through Grub
  • Expanded LMKD configuration addon
  • LMKD tuning options through Grub
  • Memory tuning options through Grub
  • Performance tuning options through Grub

Licensed Addons

The following new addons have been added for licensed targets:

  • Recents tuning addon
  • Addons for locking various features
  • Customizing new user functions addon
  • Configuring packages on boot (hide/disable/unhide/enable)
  • Addon for locking the ability for the user to change settings

Special Requests? contact us

We hope you enjoy these new features and improvements!

Bliss Broad Apparatus Support System (Bliss-Bass)

(Automated Vendor Customization Layer for Bliss OS / Bliss OS Go)

Bliss Broad Apparatus Support System (Bliss-Bass) is an automated vendor customization layer for Bliss OS / Bliss OS Go (and eventually BlissROM). It is a toolkit that can be used to help with rebranding, customizations, and app changes for Bliss OS based builds. The toolkit comes with a variety of functions, including:

  • An autopatch function that applies all required changes to the Bliss OS build.
  • The ability to define custom sets of changes to be applied before customization.
  • Integration with AOSP's build system, which allows a variety of tools to be accessed before the lunch process starts.
  • The ability to display a customization menu from the pre-lunch hook, using either dialog or zenity, depending on whether or not a GUI is detected.

The Bliss-Bass toolkit is designed to make it easier for users and companies to start off using Bliss for their products. By automating many of the tasks involved in rebranding and customization, Bliss-Bass can save time and energy, allowing users or engineers to focus on the creative parts of the process.

Here are some additional details about the autopatch function:

  • The autopatch function is available from the command line using ‘check_patchsets’ or through the menu.
  • The autopatch function can be used to apply a variety of changes to the Bliss OS build, including changes to the kernel, bootloader, system image, and vendor image.
  • The autopatch function can be used to define custom sets of changes to be applied. This can be useful for organizations that need to make specific changes to Bliss OS for their own products.

Just like some of our other toolkits, this project integrates itself into AOSP’s build system and allows a variety of tools to be accessed before the lunch process starts:

alt text

And when you trigger the customization menu to display from the pre-lunch hook, it can use ‘dialog’ if there is no display or GUI detected:

alt text

Or zenity, to display the menu options if it does detect a GUI:

alt text

Further development is being made to add even more options and tools to Bliss-Bass. The project is open source and available on GitHub at https://github.com/BlissRoms-x86/platform_vendor_branding.

Bliss OS Linux Hybrid Preview

(Bliss OS Go edition)

alt text

Read More in last weeks release post: Bliss OS Linux Hybrid Preview

New Collaborations

LibreMobileOS

alt text

We are excited to announce our collaboration with LibreMobileOS, a project that develops and promotes privacy-focused mobile operating systems. As part of this collaboration, we have been working with LibreMobileOS to develop LMODroid-x86, a version of their operating system that is designed to run on x86-based tablets and PCs.

LMODroid-x86 was created using Android-Generic Project v2023, a free and open-source prototyping toolkit used to create x86 based Android projects, and other targets. The operating system will be pre-installed with a variety of privacy-focused applications, including a web browser, desktop mode, digital wellbeing (coming soon), and file manager.

We believe that LMODroid-x86 will be a valuable addition to the LibreMobileOS ecosystem. The operating system will provide users with a privacy-focused alternative to the major mobile operating systems, and it will help to promote the use of open-source software. We would like to thank LibreMobileOS for their collaboration on this project. We are excited to work with them to develop LMODroid-x86 and to help make it available to users around the world.

We would also like to thank HMTheBoy154 for their contributions to this project. Their hard work and dedication has been essential to the success of the project.

We are confident that LMODroid-x86 will be a valuable resource for users who are looking for a privacy-focused and secure mobile operating system. We look forward to sharing more information about the project in the coming months.

- + \ No newline at end of file diff --git a/tags/eidu/index.html b/tags/eidu/index.html index 100c7f3..5c8d622 100644 --- a/tags/eidu/index.html +++ b/tags/eidu/index.html @@ -13,13 +13,13 @@ - +

One post tagged with "eidu"

View All Tags

· 2 min read
Jon West

alt text

New Collaborations

[pilot] EIDU - Taifa ElimuTab

Bliss Co-Labs and EIDU, an organization that builds innovative solutions to digitize education in low and middle-income countries at scale, have partnered to bring an Android Go 12.1 variation of Bliss OS to the aging Windows tablets used by Kenya public primary schools. The pilot program aims to allow millions of devices a second-life through the use of Bliss OS, which is specifically tailored to the devices' hardware and capabilities.

Bliss OS is a lightweight operating system that is designed to run on x86 Windows & Linux devices. It is based on Android, but it has been optimized for performance and battery life. Bliss OS Go is a version of Bliss OS that is designed for lower-powered devices, such as the Intel Atom based Windows tablets that are used in Kenya.

The pilot program will test the feasibility of deploying Bliss OS Go on the Windows tablets. If the pilot is successful, it could lead to the deployment of Bliss OS Go on millions of devices, which would provide students in Kenya with access to a more reliable and affordable educational platform.

Here are some of the benefits of using Bliss OS Go on the Windows tablets:

  • Improved performance: Bliss OS Go is designed to run on low-powered devices, so it can provide a significant performance boost over Windows. This will make it easier for students to use the devices for learning.
  • Longer battery life: Bliss OS Go is also designed to conserve battery life, so students can use the devices for longer periods of time without having to worry about running out of power.
  • More affordable: Bliss OS Go is a free and open-source operating system, so it is more affordable than Windows. This will make it possible for schools to deploy Bliss OS Go on more devices, which will benefit more students.

We believe that Bliss OS Go has the potential to make a significant impact on education in Kenya. We are excited to partner with EIDU on this pilot program and we look forward to seeing the results.

- + \ No newline at end of file diff --git a/tags/hybrid/index.html b/tags/hybrid/index.html index d5d13d6..670cd79 100644 --- a/tags/hybrid/index.html +++ b/tags/hybrid/index.html @@ -13,13 +13,13 @@ - +

One post tagged with "hybrid"

View All Tags

· 2 min read
Jon West

This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware.

Features:

  • Based on Xubuntu 22.04.x LTS

  • Stripped of Snap and other Ubuntu apps/telemetry

  • Includes Ubuntu expanded hardware support drivers

  • QEMU based Bliss OS session

  • Bliss OS grub menu options (for running on bare-metal hardware)

  • Includes basic update and management scripts for Android side

  • Lots more, but we are just getting started…

Download the preview:

https://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU

Live Boot Info:

User: Live

Password: evolution

Step 1:

Live boot (boots to xfce4)

Step 2:

Run installer (last step shows pop-up to specify data.img size), Done.

Step 3:

Reboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)

Notes:

Autologin is enabled, will launch last loaded session choice from Login screen

- + \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 3132276..584ab4b 100644 --- a/tags/index.html +++ b/tags/index.html @@ -13,13 +13,13 @@ - + - + \ No newline at end of file diff --git a/tags/linux/index.html b/tags/linux/index.html index 450dfb4..e8ff1cf 100644 --- a/tags/linux/index.html +++ b/tags/linux/index.html @@ -13,13 +13,13 @@ - +

One post tagged with "linux"

View All Tags

· 2 min read
Jon West

This will be a new addition to the Bliss OS lineup, featuring a number of advancements to running Android on PC hardware. These builds bring the manageability of a full blown Linux distro, along with an Android side for usability and compatibility. It also features a QEMU based Bliss OS session to help with configuration along side Linux, and Bliss OS specific grub menu options to allow the Android side to boot on bare-metal, taking full advantage of the hardware.

Features:

  • Based on Xubuntu 22.04.x LTS

  • Stripped of Snap and other Ubuntu apps/telemetry

  • Includes Ubuntu expanded hardware support drivers

  • QEMU based Bliss OS session

  • Bliss OS grub menu options (for running on bare-metal hardware)

  • Includes basic update and management scripts for Android side

  • Lots more, but we are just getting started…

Download the preview:

https://mega.nz/file/rxgg2CIa#Xe54bBwyrrYZUnawkktKKxnJm9KqHSRPhrud7oXfqaU

Live Boot Info:

User: Live

Password: evolution

Step 1:

Live boot (boots to xfce4)

Step 2:

Run installer (last step shows pop-up to specify data.img size), Done.

Step 3:

Reboot (hitting esc once when rebooting to show Grub menu, and select Bliss OS, or xubuntu)

Notes:

Autologin is enabled, will launch last loaded session choice from Login screen

- + \ No newline at end of file diff --git a/tags/lmodroid/index.html b/tags/lmodroid/index.html index 18a4bdc..f7ffa7b 100644 --- a/tags/lmodroid/index.html +++ b/tags/lmodroid/index.html @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@

One post tagged with "lmodroid"

View All Tags

· 15 min read
Jon West
HMTheBoy154

alt text

The last couple months have been pretty busy at Bliss. Since January/February, we’ve been able to get a lot of work done on many different fronts. With my return to Bliss, we’ve started a collaborative contract development and consulting firm named Bliss Co-Labs, and have been working on a few client projects. Without letting the open-source side of things skip a beat, we’ve also been busy making changes and working on quite a few new updates and projects. So we think it’s about time to at least announce a few of the changes we have in store, as well as a few announcements for new projects or major project updates.

Updates

Let’s start with the release updates first. HMTheBoy154 has been busy pushing out some truly amazing innovations for Bliss OS, bringing the platform to support many more devices, and expanding its configurable layers past the graphics stack, and into many others. He has this to say about what has been going on recently:

Ever since Jon joined Esper, I’ve decided to continue his work. If you join our Telegram group, you’ll notice that a lot has changed since the last releases like Bliss OS 14.3 or 15.1. In this post, let’s take a look at what’s new in these versions.

Bliss OS v14.10 Release

alt text

Compared to 14.3, the new Bliss OS 14.10 has improved a lot. Although there are some features that I have to remove for example the long iso name to explain what's inside the build or Gearlock (while it is a really good recovery solution for Android-x86, I still decided to remove it because it need to be rewritten), I've been putting a lot of changes into it, some of them were on my old ProjectSakura-x86 builds. Also, please remember that most of these are also available in Bliss OS 15.8 builds and more on that later.

Here are the new changes :

  • Taskbar apps like farmerbb's Taskbar or axel358's Smart Dock are being updated to the latest.
  • Kernel has been updated to 5.15.x, this is the same kernel I use on PS-x86 but now with more optimization & hardware support. Also mgLRU, eBPF, DMA-BUF Heap, etc are all being enabled.
  • ESDFS is being used to bind mount apps' data just like ChromeOS, this is to fix apps that can't be able to read data or obb on Bliss, causing it to crash.
  • Using Intel's Bluetooth HAL, with some changes from Android-x86 to support more Bluetooth cards than just Intel one.
  • You can now make a list like modprobe.conf at /data/vendor/modules.options or /data/vendor/modules.blocklist if you want to blacklist a module.
  • Bliss can now show the device information just like the old Bliss OS 11 or Android-x86.
  • virt_wifi is now disabled by default, you can still use it with VIRT_WIFI=1
  • If you are using a tablet or convertible laptops that have an accelerometer, our iio sensors can now be able to rotate the screen.
  • PGO optimization for art. This is a feature by Intel to enhance VM workload performance, you can read about it here.
  • AutoFast JNI, this is also another feature by Intel to improve performance on Android running in x86 hardware .
  • zram is enabled by default with zstd compression.
  • aptX & aptX HD Bluetooth codecs support using Android 13's encoders. Bliss is the first Android build on x86 hardware to get this publicly.
  • toybox is being upstreamed with additional tools such as eject or rfkill. Also, we've included usb.ids and pci.ids for lsusb & lspci so you can check the USB or PCI devices name.
  • If you want to mount all of your partitions into Bliss, add INTERNAL_MOUNT=1 into the cmdline.
  • If you want to try AOSP's experimental "PC Mode", add PC_MODE=1 into the cmdline and try.
  • If you want your Bliss OS build to be recognized as a Google Play Games for PC image, add HPE=1 into the cmdline and reset Play Store.
  • You can now force your mouse click as touch, this is to help fixing apps that only use touch input only.
  • Mouse acceleration can be disabled ,also scroll wheel too.
  • Night Light is now available.
  • BoringDroid is back.
  • For media, while using OMX.ffmpeg codecs as usual, I also provide Codec2 implementation of ffmpeg codecs, made by Micheal Goffioul. Alongside with that, new VAAPI drivers for newer Intel iGPU & other hardware is also being built to support hardware acceleration decoder. I also include a lot of parameters that you can use to get the best result from Bliss OS, you can find it at our Docs.
  • For graphics, our graphics stack is being improved significantly compared to the previous builds, not only that, like media, we provide a lot of options through parameters too. You can see some of our changes here like :
    • Vulkan is now being enabled by default. VULKAN=1 is dead, long live VULKAN=1.
    • Mesa is being updated to latest version (23.1) with LLVM16 for AMDGPUs.
    • Also in Mesa we've activated xmlconfig, with this you can create custom configuration for apps & games related to graphics like spoofing GPUs name & vendor. We will update more information in our Docs soon.
    • While we include a lot of Gralloc & HWC options and we pick the best one depending on what GPU Bliss is running. So if you don't want to play with any of this, you can just be sure that you are running the best one that is being tested by us & the community.
    • For minigbm (and all the different variations that we have), you can switch to Gralloc4 with GRALLOC4_MINIGBM=1 parameter.
    • You can force OpenGLES version with FORCE_GLES=<version> parameter.
    • For software rendering solutions, not only we are using Swiftshader, but also SwANGLE. A combination of ANGLE EGL driver & SwiftShader Vulkan made by Google. SwANGLE is already being used on Android 13 but we've backported it.

And for the first time, Bliss is using the new KernelSU for root solution. Not only that, Bliss OS is the first x86_64 Android build ever to integrate KernelSU into it.

alt text

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

Bliss OS v15.8 Release

alt text

Bliss OS 15.8 has a different starting point than Bliss OS 15.1. Firstly, Bliss OS 15.8 is based on Android 12L unlike 15.1 which uses Android 12. Second, Bliss OS 15.8 common tree (device/generic/common) is based on my 14.10 tree with a few patches instead of using 15.1 one. Which is why I said that most of the new features from 14.10 are also available on 15.8. All the changes you see in 14.10 are also in this version, but with Android 12L instead.

These builds will also be moved from our development branch to our stable branch, so you will soon find these builds on our blissos-x86 sourceforge (where we release our stable builds).

The return of Bliss OS Surface Builds

alt text

For Bliss OS, Surface Builds used to be a thing in Bliss OS 11 days with a few builds available. Now we’re happy to announce that we’re bringing back the build with a newer kernel (5.15) using patches from linux-surface and using the latest ipts/ithc kernel driver as well as iptsd daemon to support touchscreen.

*NOTE : Not every Microsoft Surface device has to install surface build to make it work, some can just use generic builds, please check our Documentation for more info.*

Releases

HMTheBoy154 has been working on a super secret project for Bliss, and we are happy to announce the initial beta release of Bliss OS v16.6 (Android 13) for x86_64v2 PC’s, laptops, tablets, etc. Check the release notes for that below.

Bliss OS v16 Beta Release

alt text

Yes, you heard that right. Today I'm happy to announce the first public beta build of Bliss OS 16. The development has already started since October 2022 and I've been working together with not only Android-x86 members & contributors, but also with BlissROMs members and we've made a lot of progress since then. We even work with the LibreMobileOS team to fix some issues like freeform.

Currently BlissOS 16 is on 16.7 to match with the version on BlissROMs. While it’s still on Beta stage, we can't wait to release our new images so you can experience them.

New Bliss OS Logo Announcement

With the Bliss OS 16 announcement, Designer XelXen (aka WildWaze) has also been working with us on a redesigned logo for this and future releases. Not only that, he also included some new wallpapers for us to match with this new design elements.

“The new logo of BlissOS depicts a human figure standing in between petals of lotus, representing the transparency and diversity of the operating system. The figure also holds a perfectly shaped lotus flower, which is the emblem of BlissLabs and perfection.”
Logo 1Logo 2
alt textalt text
Wallpaper 1Wallpaper 2
alt textalt text
Wallpaper 3Wallpaper 4
alt textalt text

Android-Generic Project Manager Release

We are excited to announce the release of Android-Generic Project Manager (AGPM), a tool that makes it easier to build and configure AOSP based projects. AGPM provides a number of features that can help you save time and effort, including:

  • Automatic repo init: AGPM can automatically initialize a new AOSP project or update an existing one.
  • Python virtualenv support: AGPM can wrap your project in a Python virtualenv, which allows you to install packages and run scripts without affecting the rest of your system (quite handy when you are using a shared server over ssh and do not have root access for installing packages).
  • Check Project Status: AGPM can check a project folders repos against the manifest, and it will build a list of any repos with uncommitted changes, or if the repos are not pushed yet.
  • Option to push changes: Depending on what Update Checking finds, you can push your updates to the repos found to be behind
  • Common Tools: Create New, Update, Delete, etc.

Screenshots:

alt text

(Main Menu window: Zenity mode)

alt text

(Check Project Status results: Zenity mode)

Compatibility:

AGPM is designed to be flexible and extensible, so you can add your own project configurations and features. Currently, we support the following projects:

  • AOSP
  • Bliss ROM
  • Lineage OS
  • Bliss OS

We have a planned features list a mile long, and we are always working to add support for more projects. If you have any feedback or suggestions, please feel free to open an issue on the AGPM GitHub repository.

We hope you find AGPM to be a useful tool for building and configuring AOSP based projects.

Android-Generic Project (v2023) Release

We are excited to announce the release of Android-Generic Project (v2023), a major update that brings many new features and improvements.

Key Features

  • Support for multiple targets: AG v2023 can now be used to build images for a variety of targets, including Android phones, tablets, Raspberry Pi, emulators, TVs, and PCs. As usual, we start things out with the PC target, and let that act as an example for the rest.
  • Target-based system: AG v2023 uses a new target-based system that makes it easier to build images for specific targets.
  • Target variants: AG v2023 now supports target variants, which allow you to build images with different configurations for different targets. This system is used to have separate base structures for targets. So for the PC builds (target), we will have the variants: Android-x86 base, Bliss OS base, Bliss OS Go, etc.
  • Conditions for menu items: AG v2023 allows you to use conditions to control the availability of menu items. This makes it possible to create more complex and flexible menus.
  • Addon templates: AG v2023 includes addon templates that you can use to create your own addons. Addons are a great way to extend the functionality of AG.
  • Public and private addons: AG v2023 supports both public and private addons. Public addons are available to everyone, while private addons are only available to a select group of users.

Updates

In addition to the new features listed above, AG v2023 also includes a number of updates and improvements. These include:

  • Updates to the easy-menu system for more dynamic menu options.
  • A new targets based system.
  • The ability to add target variants.
  • The ability to lock the process with conditions per option.
  • Updated api-32 support.
  • Added api-33 support.
  • Reworked manifest structure to include in targets.
  • Added addon template for contributors to use to create their own addons.
  • Added Targets template for contributors to use to create their own targets.
  • Reworked open/private addon structure and added new addons.

Generic/PC Addons

The following new addons have been added for generic/PC targets:

  • Configurable battery stats addon
  • Rotation/orientation configuration options through Grub
  • Expanded LMKD configuration addon
  • LMKD tuning options through Grub
  • Memory tuning options through Grub
  • Performance tuning options through Grub

Licensed Addons

The following new addons have been added for licensed targets:

  • Recents tuning addon
  • Addons for locking various features
  • Customizing new user functions addon
  • Configuring packages on boot (hide/disable/unhide/enable)
  • Addon for locking the ability for the user to change settings

Special Requests? contact us

We hope you enjoy these new features and improvements!

Bliss Broad Apparatus Support System (Bliss-Bass)

(Automated Vendor Customization Layer for Bliss OS / Bliss OS Go)

Bliss Broad Apparatus Support System (Bliss-Bass) is an automated vendor customization layer for Bliss OS / Bliss OS Go (and eventually BlissROM). It is a toolkit that can be used to help with rebranding, customizations, and app changes for Bliss OS based builds. The toolkit comes with a variety of functions, including:

  • An autopatch function that applies all required changes to the Bliss OS build.
  • The ability to define custom sets of changes to be applied before customization.
  • Integration with AOSP's build system, which allows a variety of tools to be accessed before the lunch process starts.
  • The ability to display a customization menu from the pre-lunch hook, using either dialog or zenity, depending on whether or not a GUI is detected.

The Bliss-Bass toolkit is designed to make it easier for users and companies to start off using Bliss for their products. By automating many of the tasks involved in rebranding and customization, Bliss-Bass can save time and energy, allowing users or engineers to focus on the creative parts of the process.

Here are some additional details about the autopatch function:

  • The autopatch function is available from the command line using ‘check_patchsets’ or through the menu.
  • The autopatch function can be used to apply a variety of changes to the Bliss OS build, including changes to the kernel, bootloader, system image, and vendor image.
  • The autopatch function can be used to define custom sets of changes to be applied. This can be useful for organizations that need to make specific changes to Bliss OS for their own products.

Just like some of our other toolkits, this project integrates itself into AOSP’s build system and allows a variety of tools to be accessed before the lunch process starts:

alt text

And when you trigger the customization menu to display from the pre-lunch hook, it can use ‘dialog’ if there is no display or GUI detected:

alt text

Or zenity, to display the menu options if it does detect a GUI:

alt text

Further development is being made to add even more options and tools to Bliss-Bass. The project is open source and available on GitHub at https://github.com/BlissRoms-x86/platform_vendor_branding.

Bliss OS Linux Hybrid Preview

(Bliss OS Go edition)

alt text

Read More in last weeks release post: Bliss OS Linux Hybrid Preview

New Collaborations

LibreMobileOS

alt text

We are excited to announce our collaboration with LibreMobileOS, a project that develops and promotes privacy-focused mobile operating systems. As part of this collaboration, we have been working with LibreMobileOS to develop LMODroid-x86, a version of their operating system that is designed to run on x86-based tablets and PCs.

LMODroid-x86 was created using Android-Generic Project v2023, a free and open-source prototyping toolkit used to create x86 based Android projects, and other targets. The operating system will be pre-installed with a variety of privacy-focused applications, including a web browser, desktop mode, digital wellbeing (coming soon), and file manager.

We believe that LMODroid-x86 will be a valuable addition to the LibreMobileOS ecosystem. The operating system will provide users with a privacy-focused alternative to the major mobile operating systems, and it will help to promote the use of open-source software. We would like to thank LibreMobileOS for their collaboration on this project. We are excited to work with them to develop LMODroid-x86 and to help make it available to users around the world.

We would also like to thank HMTheBoy154 for their contributions to this project. Their hard work and dedication has been essential to the success of the project.

We are confident that LMODroid-x86 will be a valuable resource for users who are looking for a privacy-focused and secure mobile operating system. We look forward to sharing more information about the project in the coming months.

- + \ No newline at end of file diff --git a/what-can-open-source-do-for-you/index.html b/what-can-open-source-do-for-you/index.html index 4fd8543..171d9e9 100644 --- a/what-can-open-source-do-for-you/index.html +++ b/what-can-open-source-do-for-you/index.html @@ -13,14 +13,14 @@ - +

What can open source do for you?

· 3 min read
Jon West

As a business, the typical way to do things is to file for patents, and protect your product or idea, and your product team produces the development design and manages updating the product for its lifecycle. The downside to that is that only your team has the ability to spot its flaws, make it better, or see other avenues where it could be used. This is not the case with an open-source project lifecycle. The product you develop is open to the community to use, inspect and improve upon. This helps accelerate the development of the idea or product by allowing open-innovation to take place.

Dismissing the current arguments against open-source development

Can people take your code and use it for their own projects? The answer is yes, but this is not a bad thing at all. This is one of the things that empowers your idea by allowing you to see the improvements they made and how they made them, then adding those improvements into your code base.

Can people alter your code to include malicious code? This depends on how well you manage the pull requests for your code, as even the Linux Kernel has had some bad-actors try and slip in malicious code before, and it was caught by the community. So you just need to make sure you define a strict set of rules for your project maintainers to follow when it comes to merging pull-requests from the community into your code base.

Can you make money off Open-Source code? The answer to this is yes, and in many ways. It all comes down to how you design your project and the licensing you choose for it. As many open-source licenses do allow licensing, and support contracts, and many more options can be written into the standard licensing agreements.

How have we leveraged open-source for businesses?

As a consumer, you get to use the products of our work in open-source by testing our work (Bliss OS, Waydroid, Android-x86) on your laptop, tablet, desktop, server, etc. at no cost. As a business, our projects are limited in use, but can be licensed for inclusion into a project, and we offer development contracts to help businesses further develop their products, with our projects included. We have also created toolkits for businesses to use for free in the past, demonstrating the power of rapid-prototyping through the use of our services.

For other businesses, not used to working in open-source, there will always be hesitations. But that doesn't mean we can't make it work. We have had some restraints on projects in the past, and the solution for those proprietary constraints is typically to build a system that can handle allowing the end user to use it, while keeping all the private bits, private still. A perfect example of this is how Google Play, Widevine, libndk-translation, Houdini, and other private blobs are included in our projects. We have even gone one step further in this where allowed, and produced tools for the rest of the open-source community to use, that allows them to benefit from using the proprietary blobs, while keeping the businesses private intents intact.

It really all comes down to the mental attitude behind your innovation, and all in how you spin it. It's about time the market starts thinking on reasons why they should start going open-source, and not looking for all the reasons why they shouldn't.

- + \ No newline at end of file

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�!I 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®32nwpDRr1uQnH7 zuoVx!fj6gDF7elb9-o5`FOlgFCE+~$0xUpsl(wX%6|s8%!(N1lZhxm?S^7&6a4U{v zPf>yWE=&>Agl8GB%l$h^3bZ+_TksgX1h0~?MH*lX;0Dff(#qJNQ-bbWAhB!@F-G_k zE4KFE-aA^Qi9Dwqrg5=)WZMxKguiBtITMtALLQ_ubGpg6=s5%^e zMowm>p?;t`VsNzcUZfLlneXNyUup~aqfygUuUK=<>V6)O)Q8@NOQrt(b*I{Tk@a{w zT+>-kV33MwCX?NUOf9W63XIo!&j@#aCmH` z0W$NuZBw`(I2CQ9-!!xosh*1!Y!vJX1_rv!dlk-37w!i9_2wr(s;hW0Xf-I4v35)F z++?i;{+M>!xORRyt&dsrB!Utu2=o{}jPxHUI^V1$RYf+s&>Jw!O{W3}9N=G~RH>qd`G|MynScO8K!?S&wyggyzoPZXCRM-#A~h>)^bR%XNfL zLflrrI)g5SvY88=nXWMWl*qVwyJ;jIeRF+v#7pu&@6Tk94ub+3-Mu0EatkJTxmur3 zh2Ehsxmt2AuMiC6%Y#R3pCZsw;y2g&jl{pvY4W-!R%V5@e^av6bUJka^-n5gwvs$$ zqtclaaDKg7Z)4BnTEuWZ_cNkI<$1dLpd?R0X|^BLMv5NPIzuUi%@#x?2nj(p(Q zAD$fCKXT$CF*vm2nOVzmO6sGeLRtGSaEQUYAhqzmsZ6`;~Kxe1G=97~y zEi>Z}Zx)0WR`3lpQRyd5LtPi%u}Bi9=+6V@<^eg4=S@^tH-ph9Fa>kH?&H(a%iy?s z>758YfRq!J-4$|p;%PBND?hXg+91ADJBX_mA4vJi+SK>phM0cfD`2K9RGl!v&Ml{% zO>@7LlkZ<&*4E>GsI}5s1U7qhY)s&pdAjpNrgi=Y#jNJIcn^o|P7wle)z*BLo&n3r zR&Jb-JVDKH#(z^efYY$91XD6EE}fYH@%M}D`?J)QIjRh4bJAgzk0Z(kth2GA$d zx`kf(RMF^UgD*>knS9OI2h>msnLT&gnsv_(!B1C(cGSmC$KHRR!%kkV6>u#Ohxd9C$5in20(@t>oY zugc>lp%2H4nN*hpOjHvI$3fBGM+cuX>UO!SnpLk=%)AbdW`vdOsj&t|HXaF1mv!g9 z-JoAbxm}1WTD)CreT%-k_Zz$v9B3q|z^=sZ6K0N}|?x3$n1mRsLuX0Bz(?6M$VF0*C#z4-Mmr}4?3G3VIyX`X+++E1|xKNE^ZbS=)#+pyAfd7ym^_M_AYEl=^_``vf3sr!@gTYiu#64M`eO=9?=^1 z7VL0V%Z9*<>pzyYIpHNNoqA`)xgJ!Rm4SpC;|9$5EL2pL6iR=IQp67#+_k z$mYMd?-x*W{%RAo{D;r6)jWZ72tTGz{(42swE)!zSW1c-`1Lg%;BrNdq9u|46awGD zPcG3d+z^?wh;9%-4X`vD>bQpTy_ihHG1_Hb{#{Ae)-#qoJ#qx^N4#w)1(_1Ia2mHU zf)hdRe#9lwXC2-7-2>*I^KbTS4)Os;E3E9;Ik&%aq>fhd-}rAp`(uF@-KCEJ*Snr5 zVdyjV^T+}7B4VcQkel;{JHIrLbZF}$s;#`L$(>zDW#^^B;@+G6%g*`SK!OXhFb&22 zIg0PVb!qiL-F*L+LO_AfCtY4Ibj_?wK|1O=)m}{0I6WD5OPeP!XF(}qp!eg3Iq&0< zm>J@E2|6&ReKS*Y8MjD$WqW48=2TS^L)ywo`~Jn%FH;xTYkf!J(fb3LlqW0kXaKw~ zE1&PwbB@JYYcDm`x41j5s4qIzV&;@Nug(w2;S3IT2SVfGm1I6!^`AWcI0+y(u645D z1~wFbDwH%fE{07CczLycSSF$o+`pjqQ zC=-6YU^W$vlX0two6cVuFz;vwq4r_0n^`{xo-zk>s_N0?32q7(Xv+G_BBtk~~Y4$^3nDWr3n`+(Lq%6P9 zY5yj!r93QgE~MI#IJ3XCSOvnquHkX=@uT!Qp|jQrVNbn z+Y`0La+E?zT3QC#dJ+}iV1p(UjUUu^r6gtvM@_f|LX!tyvR5t0e~BIq^&;MEdxj^V z3+*t3qr+RpS_Ecj-M8P`&O7W19riz}#CEqkr4Ia|;-OXE_Ck?TzH0bl{)9Pd*6ZgRd{uV2d8?~MXRjzaFj$yTUzg{1=V&VSh1Uhb6#|5z7E) zS`nNQY<)W$2Z71WLox%wV>_z@y@J2JZJu%fLf2vfksiK>Jco0{I+YYJSmP^eEnhz*Y`7PL zqLBT^)4d6w2ikb!oj!2>yLG?BS@Ce6yCI_L`p49NfaY^A8<#s2{=cDyF^5Jr8*_x5qWb`Kj|9hbnTLboJ0gy_GU1upd_jSZNidS}p+ zs3F0)K>7~QCsf(icLi=mY(ySXrXUUF(nJ8J!PlpYPlz#kx?HFK(Z=3OU(~vC7);ed z#kT4!F-`s!x&o<*s}%@H z(+EU3PJX>tay)5VU_}>{^zK^KvW}g72CDqTKD=Mr)A6Wk?vMdUrFOsT=KL}v<2H$% zTG|n*ZRrZjBFHiIglax4an*J-CIBxYzV?0F1Se57`>Q`9pZt>yJVuLfoRp;GRn!x+ z{a>Qs7`mniQmjK!0TItVs<%TJ=ej65J=RLyC&{qL32k92a#!0gmW`u(I5MO-`Z*?% zMI&PnZKt5$+Z!gGsz}`HbhzBkztL$u6zW(2$#rF(oO5{goY!FJ4jX~*a7p2vIB?h7 zzRWR)I&m!@R!3hea8EYjEubuG-GSUt43T5u{=~nLSy;Wda4VGbYfWDC7>VfCWqp}+ zZxR*kSo$4Xa0G2gYKYaxi}=UL?zcbX3kq?QcfxrB)G5n-BIjxuG6~rszH6 z4*D=r0hXSr$HZsZR{>Jsg7La7SYrwDaue~b^Z!OTnb}+^XB|7|Q`^|eMAJq1`W<|N z&YcET1It!5Dh~X07JYIZZUI9COVTvTIlHy%a$U*x3tKoN&^!)W%LAtSb?xbOrb}L( z`XCQv&(tgR^nO#~E#UX$rda1nq&DWJvtbA8m{&*iZA$iw-4OedOb;iWuX~GN0b;Ky z8eB@NaM~&P@lK(%`WxlX=Z9;?pRm|EiKAD2%}1>t1T0?SzqY>oYf zC-q*J4)7?93rPL6X zyG!us{{*MJ?Hnjhb3X3aAWC45b^{JK4)>Q|xIz^$Zb^+@`(G2Eju@R3zV=MfJZ#oQ1WHKvGtX!w@ zlU%qJT1_yJxqPcB!pK)G6WZp=2hlDnfidD4@N*Sf)r^08B^#dZ5+-NY+rgiFsv@rjube#R< zyUn|+o_yT{c1n}q_n&eX-qHxGjaY}RudTTciOos0;YPvVO^A~n-F%7!5_=a*Jwj1xl^(`)<7Z5AOI8N@GO!}z{fe42%6Z#a|%U@pbzymv6KbuWO? zp^w*3-Lp>&SV92e?n}{X!n~v2)g05;Uws;AY{4(Gp*L;E()6Zi*WiJ4F`Tw4n|if0 zPGJ>;aTWYVW+}*MW%lPXi8SeQ2-Y)pin&_nUJ;X~Ln>WcKYwr-Yw!YNoxGQRm%0Z= z+FSwC|6Vf}pr=)GEj znFhlc58mRPrwx2wIMp^ZcQw)JLY*&6TRbOTG{Uc!)hC+2xnO%L$ybgD`$zU@Ss`Py znIwb@{zl?J35bfV+AVQ~$-}k|L67AQ_>QUp-oE0B|e}$n8+nv5FEZ)XnXQ_##7n+-> z@Qdu|=mWuXr~hb{V^LQbgepNpANlJ5oz=JgIWvC;HU@X69nVrJlWY~wy_v^K2N?&z zbNvx$ooxRUqa@7pzzL~#RQYbFl`O&`Q~~ABxYf*)=gih!CUS$dN_ISt^^*-7Et|dYL5Y0e*P8A!Zlsw>e4Q< zbl7)RJC{D;rc`+6Rr(V5{lJ^1nS$Lk%r%pJV)ST?UXoeK2RUyZ$=j1Z3>poVe7{1J zPqi?KBPtb#0kr&Pv1x$TsriJ}q{oJCKeV{BXEf<2L6Y z&$xUGBot&?Ut}>Y7nWS5Fu!i~&!zFzhYQ=!?ur9S@7D}4g4Zak8*C-vhFE9aeW-`)y`&E=Q!+pI2z3AJ?P9AU zl3v(|vAnn;=%oa46#Gd|sG{#~7^_{~hR@kc`O)gf?=n6fIJ}^^>mL-t@|s;;rN@d% zX!O&aApRu1Br$=qmue?@j@CR*EHB6#K4b;g-E)Xc_yAM+6GdA2>C;c2pfx&=FACkg zf7kAHqv@zDfj}I)`TxnrbEbS;vdH72*!%Sc>YOA44wwRo^t#ktPe0w@ z4Y}FdFJXk!<$Y5Z59|<0j3a0B2{_$n!U!r5TN$shOp&cI|rm>8Y!-3Ny#^91-)TL$XuQ@!G9h6QmQI3YV*kd8-C!}u6ZJ~qBwiZQm}g?>EucA52X$sBd+3Qt>F9S%s2?(gDS6g2MGCS6nD;S8WVySZ7=m1f=Co$y{S z=i!6;%AA?bcWdK)+jH99$;2%&4@OI7n$eV4q&KKXTH{U!E&y*R+ zfAsNj4HOJKI+q|4%*=p+l?DfIjl5;?fZHT{m_dh-fJce6r)^u#oA`?B)JU$82!5 zIm||9TOULdR=(~o0&~9_Sv`9acKF<$NI4TDYnkq%X&Xchvpctx2FqGMY-b~xiw&4F zqI(jzH;gj-{M!Dd${$%MXOqUlYF0cWksb0zh*kHHEwvGd*D$n4-aeuZBJR)^HOC#3 zP(tev4f+Prfyo<*sr5l-fNI&u(8Ie9TqfEsBguLNvTH2sbk?UFEiE~$p@-|V$1h(A z$k*M;EJa$(o?#69hMCvw+M3M5R3o6jk)hqz*-jkQAoxj5dSR90*r-SgM0vn!L0KL@ zd@2$BKiEOReskzP%S6u7XLA)FE10%O&Qs}6_I6rg?)eJBzEP}WWwO2Zhd$*vb#bjE zCnD98+iJanez;|1JF)UspR^MDUSUDiNpbhY1jAB9s$2gvCL;U`v$m3Pno_^YlNlln zq3sq7^fPm4@d>9zGMbdoUE(o8?8`aWt-%on|Ee8h>EdX^UgbH8B1+J+!d{y)I@7Ym1Y%lqQpBPYYoLW3v?+hz zH)}fGZ+qrw%5uS{YzI$uE7D}|_cr{kpmy5%b+Rp3&!_WGfM@W?jVI$6MA_a83hsqoT?7N&a_ydKc^-Cwi@Zgf+d-*WY#%t#rSXLzwTB%=}uI?^$Fc z*?hj|(I-X$j4p!=XRZ0HgVktBPo@u2JLiLreA!y(KOaRq#s$ElJ1j8ZqvQ(6FLgvJ zWAu?PF#j%S{ou@G|7i>OP;H$lrYokwbm!}qz|{h5=bn*+mZN+iSYnrN$=$}NX3Sna zJha9)sB!ENR9V+}iXN0Pma!!#j5$G&R(b2q-GWy&k5Oct|gCZ9cvxeAErmkgbv(*Kck7G6!i ze;Y?ZQ7M&@7>I~~luFl7Q4nd6W}qU{Js33xBA`+tDcy)P(lMG5lA~cv7_l)%*U0Dd z{XPG{&d$!+eeV1HzOL6x43xLG{S(#4`f;nVWAsjuaVrJNaM03GZ0=0{4fnS74eUly zH2JAev_$S}(@yjeu?C!cFNvk#waT;fZCMkKyY%u`>_yQ~)Bv=!4m6kyy50(c8C|i8)`F#=+`87fEOA zS<*ZS=<=ot3De>?1!K=JJ(E>IaS8p;Kpj@oC{DQ_+}1$r$$S;qLf;rIU+W-CJW9w& zM&xwrn+p1lzKL6n)U?ynH;4>nK63EUe{!_f6eX!|*=?s%clzfk794b!_LWUR@WwPU`8oO(9PigG7{IWg>4ro%0 zzR2r%6zE^H%r_@o$qAJW7*}U1DsquQ*MB*vsvF*t|EPXR(}RTQBKh6S4{t@pvJ&&b z2_}7$S?Kjr&S$`B!q<&EG`_{^czpZxtjsH1K7`@rl3~TcXHrmS5ibnG87IqmhUo5zWsGNQ*D@0;g&Fw@kR`6dDG>(CglSC{KKq<=T=+#oOzm= z@@>K6T=(!PA%l0G5AnYq;I?HOzDnL?#@)GzW~R?r>9Km95-OH$d;F?DbNkwHN6|aP zzvF9}#KZ>A7W?UCacn{SEeVGBr)vD$|C)XrU)%Z3Gn6yU_iA`y`Fr2QOKwTo zi0`v6@DlI5nBa~d#Gj?F%zOZ99}W3wGs#b3a`}5Pn*#gfyhLl-{#AtLnZt{(9oYO+ z<-L)yO0yXL_)vLD4mr*6;k4HLm;AzJ2zXWItZGVO^ca}ELYr`Gn*+ZxRej}Vm3p>g z64)K7*`P+?9Z*vH51pMTai38P7Id4$qmplJ;!8tXc*b#CR?#l0hb_OJ)-+Y(zS)-) zUeN+WOQ0Own4)_QbdtXtNeMRnRUWu6sW%!m{ltJ#oti-~@d2IZ1p75QE8`nE>?Vvo z!sr{-S%uX0uQ*C2K$>ENrAKgD?1ReJ;K&DbUkN`_ZG7?Ve(vsz(mK&T*f1i_wWV_Z zTl;l?ABNX?5o2~o$FJ!BH9Ieyy$uI9Ys>OBw)PMBWbLBmGf%c~C3vstX7MP-QL9a} z4liC=_VG_;OLc0pI{J*t>^7G^S$(U%wLN$OYb|m)tK2_iC&MG>PLvc@nnYS)rcsCO zt?92>4Qo>qSPTuZw}n74ETQkUUu+t3>u)rnYS^p}*N~rs{hN@JRZWv&@rtm1JR4%b5jm6Rr^J;{uZ!s#=t1+tF*H@Va%}(>T zq&H6p5CIftiZ zBJ3#LX9q>h$u67ml{_t|wGip^D3F)(H94qQ8RbNn-`PRPH*pL<^IqxYE=p^~HeJka zX}9m!;7QaMspt1a8voO_E^$q=HLhmg~k&Ikgf-hTiVpxf} zflMj*1`y_r@c8I-k&F~LR~Bm49lix3-OFxJ)ccK(Qho4kHZjKY8p9U(HV#p zxdLT;F}ZhlsJ-Q4T&eX6hgf0so+49>S=Xq(C_N&hW)NPN_GET26J<#8< zXLx!Jpg2yq$l9sPoS`;OGLxj9myr3IX6RL%`qiUPYE!7lhSzro&h8p}2n01ot79-k zufp>aBQJSO7c#t|sN^#R4fV??CJmIr-X8TTEz4it4aY8A5E`=oyRgEnQo+eV-TBuu~clD|`-uryZTJ zr<;7wtXq6c^~+k$gpwp^_?Yjh{~cm>bQ4I9$V;yNx>w2Cuz zVjVl3ZT(DU-1L(h*5Lfts*}VHY$)qcKf%XTFH(p4bH z=oX4fo+taKY6~m2NWV_HU%-^Z;LBHgAbXH7UhPz^DL!?1YbI+Ys>R?v8=U=WTjnV3 z)EkwD2E2+Qo>Qg|GM#(Nc$OdE7nTUGKkgZUa65^VUD4!jt{VRRRcB3RRPaG?sg&Ih z_k_y1rfMjKB}4`R{Mp@WZO_N72)qFtaZeTp)uSt-;_{z{UGWqyGxjvzZ+zdxTP&nH zZ(oxWD|d7(GnH$o5J;0#L?3L@dE=Sr=3R8(kg7s}=DUY-%hJ%q>j~u=f682cY!Vj) zlwAL1-bD~Tn;=gyIRtghKg*A#%PW6(Jm#zvlsijJd~89zRufZRxkeNU?<%iYbGNRx za^DZ+g(@~o$gU;Bz8vF9PI$(=Hvi%M{#Ga%vJyKHI3Ix~N{_s%Yhus|>;A;HZT?cX z{b2WhYS)D3zS5qxkiN7gY7SqIXhaOnyGj97A-dwZz+(u*5$((l)@>R5AL%&67syN5^ng>r)xQXG z7vy?WEM>+5{jy;|$Dyrp?K!%%7=NVb*HM7MK0EXYO}t?<9P8Y67&+N}TvGwwoKte8 zezf>>Y09L`>_pX_q88L!AzRJKnPOLDOE;R|;C!blx*+t(Dr4)~q%T`ou8D5*{Sf)m z!6%>01<9J?hlhzs`0zo^3z5+}jKil?k(tcTgy=L;IysXl`EBo7;skedG3f{M$PfN3 zhOYuINdJUJ(_SK@6{ylb7CYjBb=ZxK^Jf44YUjh#H7jQkPVZVnZ26f_%!*BjKB2k+ z%k}$Fj6jBp@b9`xtYxN6URy>*(d=ut$ z!kbC{rX{S@KI;RWCT6Rr;iF!y}~8I-UV=Z*blZvNG3Yh@3fb37eYtrvTGAH+cY z{UqJG$|F=EXDj&Cv2o)rbGz|u?oPq_b%A$!^&MW752N!32=*cnNoRD_G)l#bqk8*s z^Of&=F&TFWq_+{@9Jz7Fw%7MprsjduLUJw7#1@{r&;VwaL&wq8@5B<)S`mePj70(M`1G^g8Vg`2SgGZW<>kw3ptt z*mZ8(-B$3o{n7BztQsxh!&UUzZl|l=9sQ~!`+nJ*L{rur!Tq)<_NxeN62lr5-N+ai zducA$_QB1$Vbcec1vZr6v7VWPJusxMXwu`V+xN_E((PyJuh)z>a-!qHpcn&gPe{c* zc)ATcT!}gvK70%j-kh?v&0+NZFS~CQ?=lmhtV-?5;hnoTHJtjSpiHsrOq0?NJ5O!J zQ={(2qASnFOFx}dqffKgF`}zJ8$a8sF70@kPL?-;3L1!!y>!;ediOrHBYNZyj&N*y7BF`h z#U;%Bm@4x`&e{{j1UYYIFoQ(!#T{uL=U?obP{gxA3$DNng^MaAO`YJSy^ur#fVb&9 zi=-32cxDX_U+z+xGx*vxaw(GjU7X#2DQ@n|X>CbY5e&>W<$F{bIPW^$9Y6LN+Snq; z41RTzoyGGFVdw6It22Y78jRriabPw0@ zz{UJJayh&eNpQM3sCZz66+vy^xp;K0bdh*raF3%}uFamo0UrnU&BWk@q#p!lz(%tN zAhqvO6HV=BUP8L}VuJe}<75gURvpnQj8D0v+;7GH%)g|w_xOi)jte8%$GdN(v+r%v z0hw!X(n2I${8OlzOVT&2FB|Y{jb$=_=xvu|>Gea-fe$U2$ zTg3H53l})1#yI~<%AC7ip#h#dSqbj5B`S^otr_^|rIynrnb9wJ_WV2c!G2y=W7Yp) z^kOE)d_vXE5ad)SGgD@EWxgV%uKZZSJOm$RuCrb~0h zCvrA4*d;z-)l4lxd%vb2vE=6uJz;nMnHk^rZNHa?PSJ{J<#VQ*_Ior7 zLsQb3C;tMg8X5Z1hGFv;12fyqje%pSmkVW1EG)zUg$wsmz{GQGo^AYtm(E$jv;eV# zYCZn1SKi&Pbrxc~Y~w22C}FV5$Z-2& zHAEj@2GlO(A?2J5tb>`-mVPC!w9QOh;|`f;Up~a&`}#fO*nPoEG-{8u27anK-9KI% z?54^m_etC2#O+W$4b8B5n(nbBVxam6(H?7B5pMcw_uYBiU$U+CZvlST7vY6 z&N2ccNx9W*2fFD3!@SOPpHZ05su`592RUWW9Qg>+7$7q2uBIjJO#G!8LA06yfBK$S z05OJ3OuHF=C6+~#T;KXsZOf_fTPO0F4epLe+y-gp-)WJeL$`rNE#PBo?tm8Pw(Xc0 zC|w*=k%?aNk*tpVd97aPHAHK(T^4$2@xfiMq1{&>)fah27FUw;v$ag8@l%1+3=WfA z4A%+6ccwW_Dm46k-@dAAd7?p|+Ul_FKj8g`Dk24(kZ(j^4jgKkRbJ;Sy~!OwMB&`yahHVl0d*4084D8{00lCVIQ`t z;9x{IaTevKuxGKVAd;4ikLb?H#>5PcO9z+Dx$_k(+Bs!~A3rC0rj(X=dR}{;GTNN( z7PM1{N_R(GQwVvBIrjKhC9YN0=V7FqUi9wl=PFBhtzV{#8P|~*hUK|_O(i$`^hoc? z)~r%-T9dcL#xzlhl-hot(#Gn1de2d2SA4|l@3ORJ@g0JEenZ+o2F-!9YD#8;@7#F) zoYW6X3OUWK9)mzCCBeb%3g2T+wyJSZApScX$OE)9hu{EAx&ibw6UW!5dOQ%S+b*Ff z*wLg+X+7(I?wIOYu{v(qs5JNPYm|_J{oz=9){G0~-YA~L5ge18gnvB6dScFC+)gt(xSjA!FZ z-9}kkir4gsqHF*DcJ+{qEPc!(+{w{Z;oQdN@<*$`zk)i zz&n5aRmQ4Apu%(>kEjv1BfN6j@vThzAb! zcOt?e<64pfk6DA2&RJM5P7uoC+|&j5xV%Pr)Wca_6z#wdT!vM{?Gn>I>sOU z_%;#3XS*CJGNVp20SJV(na?hw=MgVT8u8`xrufok9{qu zgY?yZoQYM4;55tVOJOh5JH{{U2MwAu(25-u(sjCf&3PKhS=5*Vo{kEC_`a^Yap2wH z+~~VY190RGkif^~KArOH5hs-+UrR~Z-FvKObkVN#4jKs6 z{;Te4`pgZCbpwB#eC=pGoz-0u)H<#_Dg+!O-I=}oBUeKvZ|(s}>7Iord5=5QRHALu zLn-gTgn088D7q`j4JLpu;1QFt68cxp#<~eRK?zuhQ|7o#|e=6(OE%{!%dAH`2?FriJpTCnsztSwUw)a}{!Jm38oK z=am%Xl9!>Vb*Ev(`yvoDU1TIKytmG1uc)wS9wMQ1y+DA1X* znWJ}ux@LPYgF-Xp$V`WgPA4T=(h>!#zlR*$Q6FN{l}@qq&tX8qJ?2E&yqusX6NN7w zV@bHhfYcsD8?iaY|D)j$^K=7lK;Sv#e*WE(uRR-t6QvocWKka-KR!jQohNGcqvuO% z7}VjI;nQjQWZP?LzE#gC@Q$oS6xg1uU*%KB+c@TFN7KYJ%fRjnMdqUzS`V(F9K8?xy>xA7YMU=RW-QP=T&0v(#E7~+=p#1 zj;ZSG{0#-ySjPa$&%FxG;8p2w<_+M!FVhAh#bxk_5boEvL`w#Ow}d*nq5$tl%Sd(*wPe4Ck|Ts-O~r`nh+6 z>TdTQJxt-)r86qatcbA@efZ|gf8e^+n%jnqIGZ>BvGD$YVzr{8q`2yZ+#dE6Zo8_i zw(3ID2JML2`JqAUt*{3KtUV^ZB_vR#Yx2#gwDPMgG^LHjP=ONJ?W6fdbz-9VjnxnI zkx4ZX%l{%SrL`QDyrtrzQ@r}X>17kzec+W=;kX+0+lCi34zee>NPFph``*XXJ`Mfp zHlIOlRugDJ8~?v&=f7sQCt0mPd|Z?PjAPpmQ~CNogFOCRJFO|e>PBKsA$|CUAGmi< zMss&M|FwYnVVm|}xxZlx_lT~3X>Uv9l?uyKr3g__-JGnmaf!g{Q$C?(uWqsc|pP1T`;{3vtC#NtWRq^zC$ z#CpSfz2m76r55h&=sQx()LS~%saC>M5w4mBjvoU`15Ak=@1DlIVI4d5=L zpFgEjJI97s9j{rRvMF^W-H5*_HXg}*^h{Ho8kXG0NTrzJC05<2nHx@LprRqB?G98q zc0s>^*Irc&wBD!MkBbX!Md^FeHNzk8_3j_*M)RLPLZ`Pz3(_9@P(PAW?c4Mc6=NCT z-=vz~Uvxf{SDDUVxC=-Ieb?;{{hAh`lfHbL(?_rwHtt(?xxRN=YH!I3=omFIdKVvC zvP?Ujj9CqhH38Zvl_Q+3dIm18xL+zX;DPODxC?EVUFMu_{xFEuICDv8+xi;hEc9L?g z%5QF&^}y54V*kjYJNm^EJbmWAA{1s~X83MkYDRZwWuBTeH~CRftFUTx*Rz3*GCTev z9CrW1JU@Qq?AJSWwm5_-tD*EPd~O!fV^T7b?(6~Jz#=iZ2zzbPZOg9=T>E9u))EsT z2*`rMS)HF6{iJxFU}vtd(JER0*}g0{(Q7$rJ%W7Iyb>X@gbN$n3gQ3wMugj?2b z#N;>B8zo9QY z*U7kv?~DhV-O5@0FVl1SQ9-Uum%3q%w;=5XdI@dl`M$_XqReojVn3!Yv-iWZgpr4p zBaZ?w5blyB>;t{ohkwg3?p$X2pGJhxj+pkz2B1=Io}c>4V#=xB_69 zsF+_EJx%|wg5COWcbalA;pWizD}A%%tHui4`5t)^HyB=LoJ&ng>G(L)*B8b#(BG6h zjrJ0xun?;;a84hjINNFtaiz$08-S;1E9)mfxEJk`45>-bD#Oh5SNM;p+KlV?T6Dil znB=kq{u|WTeUG;?uWHz0$EP?N=K(1t;)#5O{Tc;?^g;C-N^DThi#Yn+K zwmC{^yG}PM`{n91u;sJbp7mnMrtFjdJ!FDli3s{HOH;RdPRd?q*zoT>dp{j2lj@)=m*TA(U(J0w)9NRF7x8*o(2ysq^h$-U66JEHEYj zRth8CSCm|H)jFIFm$vw>f!h}!mlE8ni3yC#FW?db<#(J|Ov@oo@PpZ#n8y`4BbxW< z(@He`mN)9ggZ7V#YR|8i&bVLMyE5UiJNi6I!w%xR5Wo7*>=2<}vbrRV5d6&JiwX6- z`^}&$$7%-{U$zz6(3V-z`Q6}`ngG>UVk6d5zDZ>Pq^TcK`H=Ih z!@O=p!Q(qN%MH-v6*zY$WvhHp%BBx}P>|*Mie}xyL0PzOyf1rC*G`Pr$f7!fmF$Pv zYZ=m9^JGdGtdEU5AQfaZG6=WTwClo+K|g6W?a zf9rhc@Y#gyzcVd$r#xlECuuG2qrqKQJ^|?8x4x$}CGs2OT>VrL@ej?Yiw>8|I4!fd z&Cpqw>)syVyFL6R`Nd`zY*WCE878pnt~SKMxrbpq#yIsa-uDhG_n@cQ*?xr3kbdg7 zuiV!$dr{tg)hA3?v#3PlZ3ejJ6?ais9M}Sxr$AboZx3>LW)XBb=xVcSK`qw$EJQQ$ z1Ce*q&2%2&P1KwUxWEj~+gj(4BcCQtBDmpkeLQ)+)K!N*nx_*Y0d#;~+!)m7Yrdh%3$}BJl;U=MeeTfo|-xWJ?PCfA&is zHd*dIc~$PbrrX#zcUDsXoO`1{+a0~$SvDqM2UVwAcz^0DFI8l7(t#*$hB0XJ1Dgr61-JiF^e5M!&g+Q% zT)(3!>axy7g&Z9gel~$VVCr~k#(inA^66*i8*-6FHRgs0G+G|ia5>FF%)qDYVXBpK zpnR$G40511SA+u7MB>;uM2Dc?;VY1=PRF0*KeDD-{$Qkvez|Ym==*ef(BxuOpX|JS zKadnIM*Y_B6-nJs?eAst>ir!Mh$E)xFlzxr7A=DWb5nW{ zt5d@;XcK<=)xlJ1aFY|{-l;eW4wHXAT}1&~2A%{)0Chm$@s^Mfic-$k$K=s^y8MRM zr1ZgQz9=XSnDfL7rHmyMDS5xqO;4G_-V8(CcrpmO>D9HgNI><0s#%!_O*GT>R#T>* z)LIfJGGgaqfJhyBp{xc$S30%B%ro&+)K)$!#DAmy8Z%RiWklUuoaLUgN3kVT3LvYp zN>tzyVZPqE?i$&Y-bo$9?aPyvxYTE=0b90iHa|~4jDhNMCeYkF5Xk1WpI0}Uaa#Pl z0Q&DbIp0}{)V65|I1J|O58dT2n9a&WW_Cy0wBRnm?p`J*puqst^7~H%*VGmBPAo}; znUBLiR%Y?J%15ls_Zw#X=fbM?=ctMlz*M{MFS-(`Z+fqLOqY^8?_Ic{$*lF8l^N9w ze_TyQF6yh7tn>D*Ozxa7!a{Uiwxg9$wnd61HuS;r`u)6RhX&Y)GV8}#=6JlKcV-oz zGk=lOV%|6x_oRP#fPn+GqrJhW1WHi)-MH|b#fDELtE>!gdNt4&f%!F4CW47wh7NV5 zih7`y=$aLb0VsF>v2Y6Yn!vE2oaoHCLqLlbFh8hwb}4s1 zreL!uS}*w{NvewNogC5v6W2K*m~0}3MYd!5259(s*rkQ?rd)#p6RqtsSG3hZ&U%%( zsaKD#=7W!WN>+8?5qVkAQ2hUl^<^#o@G)S-W0})tr-pl&s8$*MhMr~{`7x^zzU14E zlK|AUK*rS~8VHiBAuIN8UCeheF1J5umv~p@FZG;1fA3FlTpYw+I?RGQsS_Ucnje4ujLubW%8_lKj-uY6zYuGtVChO`gp*u3&3Oj!mVv!h{#t(VCX0 zIa@m!rKrJS6)&t{aP?u!=iXuBYuk~twb%7t<6iYpr=d=s>@Oz|Og3VRXsADO7YNIx z3<+{Z%8CWPWk>v#JQzQRyHv-ry6x7?Hjtizu9bRBSr|`FSr|FjSMuiNgUTN6Wb^L5 z)n(aiCD9byoGP#WJLJM#x0C&l61nehwc!2o)f2K5%4My4W>g^PR}sUT9a2`t&9};I z0akZ{u$)L&TnLFrTibTSPcvs|~EwN9d*(Dfw=4 zcR3d{jb3E}-nY5v48Lv?3$oeuJfL>e$b!q1e+o7z?~&#)0|9b<{5gg;GqG}K`*5n| zbEA-rwIW5*>a9Zubow+3;ucuXeR|b>8 zrb$s?WdF6#Pj6cAW{0pXfD?vZ;5(O+KoKHoq+5*YVxEsniX`f1FrVoK7lwKAobGa~ zwi(3JKbd*{ow*@MVk(&hX4~szTDjFGmaD1$E~NA!$t;udVPeN81zSIR_tZF}C!S8< zD(lB**EXZ#mX&rR49kj zwIwIf5Xu~$k@!)QgT!!e(>d$#s6v;`rVb1)rcc`COvNkUIzDb+OA1Qs>3KOv18?2| z3c?GV9jRqRKvfX_Jbd(L}meSDSqjLGIcLwJo=GA zzR6X&vs2w+V{F(h{@+psTZbrSdR)p4Re3pC=XX(F^F_8v6T5YuajKO!YnhIl3ud}b zVJ{nDo|mmsasskrUA2o^K0mctsgBoYfzjYZPi`i|x3pF=WWe}4m=i63>PMGnyXCE0 z4)JGf@+us~U#lWRfd$dhXihAhHEHH>%hoYtb0gbQ5rC~GJ*Z<=QJv3Qb%GvR`*|uM z+0t5!48+jpjbu5Sl+Zel8VL-rCI3jUHli(5$}#pNeh(?>VA+m>ogKSv|y> zyyIi(J_+1U>i&4J6vFopI2QU!tdT@1OEc1s8WC`a@CE=QKN+?KziuMit*K z9-WAN)d}hAXwBg3Mv-k23a%ClakABg*9tuvqKj8v-uJdu}6@{uXxNh5T8Fmb_!+?3Dwm#tUjei(S3Y)PepU+NoG&sxtC`kEPe}vDa%)QZ&Hh z(nZfwdun&R4i{Vd1eE%Ahm;PdeWf>nT#?%7?8HMl3zwG74bxg@-Uhz-;2rhXH+Ci( zyROF@2H{6WEVvNG@^bDM@viSx9StsnD&`6G!2HW~tJS4h=2@Cfz!w+C=HBV=G*S@L z;X0LNwIJv)Ieh;sDSY33Gs>mbwxCt@UK18N|8kIPF`PR<`VWA=k8@wx9+CG-AUnfq zj?&&*hpoogUe4WDN2}U7{_wW#R7M4kpAfT3S?ci2pSHU@Ej!iHhCWSC%M!CtvMiptmDchf zz^>Q-=y?$Amjy)TDh{3{43e{I-aSm{RKLzSFBtBlJMm_^&mCg1byDb%QaQ9NE8^xh ze5eT3LT>e4#2F+`9d69kcT8VhBI~>pDxLluwbMJLKzCbu?z$glr3E^P?}0b{O5{|P z+pz7birhUEQ}wX5@=J9a{aKp6ZPq%}vXeSnl9oV_Sv_j@SglQMZiiF=xKB-uaHp?P zA3M8JMD1l;^4M;#4aUEe1CVcs$@D4~y=H*oG&#}udF1-(zzNbsMmI`Bi{U#~dh_Dr zg0Ki^%s3s0U|sv5t}9c`jri>~Xkj4Z-r|F;P5mPmBFSGIbg@;mO4A78(m%`F6%8ri zM!eQUXfISb9huWz?4=m}8xz+GW-3$)=vox|Gt&v z;g|phpo7oB$X=jgSu;JNzCMl{mOg)h=4NSNhADtx?c2@(>q&0pT?qZZg&#fMOTa}e zWP2RtPqA@A2v(bBx$Sp@dN6;tkM&x)D1w|KU77kD|NXSrLmMDeja-MO{EOQg3f)0_ zD`m#s07=^#ZTjtHwQnbZ2OFW8V2}(#lHZ;d8G%0{EK;e!WiA+P zS6zbv=x{6V!E2wihl%aJ>%3lEV*KyW53zTOuHI#xU77B?r0LUb=mAEoOmAGXpL2uzEkO7ECE+j9 zt?OT}ifvSOfleTXU#kpm&%InHvcaBT;LKbm3Z8TtMxOurP3=2(+?4!1$!d`cGV43DrH3qGm3#u)7KbF42A?xt1Ro>1XDY9j%uh#jQn=Q&0YTto3^=UXpX`}Zm;0-7wYh~LUhdkJ?m)le~l$2kt^z%@qtf`H3fxY!j;2mt%aSx6N-3-D0dGknA;C{Pa`KQ3!5bjdR zQr*!ZuB!YD`cbD3_X=ku`(cau8@tPUl)vIyWCi3jwEJ)3N+vHW^HLNG$~fkPuCE;Fs{9!k!hTHLPb_SXNR66b~{VBAtr{@ z6HKZ2XPkjdMwHxf&#_;Q0QE-s>0s36b5_8;HY_&p{cM0Ht=-SU?@t#IO`IHGe!g0^ z8eEx8i)z|r7u$Gq|Tsd}s(MB9I4I3f*c`TPV_EqmPzvOWF9Cn-j z-QQ^Wz%zPJ%NmFn(!6%y1|XuStdSkc>o_fI+E-6JYRN*+!vuWOLZt#bR~mPsBzMm3k42Q_;}Q%;S*t4WRFG%L@bhB_zi(G+rPt&-pMXr_ z2z%KB{&LVyi=vAVvGq?(!zK~(q1&%M4m<{+GxQMCA^g${j<7-HhiKiGiaGl1x)Zx1 zu7^>6Pd+q^_P!a#68j=i!Y3{|yzr%#mCv|TG!{{NKtQF7a^_jO)BLh=k>NmkUewMx z|c`-A_V)x5g+SS{+dA?`=9x%CWZ)W8LxJ z`0LSItA4V7=^Oe6|K5Ma&hvzo()QltN+B4Uf8^bNYa-%i8F+Upb}MgJ%+382ZB|wv zvU#xy1V)y1H}15si~fpoS9$vr)_nBC>^}YM_OI*F|};?K!hGpxCBWr`J_+2xJ^aL%zP2(F?K&zXk}fY-ZLW&2N^3wYRJ z!4w57c1CYh```OWvCuEsa3P*&&h*S%M{V`D#{|lMxY&ZLenD~a>ZG3p9J^vl1vdYL z(BhA1mlbDZrJD5_mzyIw-NI4x_ag6zMS((aAzVBppL>RNiEan&E4yO1ci%T-0J^@t zD)UNLjn8iNBI4PxfviY6EWM6pvH_aP~m(g^gIk(aACdRDD1g$=%Dz| z_c-TusCL@vt;vrw`n*FzA@z{VF77@z`Pi4)KET$1$V#tcQ%+YQvdxa>G$hch$;t&W zG+;XN(l2fyi*;o#ZBNbj-)PQdxzbWg1i1k_;8rATUad6K4o=2i{D!tJ_Ok(yn(3Rt z*hmL*M_388mt^de`a5p}N$-L@HU-uEC2TAVdg=Oo)>1<-H9U?e&|w+ceDwZgroqpu z8I3{zBkQR6%UUC>8FT`~c%#IpL@l~^X;f=3=r@&+keNn=^|{jGw<|kOn>!AsEt{vF zk>A5{>UW^dZZF;)MnQ2Fc1lgVFhq4f%TvoM?T~s~tW+9|=k(VML4z3H|7Ab8v87qz zSM1bKMah9-&5>ffMz+ZOEiP$MMc%y;)xf>JxT;E2%%2|uBk_jS4W;YL#l?B}P}|px zr40Q<=Y>*J3MWmI#P6ez-=BLW@m=VXM;+$fQ-?~n5B=Ny?k)iDl@41@0jPdc74-YR zj97jZ)!4|eu6D^8tL+S8j(=H*?kTLfLJ_T=!igcclTmnvx7ftbl`pHg}RkGYd`6q=RU4-B`PmccQm+_w6=;dm+ zYigm!raDKcy_kM!u7l=3Skk{2VIVnr{(Zor`6CN=8}!pbOJ;&J+@(Z^zj^YGM>`P| z%{6cLHA)Jay!h#yRfxKTN_aPzL18^r8}7BVsP(p38H&7DrmgA)aC}_Dc=IhE3jD`* z)ZO@#YK5K*GGs8OPJEDhTt5+Ws6dia4VV+zn04g~pp^bW-5)5Iwi{_qk7eEXi>JZ= zZTz@9A^synH}gEty?S`i4-#Q4Xkz>Zd!(Gd+dyPRwoRpu`Dg)5&Qnz-Qn3! z6pvbiwesg`n)6(zvc&=RKD@QLwZdK5pPzY+Ud~4u5?RG#_r*cllE_&Ppz&N7R<~!D zkzKQSF8?a}>VjF*{s7O|-m#y5gZ4vxbZUa%o9Q{(2g<+aez?X#PW9?0So?faf|lDq z4O>^1=Z2EmBg9v5{g?1fE!nQa+2VIVWn*OazU?2eEkrHzG0!=t2;b1C1Av80;+#EV zRqov+2E)#^F4P`%HpBd9MICFZ&Fhb?wyklLJ8hBAy?G^OvL?z9?Q%PRPBP@KhEhjt%f%SZs$=HyO0`};`o8c zAt5I}(H}X8+p?xAR&o@&xYv6n27Sxk%)DoB=*5E@j4_&KUq{;|UJ>34nT*1tB8Ss6 z_$=yo3Jket-9z4xqs$uyX9Ic%z6+uISQB%5`DJ5gQBT5%eLw#G*sbfGT_IX2gR|nG zBr6R-8*AG$f?{em0i3f*AB?JeHAe=YWo(ae9b?QBy4x*GkjRfW1ZOfkSBEu|OJ5<4lbI|7t6r|X z4>^*2nqIx^9$|gvp3hJZcr9avPaP@KnCm(K%X<_we6h}qF0H&SFd|C#6uChhugJ9e z=e=4kTLV>z0eSQ=02N?AVN`9m!|ml{NpHG+PuI9v=BX-?02kIYyB3j+!i2;|$qrB} zy!f@HP-jphTeR4cC23E5EK#uxX#(f<K4Wl98EeMn6EGClkp2?XVe3f*j z7A=Tw*aaZ$*Z1VBK!mMj`t9+q#bvh=-r5nK@F8Rz&&Lg%C!Fxhf zga^Xx`tmNvvs_zjjlva6WSUVn8D$H&xq;=UJE$Q`=I%n|W~A_p0C|KEHFOv`uPzYhzSLu)qW5AF9YnC>h5 zF`qzieI3l|?3(ON;YvAI1WWB~8=*Ip;(F!p7Lxec&Mh1mosEFk4?E~d-nz`bS!eCN zDxHfYNE|oOK~mAPYRvxZqI*AsaN`6c;$Zky_o0mU$_(*#A#%Tc@5g>^NTp7P`H@ea z`edGiX+W{u-p&}_c5gIjK!Y%5M{!Ia@rHC^^ab_K-J*r{I_{v=D}&!O;WsJX4M>n{ z%Td7Y;)(y^_f*l&lM9EPoXoI8c=b^{~+ui$PuNmai2sd%c?Q_|NH zMrO`m-;u)!cQT;x7gL;D?|_Vy8g}P%?qr3R&66znt5;??5R``>B$>#@OKB*TZ4`72$KKgOpHD75upjTBRwY@f&655C6TNh zBT88TnS%D`?x>e)SQZI!@sr`Zy~sZSI$%*|EUn(9jbd(OS43<|#yz!3mC{Onir!au zR*btC%!Q#~#luDpyn}VTES*FF+iQ5{zr`!yEatng;$Kxu(RStQ(NgF?>Y~Wa)ZpiM zDRQVx<)acBfBpH96V4Z`Ow}!$HQ=&9v}-5iAVXn}`Z@}7#E?c6M9V;bC7pBrrr}sT z^1LHHImQY2?4|eL^)b0-;GmzwV7O;&NLKOE)My=&QyGWd4#Nk)sdOq1hpuLeoz(Z7 zp+X`T?wI)E-riYC%A*m#rI7B(tGPDWG8v+POm9MoA^L8jf{Nis?hIny68Mth{iSQU zB2NN6H)6^W4qsP54W%3vooFS$!Mtn(cIzbE?McgToo9ATY{}@+V$9kFXa8YO;8uMTAANDbd z>f$+9wd*bmPH7J15kxJCn{`F}x-$F_KLu?Pji4_>tRokfU%X4QBxNsW7Ed|f4a?ut z)>gsF3gxr?bA1qOg0sdj``DU}b>>TAvtXqWN#SSgYE>`nJtTfb)C{?0w68mvdW5}z z8tw7wc&2z8U2*(4D?0f;XK_+dS!B;-5dCwPzpCh3Jh{U7KGT9W*UUEsUBzkD58seP z*wvvG&AKPWqN~M|x~9Ys!T#5pskGmO`S?BlM9@UBye_-H^v>f@(`Q-HolK129QJp)9W_>^L67F}f(V66^a?zRmEn@Mh;MpYQ`^Re+ z1VtNKI+W-6%qM;J(5pg8B~b~EIg>o~Q?WRoQj5YC1;yeS+savOz_Ee8uH5@4|8)PA zY}#-`<-eM})MeH1PAfIdAKEB`BWztAG`GiUv_lYW(0-hd-&M!Ub24EOCM=R8Ariwa zTUO`oNUQc{m+S7yinbMLQ69X70*7Z9Sw~7Ta_6wG^p1l{EcoO0@aby=*zps-@g{D| zN8;GWag}H9G;$pqs(16BynGF)lN%TZeX2L3>mCR7g?6{c*eAsbE19YR_*O~YuxrzB zcYSlu;=A7>`487YsWqzetb!QQst#Qyqi=$0Ysx-SUu~zi3Jd;qG{it2ro(kiy8j*b-M=CF(5tYzNc*OO>P~nUB8P~kuzI$&oAfBrTrj6YQ ztJ^3`F=h!8%<5!{xeD*~468M@kS_ncLlr#m#zc}tm@v@!f| zV&cd>)t7d8#Q06F*3>O!jQm}dV;$NU^$97uh7)%rx|P%~OXU5&d_T<(gB}n>-GGi$ z!44pP)#!#8M)q5zi+FU$SdY<&D>8ut^TgX&Mt%s|ScxJN#URhbp7W|TlXZXX0Ed7w z&sH`xYnL{s{<_z#^lbI~ZDm}Le=&S{!Sc9+kLO>kVih__tPjxTY&>fGxwl0}(OlEt zKOncr|9zb@!c98@WBs{~9=e|61z@f$JQWb0uU|>?A4k52Z-#yH-9cUglS_~Z_JahSn2)46Hw3zl^6NUtD6bF?so3vr;;N{V<&C9+%7@%1^|_2riH`PYVF8%*KJeNRFSj9wbkbkXhIEK zHE(nhShT~Mrkr0AUbtgp88~)w$I9pAU0GEdfg@~uuy1a_|D`)6GL%zkK#Bjqw!7qq z@jS!ha((YZxL>{~8dEYo13hK=rS$PreHicDOJ>THlYV}TE}pnojOm0zOV6`7^c&BT zQb%4FM(56>7{VlZ)MN^D{9U?~B&)TsLx9awlefLx-qPem2y%-p#-u;Gjdo|ccIDAoYfNb4ZN5dCoJqFTrxXO614!f5~}u zp6P`pRRY>7TMPArs%Fo4t6~gT=(>0BjSO|zQW!K$^`SveCnWQJ@UE-)XF*}2{jj(u zmp;cWu}|Hzm~Lg4cb)Gu8=hsht5%*3)0{wg%8+llbTWOoq(2qB>laz}k^brZu$j3L z>azLK)LNT4kxi_(!%Vx(?cY-7Y?9Q7$I;${Z<%Z9)1w<|ygJW0#EoUOu|)<6A(-zC zWwTd2wL%U5@#oWgNYvsOtQwB*?cW~azxHo65P zW}1?shqe$!C^=?sD%V7HCgj6A#hkFxE;rsziIw#hJvq_IMbC2VbtdLivktd>m=uB!UJNVI2Rr5#BprrMHYO!qwUlU4HZ({p}2IyjK7G zQk+5jl!efUwny6AME7DN)vdLnnkaCSC(>tLbM@g%dSd&u6v3A>S!1bE^>ul~2|>-N z7oi@knO9{xlSSF}YmhR(?q3GC1mWq=laOJn=SJOM*Z}7C;_jDG{KVQOItq$Prc~Uf zc3+*ebsS6t4~T}Gi_B8pPpZv%OGFAhOnGv)xqda`@3S{BeqB&qZt6R9xA;u+zENa) z%cTbIVAL8>&)p*Bjj+3sNg@8GXvh32rt;bG^Kjb-hLOjFt_7YUH40VV6nOUy9s9ZY zDGjH!EWQV`U<Vke8^HHuXv_Kn5q87dXG~V^2e+G>b%J?bve_KHA=txdw%e|S#Am1dgsiX zZjzMi<_Y96Hr7j*O6zd+1Flti^1Yka()2hdfs2_9G6g7)p*iRT4S@ZhM}CUn?>}He z{Fl0iQtHe6ZZ98EJaYCmFkaotf5{4VT4C9|U@qG7NR)>qEJ=#<|C-S~--Veg7FMRT z?+quzI_rm~NmcsL+Vwi=t$^KV&xzdCAjpgsS<)N}JpxEc25_Zgy0J}E)d2wY5_lV{ z^CTWiJ5@+WNN%1nJ-^MM5Yo>yuU-}GT6l5rf6l5-7EJEscXX%Wg#0JK{AH*Ew%!rI z#AOXwL4;D*j$hFOVm;#26fFn0fyJZ+#ZCYh&P^Vmfl(D?!nXri{gjIRT!G>?PWj{K zG$r4&Bb$ssI~y;y(jD&L?U`Q*4Z3>4qDDQq{X)KAqQJUHE;=^T-OX2`1_oeHmcTK{ zG18o%OYB$X3)CMeSQ`+S*0VOo->(k^>iSk%I-PFU=73RMb@aphFPeS++PbVKLm;;I zbc=d7^BdqrUk$c936ZmbbXG%ZZgC<$>9yXn>sJNYz~R@+evR$9MS&}F$(o{c-55FY zvv=Qf<$)_3Hje^N6N^lR@ISud%-QcVlT?+n{9zK~tJqbNH>{>(cD750FS!T(BstQw z*)-M3QALTIcK&@778-Ej6c#^{PR$%focuX5(hjY}^%bK2L|5H=S0pqqMWqc__ah_r z$$4d~2x$pW=4MPRXGTz#s=~tWU)Fr)*04DAYlqNEW^kVh6RDm*dq0s)TAXVQ1RJ>TdLQ0U8GH7}urutjiI-X;V1z1D6|U#B4t zA!%3qg|)lqbq|`E*)T^+9@<-X{lVMOKvL?3YJum+0y_b6Qpht2rJh2Wkw>GStHmx6 z=3nYRUWAY>Sy{Wn2`%`Ic1qbrYgD1dKJ<|yERW~w-)2-N@q4PclEc0#i!L3Gyim4 zjH1r6QdA6^CkRf?H4LxgLFa{qSF;9{BU^-omw$OyI778-XN0MSE!=1f6@q$40&od;)AR zed?Q@^KtFcF-Jv5@co$x)oqDGrcPEMX}J(fQ*l$hEH#w*p>yWGVnFbmR9a5MgQA#C zq@T0Cg&ae%SGBRa0{YG?#L3HS;9(>Dg&>W_`!H$iEg;d(g4rV%($!d@XTz{KK|X-1IIPa)#i3 zndPZPH&QDZ2;5R}I;=CjkhK2}@yK~x*l0(eQ?j2q=S7F?e^^}{*!J&UqNO_c!3eFt z`Py=~Jgm+?^W|RC{L`IL{Ld}9B8%&i*>#dd=s0CeFYl`OLstzn?-4|h66;7cn5cJD#awU^G&Xk3!ijZuG$FVUS zh2)zDIB~BG%^a!w5I`CUw~)foE9T}78{ZBRnG*$Djc17ycme3}1_>^2^Z^A}rB?Wj z7MG+%@AmXv_Z!LQc1Z%zhf$=j9ZXZD=OmV)B8B(VFuxNgK&@cHk-$Oq>uq34rz|VA zgW3k6^rmH!r7CR*5D0u=zRge8fH2sUsXB-`2mx(jN|Jb|{+T`Nih|7Z$-E5nTf`lzFqKAEn(hcB90-1%Dy**xO zNgjhwkG3qu_grdg0N#-O8hN8d1$FsW~i;MCScz^m(?}Zl+?Am$Dj@7 zO4WJR&P}3|SqwkKkF7+X-V?S2o1Zd{=x(Am!q5ag#^zfgMSknYjY1|&aa1}aL#`h% zUwz}l|BRc8MwT_0v4t&(5BsrHqcwb<91`5qI}4emI^@HT8=T;Bl49}mxOW4F-Y%JG zG4<2PPXrK%6j$8l=5YCRDa@Z6Bd`50pSWRfjnb4oHY+v7ydrF@QJS}#;L!fd28+bi z{()@ecrP5?YAN%@syH4ly zGX)9siFo(1)$= zk1AwiARU2hTVh~E^O)xk`->{5Av#+LznR%v9Z90R5OkVLBYmJWWJ{$7HhuK3KyYkv zDzCJqXrR{0p_m3+?`IC^dt6;!;+fXfc}raM7^dh^Ja5Aj(P+g7K;plAr8g(>Qg8Q$r)3N}W& zpQtep+7Zv$E_q97&u6py&@e}FU4CPA)g9eQ?a(UAzB=x8ZC6jTHN)5bSNV1tY<~5Q z;M*tRHv0gLvdNJh+C;6_O)jm{2N9n?iC+k9j|0#PPm3|p_tm^juV_LT*w5`4@A%sR zrL%!};NXg*N@<{HZiw!ngsx~RIE1{@!I5b1TVCPMS4IIA{iBiBMHgPs)#^r{WhMuU zk;l!vHxpIFiY?HlaJla-N(oPoF#Vl{PK(#mb*hmnS(UHZPs>y0VvRvLB2T48@#(+$ zQh3Un&K@LsG>&y^v+aE=tVwMeSxwFU&0Y|Ka8WB;nz4|O((t2|o&*WsemH#xj@)oW zIk0IP5Vcl#_$z&;T&1FJfD7Pd)3 zbN}R=q~`;hFBzpzM86cM4-ah#`Wj`#1B)(IKnR7~Mm+y%rBvj- zT;Xu&BZRoI=Sq&vg!`Cynf2wz)F!7{^=Nsp`+CWkJhE5M#g#DBveW5j)Q?@WA^-!4 zd)Hzkd$-0`u;qYe%&@&AOY-fH7Gx21N1UCPzKUc;4FxWFAtG65@Pk7!MruHI*x;fO!g!$M(vsD+@RaN*g%8ov8#Xb8paX2n~wdV=y+%S%-K2d)HRMI8+Pj~;W zS~fdTLKVDZK_ubi&NmcL!{4T54d3W?He4LFX#z&1v-u<%;x_k*KLp=1Pbok~(NJr*GytVgV z92Xwn_v{*@XD^mw4iKm%PuP3hwNkXlc2 zsph93?~YE7t8cGqt(H#3ZR5C&xpTy0cnU{_nzhYTNOQ9eW`D}k-3c^#RYO{BF)?l; zD$G(EFkdw*iJe8ARg7MkTlNUy9OZA|NWh6X|kvq$$D~@0nH^;64L?>!Pwr zi;8iF^;t#0fyaaan>uSY^YtcAE&A&9c751RhRho-!%8zY-JsYPuNC8s;(MDq0#J+!9M3=qZ0U~`;F=dKNXc2w`fjKjc_;q`o@Sp0qJDk|zD zWlj+uOT)mO=PrjZqD^u7$H>SH9O@gHkPz7Gg;4UEwGmzAK6zw`jBTJU9V zRE%q==9NhP(DIUjI!Fbn{^&!PrrPk3UlDbF8f}hEQZr)R%whK%1-*GhWEMU?9KDr$ zE+rhO0q~!HqLUL;vYk(CO!-VcZSwxPxcndgkXQ1yFL<(vc-m8Z*Digk4ca$uG4KHb|30*9;OXAZ!`Ak()P{)L zC-CB$1uLd>ogDwXP#&0_#g`_;R!e3MHf*?Vqgsj{biTg+vG&V2>$ee0CG;4y3aNND zb!hOh8~H^5sx=@qWbAs=jSA`LrwrIO63VxD%n@`g)gZqkiModVgU- zRG?JB+ACb=)@R`D#lMMT-ETLev9niyGuVE)d@KHVcZ_sw?fs0(k|2Fo{lg}KDgCbx zpEW#l7BzDw?Ume+s%Sx$%VGFfVcma#|G%uF-mG76U zwfxASOa3KaD{?Lu2CSO6had`yGdk`nDD|DdTY}ZeBbtRO<;PI^r}TzO+#@g|Iq$kX zol(eTQ>y1Hxd-4OTc~UdH=`AM4g-8BsX1uNrkO_VdESxo;!SOw>@J`d&*`p)3qD+DGXv0W>_hVa@rM%oFHe>j!gqb zC)dN=fh4nLm0s)Iskzvt&(u{J>b7pDh~^pEj%-d-)C|clQPX9VB2f!#7F(_wNpyDg zyczKG5i{p>mX-uS9Vh?>YpW=hOycEzLp>+NpDXmzVq#Z+bIuQTUckmGH9+2dX*m~h z`{GPctIJ49ftepd0z#3Ava2M@k=Piu5O?;qu2P5+(%On@;GAK!*>uqubVQEAB!4fxn|y;Vd@H zWk)h&Ri_iO?tgkRDks}el^|k+-i`lk1nb`#7P!bzRJkLH(V-P6!-TypwI#El&CqY> z$O3szbDzmWt{j}+ublfXwWuOUW59z4b*#RQ(jwues>G0tgb`@dOnz^|)}WjR#D}U2 zJq3jR+5H1rlUsLz8?N*(D{|!$ff*05+Z>MFf(#8 zH^*-ps}x^Yia_E~dNGdtYeIq-J2u9VtwH;cxsK4qi@ z*cxZW8VwA=3U-UMyY%U_JKeeBlT%rUV5Tw&ggJ|hRHqJJ_7`&C`w94kA|)o~V{T`u zsw2(zsMA&5L|JAgi29%KjMU`at6wrE!L(}^t0}J6$16v|$V%)L8u>m$Oko50xC1Fq z^tiDkYVTj8!fZAWj73P?Lr3&6P&UAj=Ae;dH=zTH2Q;p|tT2a=Mx$ovMpEN{{< zb|0Fo#7Umgw#84Gdw<8Hf=XDm9d;e>L1{&R8#M=s^OwsjKCAh5_NIiteATfNq;ByM zC}IyQsCgA&wL_#T(vK>E-BkrIz*g42S09QO%sqseMUzY^ORvx+to3sQUB@JKDSL_~ zF@-RjvC{5wXxEqiX2~QtmASk+TagC&#@Em4ztcW|0jXey-wn{03cVO_3ZgbUNKl28 zta%C}BHL_ww0!yZX2rTUMdtECHHBoH_x<7}U3uf*o5h!#2b*fmz{?GFgiN_8(8HFE z86d27Tumt&R=32}5SD;_ptSE*mO{QO=eEg*M@4(gc2OydAc5Eh4cDqZCm zc$%`#VYET;{-qSnZW+C;f2UL=rkMJg=*({JJhRo2y(|-#aj#}@LBHUBLaWVxHdD_} zJmT6OBBx)TR0Okd?Htsu*;RshSMvL_qljD@v?qJ8m2orwX`+lpbjmv)$kAOY=8yKj ztcF?MHu^LC9Yx!EYZbcHd;Hv~RBKCCq!>1PDi;SrS=Shu>#p4cnlU=POCQue zKJSZ^X`>>zZt_heuH=7Y9FYyn2vW+v*BTopg;@7~isjCOVplRD=dC-ka9V z@4C!7Y2liKU#`e!x-&Ye8BrC_&3Rmld>gofVyR5_xex`P=idtDYd8Ud+b|L@7 zyX$MG$AVcazKa}rHR~5hZ;cd5k`pIms255?c8nukYX7aw^dYq?_=*mlbXII`pvS0E%RUT1&>Bp1bZ_KWi7@TZgfQlnp%n*U=v6S@SeuHmVoK`K6yTa zs(IC^aK@xe@QnO9h}w6np!g2{NfV|3#1l1592F|_kYRLn6*daLdGKu1Ejr4v*JzhP z`Fe^k9mxGT%Sy>|=ymaS+0AbP9_Sk|8!-r+#+s>mxO*A7Ynic7e$FQ9JbuSa(Ri)2 z6BX>)>S+W#`gvTf;rf+F8Igo^{p9uWvct_Z^*KjMkX%w9$2O`t`|)^mK%8M& z=JaOYOikt{sY^e3$NmG_t%Ghc7ryOq$yrLRJGP#!+>{Ad>ZWO*6IBP zWyg(YFNXjA?!_u7?>JsAqg9RrGM7$}RrcknEa+-hmE(7gxfQ=bR~P)__VmCzQ)rN* z$^~n%=jtN+=?fFUp>LLIl074!Nyd?kPd*avj-RR&KTIqFe1^Ltw3ls!8mNFHauiFh zcS1keelKI4XGrba&k&3HWwt7J6lLpvq#!9z!)N#z{PtO5rUv()7q2S5y9>y01WU}9 zK^mPX=M&=Vb#F2oIv-f~FLh>asX2w3sgAgzr>4Rabu);OXDPTQ$mcSrXEseRWFcb? zT-(^)3<0l~VSgvo?pDUIu&T;Xlv1 zLgIDGx{D6G49;hx6&{GHCoYHNo;C4A)F1NW0;MV2FenNiBK<_0`67?LM#g z<||j=x@m$v^zeyvtDJ)<4&f(#CUtLyPfX<9d^DRIFM=*MjxYJioyJ1nNDZPFH42Me z%P!;qfx=b#_UvKkc=Juu=AyIHeh>maTIYSi@5wvybbBWmPV^Ws69;EodA<#E#)^+! zFf8L&xb7cGWy2-40kD;$xHx!x&v%IDZYD%P2FxjVO<=JzK%tBWV#g)a$_l z5?;#mgIV+c`iq*Bm$-i#KKDdzvkwZ?yOjw+BdHSR&Gk?}v@l*2uN0`~+!dfNsZaj+ zkQrP3mg_~&v+=UqyuxjbzLQ2L^bUCbSXlEeV4KhS#olc zk@0|)5_=TXvRe<#w~-dCNKvyHhc>}(%ncTAtWCNaTZ@8M> z?6aqXSsm!D!~UlLXzFFyoA`~TrN=O@#Mo!CI6F(2S9F#XOe>E9fP*y|i2yPojUL3+ z`MVbmtmlOA7u|st@nunzJXQ1P?gl~I{vRdtz97>Jq|1@DkrNQ{ZurO#Ts~hR%29FD z>fP;bGA@Wdi#5YS8dc-zg-y5&pL?XHpEU4@?z)(jv?c*l-;9nR+@gaBmD07Rs78ff z8>31X^(x`Z#yqTmzl>Wam92y=O&XlJTd!V*_wVOQDD8;Jh1w{I7mf?<3SRqz4lrV| zU$x0%vtj^xoS9&|8^)wVRA!jGGLEu5gu9@2+eO`R+Qia6m?1l2;qu^edZ)S!)JqCX zn0BshM19n8%^d+oUnt{~PMdE{5MUMRKEr;Cql+lbwtS|Ww##6zxhrdd4_jH6WSY(f zDP}Kq?+Zjuq@6AoYmVxX(Rp-qeAgXeV)rvn1KV#b4B$Qr7jpq77CER>#w8bdKzv!Z zN1PM;_U;BI#nwB$FGZ6FY|O;~FBmW+Y6mpVzE5N>*^4}1$ev`kc>sGUEmT%D;*T#P z{>i}ak^{;-{#gIlCIwqL@m-)YQQ!-K)DzFtNBO26Tr!7eZ_^iEy0O5RTXkx zzzJ_1Sb5M#BOoAq3DGHc_zpkE2WUcm=_OW()K@m>xXU=}N@itp-_fHrVUV)oYRyYn zJ1EU-AYFv4tq`UeXcV!Cxc?NAQmqr|-3nw2Yoit`2B8MyAi4 zUrm{l8Tp{GUcwx{=asv;<(Rl9+%q#{HuOM~y$L^_^8UFm0Zhf%@f#t6=o1ibsm)t=<=_8|@^hVxZ-AqCkA!Csl z#3~v2z~x6#u8g8sd(*Y7%H8odxTX_uPbbANQ_Oqgltg6Za`S4s5Cu;b*y@7^hV&VE z7%~e6(a>5Y%hwXnX352Xp4s0A76teNU@0=n#~QG^iy*a66@wti^-mA)j?#O>aD+ch($3zD5Ql|^=vCooCFDpq$9qnGpJFtLvM>-nnxl)U0u<$;3)mjq4 zdI6wDV{3Gx2?mbxo=6O`L0U%z&}4hP;_hM@i0w^yEZN z6mH_rn8kn;d;On!%3e@ungzjX4ctQ#-P(_=)jve}Z^QM^mc0>hi^Y7WDcX5ymWFro zz-E)_i46D?^UIz%D)UQ*;>}R_Y`WH{#^hrFgeiLLBHbiy3$`-zx+4KrAmy`a<2*=s zmun4^N)8hzpyk0ruvlBFE)bOhKzg27OFg;NOLT?Y8kwZhICh|YQ<(@DlLW`+H$97f zSE@0}F{np zf*%@^S_os9FiA-V*`9QDSA=V?ZH?jQ^5DsxHDwrvRt0230&}&=moIT|8>lOrkVmjK zMB|tTSkm!6GOeP5En=co!>b`cXm!t5D8V3RB;Lwpc?R>MkbNq>1402~f zh(A=41N3H@NdSSWYzX>a-5@X_+t;dtcY`qeFY{ba#4RHw>7-nEH;ihchPpA52A#R$ z^@gKGV||WlbDgjDrBfM;TjxXG3dTzpQb=#n7uR~Ej@Et3OAtkUoT>Qk>NBdo{+cN@ zQao0>6Z@0RDFPBG_d9-Upmci=k;$~I*9v^R_(j|t%?*)e{NSkfl;|a}yQejjV^^ao zyVVEuYSacw&c4aIG8d=T)pgip`zcIIY~vn>xnoIEA0}M-cLk08xu>}>h0=A-ES}M7 zeoaPeq*dC)A;ruEwp3d&SYGc+4CzXy0oNL0u-6|?&+x!w_1var;u(2XTL0#C&7E{7Oqv-b{oZ^+h>&lH<7lULz{SAFTNX6Un9zTcd>OWTQ5 zmbMTg`TyzkambuTZ1Pta8tzQF5SJ)`uU1it}Mq*>80AG zv?@?zb}Jb^(%9cyc)0x+Ei;$^yJk(dQU!xFR-Hy=Gk-*c^Y#{u{&u%;e0Od1I4)?! z)kRL*+g$9=I%Oc8o5~xoiDv82k^&gVF{ilsgeXFRz31RpLo$zWouwn3MNRKvU3k&L zUEo>)6oWoM2?O-xxK|Dm*YYlj4LU*1Lf`XU8{P$W93^&kS5QSwcG_H-)^}FB%92vv zta-~^XLkNHIT5cs;jqqLlK)dF=v?@{Mdn`$t<}u%%;F-3Y$B6zs^% z3;_-J)N)|PEzSZCy)SXn@QRnU@r55iPjTooT)berP0PvkVEWi-bTN6n?B3M-Ru8jk zus?-G@GiCUe=9ZlK7eTB>w*cD!%fSTqq7DU)8s3>E9KMNNjr}XpSMGawV70t=oZ@v z_$$kfgHX|14{>R#Y82(A?8hH0+s(Q^IQ4*zhC+i$hIm#?@`ng9NMzMqNMeUs2c<}n zT*x*Z$N25Ixt<|rJxAjSckCBT{b4pN1=*ZsNNM&-lWb30AFUv8+E-eGazTKw9J&YesUK(KXqG*6&wbmx z8TY+Iwvm-Ba6{a$!i_pY2J@HnS3^#Bw-ndF1o7&Xhudh*_TmUeB*IB#!5De`jDUW= zIzPHhw%>jb-g($UJ|MsvucLVQ=n+Zw%g)K+=je5p{BG!#OX%pJ9Epg`70mCjiQWqK zbJ7-CpDLw2a)MeB=OdfDbQGokC;scH{L4q6hmoD3=Rr@8hAde<1gm@)Tv7EQ^_*sB zQ^D80d>!+FzE5yyK+WOpk@oHR9Y(DE>3Fy-REvOoLNZSJiU24-|xwq5cU5_d=ZcSysK`Rj*DX^g%_)r$HlJ)%e$z%y-zh=Th79GHC?_`nY4tSHJGo_B%c`OB4 zGHYF<46lZ!%0-XrF`BVK8HgPwgy|>m&Av_3KvBYCM^Anen#+Xn#y}_;ZpI{1kurbB z#dwGhz;|*FyOn0)L(_6oKDrdXZb8^^UA9klI^Pc-n2&siZL1)dr73nzVA(Pr%L3@m zIF#!r5LvUJIZnzlNI^TwkE=|?kQ@{D-If6DxutG9-x*zfF)=5h^UrPGFqpi? zdp5@=(7mhD=^-U6nfbw#%7RdKQ(*2IMZMzLP{Rb4*tzMQFvZOKDTO;%w{0Zn(pha) z?Pn&?`4Vs=z`TfJvz->ZCmqQoCnT@yb-gEgf{WTC8uM=)0&J_2y(nt(L%Xj6h*~aY zb(XN0s%K~i=y^^v*SEPuw+!3F4n5rC>^{#t_Yf4V%0APdg~#~D8NIGa^h-m*5I#uB z-n4QSUjC!)$M?qApp=FeEO_^2win(F_RF}&%bs4f!sEaDvncrP1^>eE=ty}qTp9e# z`75kolc*bw)}Q)=#(NVohl_DC03VqfncAPxgv@!DkV0m+iIqnW^owjhbS)6Uq!*Ww zB7D=27%v<5mhUnmS?G+jSO(}^nm!np8ezk?4q{y(8%xUtXR+-(#zg%PjIQB?pUAGk znvGDgC{P3AOAhcHN`?gw~1X6G@h9es8wBPM3 zI$pc-@B1FLU&qN_Yc4HIduGVozVvf!NC9U1! z1ZHcm`9c|Rv(tO8JJJh)^`|gvxLWIqGF6DXAuLR+^YUMQ5++{!K5I3ae)lY|qbYup z{^@Q6c=i_8p}9Do7HmAa9rpa*qQKtv*{qpGe(kx_o0kD=QGgV_SYiaqdMp$#(!4`b zNP=&_!3THD^<-QM9E|NTrHk3$PyV%AStoyA5}qPbuZ-34=gFlVkymc3`)h{CLMi_I za{eM?JU^`!Lbme#HnVPUAwQ$nJCXE<`h#lsFS(J$eFbyG#69czV+H~%2jXiQ*UafK z(+oHf`~2n|)%fxFC)`cC%tVswpDST2Se=?`3V;ps)gqU@jv=t9FC7DlS|?;Dy`wul zU4K9plW$>JEWbPpdj1xw7w(gmWNOekoSa8HWBWr^l7GCx5nph`ph$UGi7ab%{gKuh z$!S{wB}>McXR^i|Y+*37fPj7qS>4tZ@Ka!(CE`xOiAhEaduDB@;4$x!cmX3hps7BO zP+Gj7AY!^eD7F4NOk9ieMqd^L%xS6BrAOEH6nbz=jZ7f7z6K0UyjCdIVi^dhtxR+J z?KdOL#tI2$HNZX3+n(vOiE7dww{s_ikRi5^lyC*GLmBRY?3Br|hU3%LM_Hc#P;2{n ziuy7yT|b{qF+q<{XkQBH#I4=grp`{-7()dO3fmf4f)~logPRl-5x8_V68`qkPAP>p z<5_e0B%lV_@ioUDuEAiy(Chj;*Hb{%&e|Pg1N^iNYIr!NxPBONd)N^b1HH%%K771` zb^q_u&#v;3*Umq`mH(5D=03Vaat#CCy2)$6b|iwtgxB5-n9_3x{GzAO<=Muw1VJY6-O9+d% zD?@%I<&s*=F`qVuovRDd`g#kQxd3%F@!@bu_=nIU&t)44R(mIw1~BY(%LCq&1I5Bk z%1Tqeqly>pujwI;?g>S-g>}5SDy4!>Lp$z6WBu9~_r{Z%(isqdY47o-E?$O_eG0RA zhd2I6J@c`ynMVQ}FY$$SY~PX}7}wY$>AajDN06!>C9bWfK5~}}fG%;_Qxyjr6S9C| z54$hkD$&;FD;~~kbUzOpzQ#%Ju30U+GrQ#<90@asHYR!-X_x(g_p^v2jZwr2OQ1s;=BFoj7?Dq4WR*HGw3E6RZ??62`64i}< zd3!m%o>J^Xa|LK_ham{;MM~?L1rKNK+dXq>5%Az>won5qsCDsgU3jf**7X~{gIod+ z=!=(zFP|C>eLF-BBD&1s`cmcm4dsZuvx(*7#<@C4V9~@U>_8RY z+stL|Hn)x0exH7S_>;%y@%UW4-sha>c}1e=U&I?^ft9O$XTz?K8H_Izl9IhtS5H0} zJA9r`qdr+^^b$;*uc0qN?$Z+COl85ENKKCBL(!4mxuaD=8kCK>GYsdE+}}A*V4_yH zKP$yO*r(hVh#t7`VOah+)jVZT=wm#`p2CyI&`0V~M2B}yrf_d>SwA2u5KZ0uQ1a#9 zNLp1}1?cy;C&n{=nTSj$$EU^w*r4D4h#q|Yq{=4Cf&Qa7PfK6UpZ!Y#qh9dqP35Ji zvW@Ai^B>B~&Ok3!Ty!quGyKKo`eg4CYfg%dCzu_ z^4SKoH=bZ_$1VudkK=|s=YP(lP#$(wa(g3idS4fo2ea# zGMca+vkT9>bETtqTo&LE%_!WzO*U^t8DGa&Lg6}#u@>LXlE1|S9en9`_q^4m=(jUc( zEnntncT@3?!XNHrJ=}U))lD7?m3DZroSf#wOWBe$8nHaQX^Jp~+ykA2OV=i_f(AyP z5BpsbixSI!Rq8(dGDGK#$@0uToT^nKcEWvMgsZDbNQb6*a8dK?#v~K>{un5SPH}8T zaYwrayi}Mc`8n|<2Lug+QgS;ncEFO4FJEUOS1fwU%Uk4X>GZEeG3wIG}lS4iy} z3J4O}o(Ya|5b5vud+AyK)=T&uul~}u)$h4AyyLv;Wi>mugE|pis|8vD5Nw`7Mj$+A zO13}Xa+jeHvfAIzPEqxxbUfy60d2^UuB&;c`gQ8(?(wP+#NQj&6k3~MuP%diMjzA9 zP3UajpE~0d2vuI4>Gup(E{{oE6ba7V$r_Pp_zU~Rk_kCNNkO5ZR+sgAKGP{8mRl9A zc=NA-+6(tM43_m3vIBgxM9u&uV&3u#YSJ-kKTn3f&Nv8uF%&LYh`*@w`cnK6NLv>C zbt`_Pw9^G{`8!;!Rn>Dln}^T%t`3$rPlAK)a_klOs`IoePVn0h4_85$60}v_WshFX z4bCM^opcF+t3VIOp-|{92eM>zCceJw@W_(fhv7y&4ou)9Wp_6ONVr0jGKx;|W`tOw zl*xOPYmaq918yKf@#pH~xI6{|#xkYKeJu>9oJqjggVfwfo7QyzLJ;@N)Q6 zw5C=L1)6nHZ}h~Gw3wnf`^DFX^KwBS9a>2NDGBVz|14IRl$pArImwF9Psakv%6y@x z#hzLht@^>k90NnGNDXX%ABcQcuwkZl4$7owpdPq0xoJu)632{=E~A%UX0?Fq!Plj6 zr@uht72(4`9SVUBkBCOVt)EQ6eE`ph>ibu6ocH0^pr83JX)Qzap!#9cvfpJO`ZCsS>aI?Hl3pzMYZLIdZdSWNpvEC_P3Q~kH;xyEM5&GOzg5f5 zC!ULbGLZm1X{mJ7K`^ zVD7}PFg>)FOKAtsuW*HzOYHHCGp}wP9rStnKn0TI>%+XrjF*JntFa4M%gu7YI10L7P&yL7lb;DomsIb&ZyI;PrGZUd|TDoZ16Wc3%zeht}l`lbl z{MkggWer%(J7;!*yQi+#b)uq}yR-hFay53NsSpILvEv>S2aA;h*6!UvMTWhk?N`hF za#CE$v~4N-MC=aCe4Dw+yZzG|W7Y0?(-s~4M`K~<5$Z2`Y+pK{xKxGOZK#ubalu%A zdG1cuLa$-Zri+$aN5!d(MADWb!8XnjA~dI2eyRzIf)JlO?u#I9+0~64)iM8f_x*fT{5NOF_G1FT8~cNjIl)FVB6iN>Dio zYReN&-?z-nwic7&lK}Lk%HQ=HgUb&d*aaSxjdc93-RqDKMxtbwCY6!T)=0N|9#1F6 zI<^FjLj45`4wvjS6fe)}1^=b*mvnDOuB&0Tmn#N`Zx^!XRW`#8N?L9fQ7*Nt)2Q8> zgq6y3zPWUzYhh$^IzMuEL#2bN(}5|eNpQPWFvC?9hoZ7J7rNbMHFji6sI(yq+xGDj zFKWC8W85NEqbC0l^3riKhOOvO{lDIx^UBKXgqv;!gas^2Kxsl@r zmKUc)T)q{q5LXXh=DPN1`wuMruDrDwTZ>wJ4?GhHyatE%aM{n?tlJX???GB54W@p* zM%iFgyY7dSKD7+VVF1e3q-vs>zd8OK<6M{zRc8|rsVbTk(70Ozr$lpqmfx>_!K?5U z$hXfm(_A!R$X}@(l&Q}hC}i-wb^nDb{>swxZJ$<*c(lISE>@V^O2wN?rwi@>G_9Fw`ZKu+OZiN<0= zj=7JO)tu6CY8%qfHg8U|RrN3_%w?C95G;HIvm~kQPB`nR&@Gy)tGCA_@Hs}t=|t-6 za0jnP!N7Y7?_Z16EQMgkf^;8fTU=hAw}>P!)(3;lw`BR${2a8jXuS@e`01KKM7R?n zV1@%7Ks%vpUFSsF(&O5^q#<`z6%q5DZ`)oY3sc@rv#ct3lYeIJHr#)uuEaSOZ!hwh zN{yP?k9#%_=qQ3~GA~Pp{|NLzAM8YI_S9!=f<;37*iNL{&7KJBg1THvlSzpS3tz~F zJwQeiU*EQCSk%?7@!E}d)bNO%X6&}jOP^w9>CF2NI_Xg}Pta-I%#Q8;-{vggQD>ppzL4| zd9;o)=uEd78(!p35PtC_a~cYNa&~KhJ||p1UvK={ElxPz@#LV%q-c z3q6{QCWTXMRi36Imb2JFr^*4r{?uJB2p6DCDLQ^31n*SkMqG=GeHT!^ z8m1BMPdpAZ{LJ>-UaY#CSVQM0S3k@Q$D@it#fI(2IO^O>Ya#$htx6KxzTy)Shs&KS zMaV`TdU*^y@pLF8r@DrA{jBhe+7wA;PO@v@6RM%@-#l}^ZLMR`@t-b@I*Fjf@ynN( z!i}>n3}w}i=0xdB#XmE9mj#uKR}%cTg;>3;)*JOn)kd^Gw|t?2XMeI+-z{VDQkwC5 z$2=e7l>bs)t=*+2g~6fUeyO=c&pM=r2!P#+Xdeu;pPVhaCSZLc4Tof}?A}{Ahk3J~ z-|2sYhW{1#kVLO@+1(ym9J8>M1@?4*q_r`ROaZ#SnYvYv>SifTOnY|~S>#zXRd+Z0 zP?`lP$=1^ttf38hhuz|>^Q%k}Xsl#L6M|MIlUE~k0tt=OSO(HuHHA;tSVA*AXr|pm zdJ|}xg%ZqF-?3L#b``KGWaz|Cl7U>!ad!gyi|!QBr4D@7SkX%5`#SIzO5t!JMB9M< zFW8iXg@01S@T$$)lMG}o8IpKA(x)oo&|2Nt`*`?!Zs zo7MFd1YFzZZw#khAI9Niu!+o)2q-H>u=^>nntg?a66#*ViYhqydj0&Na<*`6e=M{@ zn0I-%XI0B|<&7CP%Aj;|^&6Yy6ZC%&maEvvL4#t@=ULY5x*U|SV+ z$2OGgJ?&@oi2^6F|9xv3h~1T-zgYCF+Z;$&Oh>eO{PoG`Ezt@xUm9@KV*S><@K*JC z0r#@!x8?f&!2RhGf|Rt`#?UhSHeI;g3} z%ohYpQI7W8zfV$SZ`ErEQNMHTi!HV8oa1hc*`re%+`L{EKWZ||)K5EVu@id0iX{6F zp4-{)x?vSjTS07-8RfIxuMHgLJ~*tqqRFu zz$+GnD!=!J8#BQ@X>^jH=c(1}y`;S?5Yp1tp(BBS?Yd;&YdL#7D9UpD{7p?5VVME+i-2zxMb3Yrx3Rx5%v_XugCyRes$B35usrwbjlLk2Nh_A}wyMxSFXX{3 zt9LGfRZs#y_f{$rNr&+JK;2Zjtd*7yUO7nb)gbk<%PRv96Cb?sT$#K z#+EV;4^`wZyQK|vwRjG7OLuq-rezn(zf4a#yL>L~nTl|C4=hQbH{hz6NnsW_=#dG* zDXpQujb8&veYSqE4?fL!MZ3OwDFtq$>J5HveR5)rz&`&Nps*p_6OCYH`)TuFO~wj2 zH~TDTb0IzS!WIvLmT5%syhDs3@9z?DS8xI=)lYhO=A?$jb|)W4S)v>AIg&m6_UNM@ z`G8?1Tk}T9Yy~dT@$f3WT^?ht*-GnfOxWk<%9|(ZEHv`y9@u)1~JrHSJEoUeE}awvD>E649l58TjREd(n2a_f^At98ApZSeV@s z-$3F%K`!kZGIZ4_GO^t>#n)aVY#n0qX|LFLLrDP>5~j15`dN9FFTVertp-*zeTrjEmy~EL=-}6XMe0-_Jf$a$ z5g6Nw;LH2VDD6k;;b0kb-kfAcsM$lc>Z+w6eq|i=;P05!rW1z##DVMFLMB5qQLc=I ztnLkmY!|N|xHTQp3`VOZ=z_<6c_vF1{5IFre_*1FRHt+NM$9o>Rhp(>T+|^spZsRu zzdvzLBG&!``9r)tUkbblZAv#5$?QfgkJM z1d~HIHN&7N2bw|k4G|kFk2d*Fk)4pu4~4;bn&)Rz>6OrsBfS$b`)M2m@1IN2ayL0&?(8`G^8M1}356WO%~@ZPWWz>Cj<2d7 z^o5xf+V4|H+?*HHjsD$;WFEC8b}?|$|EB@j=pAafSp3Y68_%hSUz2P)T2K2)d9iFu z94wmng)0J9m@SF5NWbCW#O_hrhmJ_et-ogM(xiCfs)?P|qujmJNUUjJxYH1f8joj} zCq?kyEWPjvOg0Hz1~*9RhT7MAbZ@Jqboknss(MZgb-_J{^N^iz?vj!l{K&8&V9gGOg@= zv!1_2yI;QyR5b7eLm#LrNa97{R|V6>{0ODJn|Lg%?=Qok-@Mz-f+e?Y!}`!46WhR4 zncRyRuT{uT(TO*?5+P_Z@Gxp&Qy|UMPIF_(bT}Qox6}V8Z;15w#2!OI)|MPo-!r)x zn1~@VTXrSc?d$0u5O*&0j_plrLkkfcS9w{FeyN<)Y_S;{SvCzh z?_?Ucyc8(L0l~W1ONt3tWTbzU7@Oqk&6F4?*Eyv-Ecs+=`Snb2R+a5y#=z}Kvas?S zlm=bm;_5EOHzBB6tyB}rVrZlH)`@r%W(KpaqDTPr12bkT?`QZxTss(1JA}7$Dc#1-^iAxHI@nV2e&Ho<|%&*^1;J6>gy|2V^9*+)V@ZZ z^S^HZoUb$e^2P`6TLvBgsg-X6Jsd-BtfuurW^Xo1{L*xz9~V*IpC`|9*j|+}N4ezi z@K@dC(N&t%@%fy!<@4@TVe=t<{8)#P*`WJ5 z(*vynKMH`9)UXNs6)V+cr6Qnk(t|qF^jl7nPzBNJ`Kh%7U!w2rPg{>iJJ$aw@#*13 z*hJ$cvw5PM2k>1~e$bf_oBEPky_yJzN1{)h_T;2+Y+55|ZXfmQvlcYuQDMMq)uRZ7 zXfp!kCiJ7{x0ajO6*Ch}IBjc7aiIITbWs5{6n{KK#p4Q2$=Zxq6Qk|BitSjQ*qM5S zNdOD4RkzNhoIbpS0k$E1j=+3#I+x zN8N~VPu|9M;*D`7wbMXF{$=CA8<$kzQYA*FlFw`PB6dydz$7NTHxwoY|ZYQ)2C39nr@XmeQ zs7wEg#*G>WyxWbBE6zpO9#AzpJrK`V*?SgW%tLqIjxCZmoM++ST2Wpn_0?-8o*#RR zuMAHdM}9(i*ROESt@8=-{w3NN$GaY)ybSVWwLL@px663EVUsZ+)cMYFo?u`wLft+S zwmL08gm%J9gx(BQggBMtK#BQI-FIf5n&rz!cH1#V3~2r(V&(B zRO9ud7Q&}6Dg<2()>D!_ubaihqsZCK<Uj@YODv4-pFv$iEBobqKs(GM zOW)LHqmaYHC)8?|RgD7v`Y_+JRM#W+aiv!T)XR54mAI7!bV3Hcx@LYQvGoKOZ7s1Q z$uIjB3J73NPWg6=&wth&ru}W4(yTze%rhqUCzclv4C%7ZcUUZXwIAdnDlQKTvyb(z zVaykjL!WW}@{wXU!(vb_frHBSjX5-q7(N9D>!-n5O3NlcxO>`M@%ZN=-+2wxD%D5m zceiJ0eYbESNlRSzj{)P-dnVh4_f?SEcR5+yClqxZFg(Tt@VWHkMe6^C^-oRQPsBr2 zt38!=dvgw{3xH1AcT=wSCNU3nGdK*X8Txd&fq$T0<2XWk=9c3^;RsY{llyr(;V@jmnn z`XX>|#vueSQ7?sAGOjGn65|(J<1ZN4i;$d`U0tZ4`ag`=^|ah>J6@I5FKViNQhSU> z5m%9iS8M?-+!Xxp|Df{R7cD(y0z-^E@9OV_>)F1`xH4yqmu3^C8|G7B>D>WNJnZ=&@)ZL$*&-tSQs1E6_UV3VMz#Ip5TB3kc-mGxZAHiGgDc(+I<3qTm$J zQo+;-M|aGk@Z)-&_{0KZ#t>GwJ|s@@a24&c=frd z%!rzBZ9c-3Yu|f|q(9BIesC`^9`z>K6d3IHg%bul7mUd^=W%{;sB5+lcdBEw4>JFq zv|qRQ?mww(pk4nY;+@vchDzr$@oo0;b!=!^2!ZBW29GR5Mw^vST#P3C4!1eE9cipH zHgZ- zNKKLY-!->-vWZ$1GiH5yNN6e+udZm_5d2R47E$9JDrQ=DHQVdq_@4`nqqHUI!dFL= z;i;u6H=7}|C|QJ0O*0Vwi4{gS%f6+2 zTe+|))#fQo*Q}&=RC5rG@tDx#S?*cxv!gn%&V^xgi-2`%%?mq;|L>!if{1=anSxA0 zR$5^lTCX&r{l5Wd%tg}*_V1193s-i!3L2U8`po&|jEyka*^pdSAUDRm)^>Nj71aW?%nPe-E}lb*h~=gxFWS#ITr%n4wg-SD zwfi&U8~hn!;N0pAh6~hw=D#WN-AC`J7-p+l^Do!y%#C=gz1^$`9A1j_oW!OZS`r%+2VF(U z-5Tsk+8#HE&>2Lib-#ZZBLos1J(dYtuNk4)P6dtWOoO%5@(HUxf&EuNp0MbklYTF- zubTEF!Ln)N(HT6?jT^W!*v?h&ZJcmud?Z9qx=qg%)I2`L%sH zpb>@EO?Zqal^b@2B!7fypW4`3-=T%JM-vOQ?C$0aJAKhuK)r6=9e;s^@VSOI@`oBW zY3`&y?{)|gEL{(sS-!mS=fJN0?}NoAn4aVY_18zUovcn)7E=$lv|LywW__CC$=m&X z^n>ZG)S=CyUz$_?h`)k|a{U)gKgJiszV?IV8_thCov+3>l=9wgI_ZLa#;302bS zEo6e9)>U3Crbo#2E~1Pmx^ zH_Ec-{N7B;2@ceGJ$p3mx%WAX8Sx2Z@uw`s?qPjDM>sDc#Ab)hTwsHlt7KGT`Z_&U zH>`{I$Am(Mi-xC*e^+}^vyTh<^zgi#-rLn(caw+Jp5rQED?XbOoF)d~_D?3PR;f@) zH|9La9yu@v1ed!Zi^D5fQ~_|l2j9W;Dv2=~hjQz!zeP{`A>TG@9t+Y>%s&f%JNxqTK2bI-oc7D~%=Gj?yi$+aNK*E3xrgzgZP2&AuPaMx>%d_r0NI$$zV z0K)lK*LY*~iS?c#0#Gdy>VqX~^k{QM9mCMI=6k1D2acs2L`bZGZ9v;;%GhA2;BQ-{q&V5J}m^Mneiq6hq;TSqS4F_|0nBdq#?hd9E8lEICI^wbe+ z^_XI@G;wRSY>Fwjme3s6<7)eUY&xBvnM%+&0oXe=OIYHSD6BP4zz>F}GCx#w zQnAMNClQ`+Hfk2SXXK76Y*7CiE!ZPJMb9r2?%PHLI zY$DN4a8Cah^pbrYGoQWsnFgxNzo{B1E&)qBHsxTRwvfAke1th)j&@F9sQkw(m{7B> zwI9cbSS%b3?8=&=7B_VIv1Y($&-X?>LLEz2X;(C1o@NcDvUmHx=+`_xw{D`5xOH$O zW^wHd7@43R#%$(u9W&cJ92Kb@bR3zJy=r`j<~M>+0Y46!P1gY$ru<9(*lMP+xI7L< zbQ#Yfulq#eR=v89u16hkNn9~G#-1uMX^Qp>&G8INH!smIv9{vN^&7IWEG;`*Q4&9p zJ04vEDXTG#M<$oq*VbU*8c!1;s}I>+4=`6{!v0gbV}U;Cf?dPA%#?-#T_2Y3=~u@1 zJF_W(WSHOx)DGc7a<*?bg%@|-@+riY34ohrHeO6-}({!cp!MbLV3_~>;BhjLlF+z`!mRh(|o<+ z-ldtEM_u6>Bz24O@}F(Rx?<4MYjW|*2L2P_ujNGq0o)P+wnc4ZAF zP3ZOnWw^$mugiSeZEa(uZt~i_{6qZC1JSCvh;Gwbe_fimY2OerTZh|xHQ%MFJ{*}rmY!{T(8*vep;dsv@%3zG;Rj2JLKM6ppr&-drTZv(i$?S zH=euiYCodLIXoF*!W$_`YYK|Tjzp70oG^zRUT=rigmx#3ZyXEiuCY`zH;ztfy5L`E zdI9|{WGfSPDsLc2A~e8HJw@ZsJKrYftlfm2ZX<9z z{Q<*hxkvX2efn<`$e4YMC`BX|X_ICJo;ZtNUKeyrMW*(GdvA$%_#FIF(Xl3;_&b@1 z2|ctQwKVYtP*){6>w9?geh zmA-J|qi#Rsv`h(1VsjEm29GV;hlFgVyahy8y#c{g!4E!3D1eTIb6DO%fEs}W#r%G$H#=2tzr_SNSaM`D3CJxVJNf7L>5!a8Y2(t;(fN;4vx`a?}g7rLdNRD~EW{yyIV zbNjp;iwgbKaszuRTJFH%IMmy}60q-bJ;p)|$Hut8Hv%0<4g`l1zY3ozI_1l?S3}h6 ztZxc?Gui*S0!H2$o02}4YsOqLTjz7IQvl2y-tM}nfF5Y(CJCCVyqmjkt@$D4Yq{E( z#MkY%NR9alhm~1`{*KpnVn=FKtbwtaago7CEI<%3oI%McEqHVBGRH*vx#hm1d%(e6 z;wmh0Rix%WUMtmFTZ+}iykwv(tE|x|ZZl>1q4>3_m`!{}x&OCee&f`cuG&=(H9f;< zm2cjJDe1-E+0ZESa*3lht}nIS{nR%i7xujbvmz9e0x9^O@l2E!>5jbbDbMWP!rv3w zF&iwKg0S18e=MpGNH=eSy?Y;kmZE&FSnofLJCE=FFcntP5S{?c+()Bu^)0EDdX0w(po+~STbFDb;;}t-q=1@ny=jG&s z8~;cw0awBhXmFlC;R9>^BS8oj-2x#y^sj|cezw*lN0`s9K(7X{N7k3;|FbzXUhnF6 zER1iX-$z@vu+nVqI`2XCKKSfoPsY)dhG1?yynDg!z=M5;Mckb(5BN_Rdib0PSH%mv zWe$=4?&4+I*nnK`p#wfPSy$C4-^5+|ZiUB@e|U;6V=a^tHfo_NpNqf9$=|Z3S?B)M z5A@7Hqhqk(^V-i#rDJeBDd1`7Zh;s{8|^L1tf{E~rD+Lbc^)=VBx^*lGd+*7E9pds ztSZ`F4S03zr=^QF3x?9>1-|~k4Kwv?eWJMyN6d*TIREr$?zx@1YNmCn+R|U{9@k76 zVj<_FS*XG4xy}wCkiZ{OH9Q)!4lio=e~dBnz&b!AnX1v%Wa~(%a|n5rP`MBf#eyD*XF9t+?W|}V{BENG~1@*j%|YSyMS!2Sb^Xo>@0$jP9zj2%2LLCUc z7Yk%>ar<?KRmOjPM~rLG36@@9NA>fF^0Nk+I$*jU8hez+TkIVgwUQMEZNWeBgPK}j$x&Zy#H->4C5jD2g|NG~_XdjqdMlp%GIMW_C<(E6 zm$D>r)9ziQ>#J{}XmNwDlXK*1>W9`}05_oor(dD|Hi6#0ZH%7ofEhpM1z!rj3@wlc z5TA|j84v8TJjGjmuNxV^O>}PTJ9hJ%AXf~lSX|%Z1%*g6fXD5FI{W)Qr!2*)XIxz# zlUFi!a-uj2eoATOZP|pmQNHQ)j?%vm>DYw~(g4e2=)}GH>(mE8=_*R16%TXo$i>OF z8R5d(^3IM2ojypwak@`b2p0gRWMF95Tuq1nptnMfMEqM5Tpc{%l($&YI!Ic)0Vah~ z3(GFytTbT#P>v|s`<~6#Z8{{5CM)8dwRtBz1vVaUPh~e9N~?Y>!PJXBr(WgbrXT+d zetP^mygma*c}?8-(6 zLa{Qq$8966F(z;dlWM@q5)jb#YW~zp#=~usGj9BCLZK~&H9p_v%893mNV;*Vcl!$-JL@wKN2`* z;eLuxRd^6uqxsY^t}BfjKP ziLDEXybsMK{ACxv1-VQ%!$3g7H$~;>ukNyPyBpx#5Ojzu+>*dv5zXGRD}jQco6CR1N83Rj_cZnRi?sG|CsM6Wp`aY=7OH))#fP}Z!$=sf?}Y{Wgrn=d7ltCqyQg+Ow6(b)qLQ&NZd)+M zMIu?^Xb|haMI*vO-GqKlsJN;i8sw(iYwlSau&RQ+@@+-vSqt3p57GcLmSdf5BP<673~it?`pH;Cj|I6 zl+HtWMNML7vV-L1(At#JRJ9f3t0s>wwg#zJGC9j0IhR`xv}-ZH`a1tL=CrfKG`8&A zabo*Ru#z$Q)Z3xtv5K za`Bh+}bD6^qDLD8d9yLBC0n8Ky z20+d0kc&}It|cE-c|cV+#oSNI=*NMYWvMv&rz7=2<7Xhs`V(UO?Gx&P`(2<6GDM6U z9Ny0N`lk_D^2*{rYTn@BRR-VrE|@XzQ(zz$@=APBIz;mdtjvoQJNb0!a7+q?>%2dw zG1k2G^!lq2qwTx!6tPD#j-={yS6nI;INNlNo^y+MQ)d(0=jqaRm>8{c8i9?PjX`zQ z0xY4qiqS|EDr1x*ZUqW-yKx<-X5@TAlE z*@E>12hufqRa$8jD+wsIrqRpJVDG@UFkk0UtPufGW zCS%K#y^G||#pX7lOvn+!I>|#<>FyKqLcEh3bT@H4CWr=`ll<71C&Kc~l+F>6!=mT% zCKl}OoA#Ea@C<9)HYC>50p&Kg??T-AalPnkn3Gzhq@GWZH`lx1!P>aH(sJ>#&y|yZ zVCex14GXANT;xc|9>*`;i_m99L?K0&_)54 zb^8P?-G2GIG&uWsA?IygJ z;dP-^rmt%&Pg4}{&A7W<%?JIq z)rg~7Fj(>dFpQk7Y+KS8LL5JCIxgUkTm|TiQN!bF$1soxa%Ul~* zZb`vvgpHc|+7c0GK)LS!E#?N6797toyIybXd(^06xaHM{&h{*ZDO~&w;iHW!+JsVc z>c(X0hyD|W+COk}!A%XW7^4(+gUuPbagdOJ-^70o-AVzYg$&~?E&J_1Z?5T5W zz`EnP)0XO^(<3i+wgtmG1e?X!OzT%7Gx# zU!WIm_)mu9Hm#`*YWsL+X7ieu_0&79+tj)Cta|ofJ)(adUd!nwZH<7Rcd86f1DtUa2n=2;t?z*vXlj?c<3 z(eIP~HZKFfGoUN_+XXu?C=PBsU}0%Jy3TtV|5l_Svnw}t6T5SAvRmFJ+TRwp#WWd9 zQvnV8_|Y4haa%UqFwXTWOKa=%5Nz5LweWle-qTy^{7e zz#krIp|CVUyE=K}r`!0;F|$W!=IG|?UoqS!K$(@w9O&krJKw7`lvQmcD!E3bb0K@0 zAbmOxFVHO*#Wqytqr9ANvu>*N!*0wr;%jp_3{L zWC*Q+N&NT|4)VO@jM23xvl&g1gJ*TncXZFYkX_U7O1E#uc-(Dsi$!13Lu2w`Jjv=g zQ(abEUnd6zMH?%hydfWr#|D*dS%rPAkOr4sy9yj8_?kAa+o#c;-CVCG4)8|lu$ z%6GRCCcGq3DAM41d3Fk$7hh2M4Bx`NAWxg^=?*HSFo&Lh%uc3%UlP0>Jc`bC*&WZwdaTC~iERD5q|v zpK}IdPES>lB{$e1%ldPRcFkvNpr?R<>^&{7)LemzX3qkQc9~`xWPRX}O&wP`3)-!- znV7e%JWSSzjo1_h;Q(p2_E9$h?d_V6=g{f#2Z5`7;~y63WAv!>Lcs9$#N* zNn8)T5LWnmi$(C&RSk_*eK9fFmsaxTUhb#0Q76 z!Q;K3r3=UB$nJanY1625<}F4j;9kc5Hha6B^&!O37ZS!#+KaKuN)tYS z0bapyZxs4!drs2HCgJ+PBH5rcfH!$B2a>mp5kQJMdK1JIpMty_uyGo4d{ns zoW9VvCP~|X1AUdyIU%&|y@{TERFr&UcqQ$(#o6@yP6Fi!^u^K5j!e5~Whn37ZQ|St zf6e5y>#6)+zqj}i2ZAUydw=6`p=fnW=Az)6T}IeOqd^A&NOU?cW~_35mtbein3!ns zNYwi8%*GsWtrfOt{CQb07h!gQ-X!FHBfoPS>x<&6m$;xAb^zp`IFzbvaP!YhtyL{O z{<4eazcaweUX02qj~D)3Ef1_K(<)1iGaZjzijTcLIm1@X!8F0V9$HH4Z<{p_=@aIs zB=+o`e-v6mVfAFs&bvy2;6+&CL^A5DEY;&HV19`|!sE9*zTB)awDorIv?G_|-i z6bE?*c;r?>5Y4s;4i4n(;e@Z6KykjzS7bg=%8RdOsH(k6Ir(d`vXlye`5DS4+*9+6 z(j4c#Y}^F*QJ5jf>2RGx_~5GCMe&vyLnVr{oA*>LsLJYGjn&wph~PB7nPbOZcvhs*wrI#|@D(O3#L1!b^+~ z2KuF58-K?kcY-akfz-Z+x4sDPa@dcaF3*imUwqb^Z{&+1J|BTBO7dwv?~sg7a6&J!Nkm)L?_-_ zja@&DIp0=Gr*o#h(o@Smc&(ilaU3yadp_6|L{15R}@QDuwgUSU|uk!A&!|^wWoa-=V~lDocUiJiUR08GPUU+~M7o zs$YnAWPKu#Hpmlly0P!Nk24QT_ZtQei4ScVTXf%VUkt<7@@}AlDFTNIMtymhBX(?o z5NC_cp(Akrkv#tatlx-I0+7A`3~ko1=?{x1To{x+!M0HOruBh;VG96P*5qn;RU9SX zp82s=HTAY&q4xA}GHQJN2kR>!vq*@l$U%oMjODf89Wt6w)~EJ;#CbsPnOO@1thlHE zz!NJ`ucxJ#_&Y<7eE|-=Lj*1`nW^L<2305idwMK*(>Ga2;08!*s843KD%^n(cgCm>E1WR69pVBXDy#CPPHivrVbm-20 zhX;bG#g0Y3%J&OBE<bI)6O=K{_~Dt2&y-dWW9=+fpTr#x{3%oWq5$Z+OtsGy)`t!d%lKPuhRtSDU5ojxIXYYo$5y_rPpJ#_W;^Ty`u+NjX*hUQ67&0l*e6 z!DBn^96ORC{0AlUCuSw5+*;C4yWjF`lt9w-i(b|~*lD-aAlJm~-&AdnS&#g6dbj9? z6=$MeTpF4SN$uQ9?tYC9`J%o7uXwwvl{SN2@-o!cM55#q1pdd-S%)?C_F)`EMWhsz zhQSXhC8T?xC<7@8l@1Zf(aiu+LL^2=mqudfh8F-5}DIW z+Ujmt{7AC)ncE93Xk)JbgNtfG5);NRJLn&~^zJe;)-2A10Az>u=|B=*B)DHPqCoNkE{0j1vwwZE^k&RBumd*$T^tHjWe2X5oG7PVCZx zf1qT2a>AKs)S9hQ*f19bQrKE?@NIxZrn$-461Z5jjGPBW+~df~x%1q13hX_7{UMZey1kfpq5n=0yYLpa#m+ z>luPmq~C2*kTCdX-%!_^Xqag9?9@N)K(}qV&dC=9Rd~*J>E)%j`y~r>ccw!k=Z1{IaONu(z+jQ0mUU~>`;{$+XvBlUaU-SC`DSqG8kvKBG|0M~L| z-bXLCl$G^1?Yhi|8xc0dN9o2oPYw?04*@%4fePH2w(eY@jyzfK`fZ=1 z`kVYGU(7%PI_+y8^mTL^{g>qzct+npFA}__L)xL@%UDHUA#`lsu%3()U7vDR%D%FC zI_F8ad}%nw%z!`Fcr#u80%ND0qn(iIwAxre)%Z4RSS{TmMf6_a^SQcp|3>Jd`M5wB zjkbc3QDIJpG=lQ-a(XYhC{Aa4`Jiq-j)isfXGY-3KvqEDUuro_f3vLL6yycyasZ3* z!JE&>jlGx7DRC+GZueX=XJXCvM{nYQ#1O&@{XG$noR?MxD;N|>m9(E8(d#6c{$d?^ zv)fG9ycDh|-m-r%biN6-IGSYaqupwG2a)G{Jn^d_#q74(aJwzWA&pDnJwB8MZqROZ z5`#IrD@$lP)!Jph7WAC_@_P{G@Tb9Lw!KCFwbDGB?n;MO4F(<;SXK)|Qlp7-H{!A^vx_XvgE zvQ|M4PrYykx9o-UTg+Q8D~B$q+7Z4v`(*na;!>FH3hQZt;rhO>m#4&vyq|p{_tk;h z_UAzIT@mcFnO7c*qY5>O{(G*zD7gleXrDt>xe45;j0TId$W15HdEMDR>yGv-iw84t z?R<@2N{eXeHbM812U>n!8Fej+_t-$}iM)*e$ixnO1EATdf05mdK1lETe?S*6nYHwO zRDE7P{1IPyaJo*(I?!WM%az0%o4EBUqp(<^ge+9S^t7F5rw(L&O4qJRgW!5-9ouvw! z4zOS3uN0YfyZbwORaLK|a6eQindth!QSygLcyQSrKr?ZnfmM%3&a$4ETHuc2iS}s3 zXXYaylM9IC4(qSV7mEUWW1}dGw*TawRkMSv^$fWC$PSe>8*^RXxi}v5%q-dMer$)F z6&{`TM8tak?iOO7B;49$J)Sc#?>Oyy^2GKK{-1f4k~^!5>$(C5(-l8wYbBG;o^wt| ziag_wlLOn}m*z^Ydx6{B#h^e!JnpQolcEf0BQdGBoCdP(Ss1)EZ6K@OEoq`7+?Ioc z+=BRuC<9gKezTRp`x-afG!6Cej0FbIi)|+!hiVD5@8JjCiJ4P5G_b4L?`K7YlcYj0RDa;a^`pNd9~$a0ZeJS-#yu(l26GURa%5v9Cgo`eP4hGDc+%Kzj<0^PZ&)?^ZLVY31ZIwfyBrPV3+LTg8ZNwY&llaPCq_-Tc7KdNSx{|)tO49H- z7V+lL_nRB@-iWk3bzv}Xc>a*mhy6+$K-)!*x#D%ku1NrX2I-U`N}{ZyL5Gd+KPne@ z5~|w=!=0oR?4gk}6>DHbawNAl!#hE#X>PeX>{#N1w!W|Q07S|QM*8J9itfj+XflHJ z*g1cb#wT^5zP19j1=IPPearubT|D`_gI*ToxZ(f2tUkQ=`7YLa2QkC}=+@6dUOVY>jZ0=F#UL3Md z_0H(9r)hs4+40a|kjrMPitXg0(wX9jsMinA7Ynb|A<#MO;7v-f(=RM=?QDR-_6U5cpm5nrjUKt%0Seq0!Fh@;ybB^6 zMAT*l7BLPU5AB{g`30gD!Z#q8GHmAq^+G67w5_cpbcQUferdDfy zWjCnxixjqSWBoop>EsgaAuQA2`u#G{F9xr%$ZZnV}#iQNT$?o4qHXhOfz4#_h#Q)d;L%pT)XFC(=Pq}gwgSqHrhkP*B0HD zF`rg*h@(yMo)1_m6*n6dll~qf!sZGPqIC8$#-{=B>hwpKDteQ-bOqB1^`aVW*X~o$&8IKw~7CPBX{xZ8oqMr9;3Ww$nxmsov5z=m6@ZX6Mw_W(~=>o`<7`VSR zS*02vb;r6;^6>`cv278ag`$L4tlGNSjn=kCh}moL3BM0w!bX&+km%I||Qa|z>dVHcbkjJYOAG3j z@nVc~oN-;JVC5YKz%qFOFk@Ph4qL>&u7gLcEpRM}+3Grs2aRUk;nku@&-%)0nsrU{ z|12&NlTYx3!Sde_OHWxnGNjr?zyHN=$(9S`6zXLSRx%< z5nz8WfALm@iQUo$TW392OzorOBCoD{Xs+Ls$Dy9-G{ufDP8;3T7#GGno!4%Z@%k2Bz*jG zG~|Mp9MrDQyhsedpJ#P|fFR}a(bjNd@YSa%?<*i&Zh^2lq*A$H(K!bjw@oad3i zXmMLV2hwVl3}vpiDK+@^{lcvGrY+7NOmi@S`oi(<{q;E?6$nTXxi7(Gu9`rC*mCph z^9<+5twl^%%1gCpVErj64>Vdnc5luj<$FgB8Q#ih{~cE6c3=@7M`XhVOg1LTG^FSd=f}z~$%tmWmf^zr=zMaz%axKg|4|8?-lb7-pRQ_+|^z z&Xfz>8*s79%0(_OeBR%5xNS%XzCaiKS^1WsOx}$TtH`;x`RVYavv#q(T?Jo5sZ=%m zY47$WIz&YJ^v0X!u_1r?^AwA7D&d8LOWa9TfYMO5SfMhC02qmXv|a*-|IRc4nnL1&PEeh%;A6Sqz1u}Gtaiuwj5$|Et6yP#+kXPfTuD&GfApDN1#y#{ zFPW)1CYfK7wiWc`qJ@nVz|2{pzPBgP3f(C1Ro9iT+rek^ueA=QXTM4vX`ub`A@TYF zd&H-!OC4=~auan)pVgQuSYe(6<+P-D|KA&=Lq*7o&AARn!9Xm$|)p=n*$#F`zYoSGXO z11m~^=3bxKc`Q%*z64n^{V47gJe!?K8B4E;&+_`mTVBG@AYiBl;=Pa_Gv7HpqAm7ZoE6Ofsn0p|`WJ+`>QwVBj z541qD!^!YDSJw5B&T?2ZzWboq9{INN!KYe^uXXewV$B*(w}y<$9-y~r>0}0H5t*=L zOIY16@QzJ<4Uh%%#N^Q*x%ml-rF27n@BIwD`;!%&B}!c&58+8?;8Zj%JTeZa5w@Vo zUoI;*FP9&Xq&|)2BWRp&Fu*}K!ZlZhZXA=hyum(O)1KmYXd9` zs2*T%#awb9gTIvviQQ z3=z6N*hys2w)nn6xu~Q-v+i<5c)I+xD`Uwwy}?{sL~3hos&o2Fk*3PLrNYEOr8)Rk ze`owC^HugJG0OV_J$Yrj3A^;O+Qa@{*okffwZYa$GsmGHU@Cn3(j38d=IvMD0BPYd zj`gfyZQ|fk+@6woW8R^4`6iMhvBn_dZc%o;gn>6#7X?< zlW4ENUE+E&O`og($z{M^gwD>X<8z?GfDE(pQ77- zqwehlpnLg*w@9$$SslK&k25I;NtwqflB$>VTi)*#v;qRhbBk8?iihnv!hKP2d$5Gk zb40nPL*~n9UA}uZ*|K}X%Yl&P-`(_0_mZcv-QTJA9^&%!kHZynK4{#w71*MT9bGzy z4NV76^hE9K@98MggKPhJ`o?pzW-mHDlp@|(5XaG3NwXT}e>l2eXdup}U7R}xB-R}U zEuOj3<*hJgHE#@e(`K)Aqxe^1F1bCJ#m(7Fzd|%*0sM6>W$#>6=U5i zi@nol`rlmnwyGm+i;6og3ETzNt7l=>c*|wMv^FI|O1<1O+ukx7TWxy56SD#p{G)Gq zP0pQTsEyPt*DUhZD%Ho^OfDapj)WU{aU47UqqgqYmhPSEu~xEzCM**#+!!b@Sf zZcqRrL$lk!aW<`>{l~gRXU_TMW>`hh`d)r})A_gdl(o}qRn7|l;RUnl>X~^X5Cj|I zDad@4=h=R7&{VaDJsHpmShSFF>e^`ZLKFw`jotX zc=+vBF?@h4swxtkSC(A69R>N^6V~@y7|y#zNp%L^%5AE?`;f%IkNtnny!m?>L3=Ce z_PRvSW40ZCAhMpkGO$cs`QDI(tzTIpB5VVwPpGanUA2<11P?#^VqGqS9u(D&IrG)aKil#zjcaaPiT9dM1XbVXS=lSuf1i%VP)X88!Hd6D$vJg2cQ zhiSTfEv!byq`{TZDyM+_NoQx4tc{=h3i?UCC^{e@l)wB8dpRm;D>A-ve|qLl8jC;4 zyJnLJIc(KZjGsN2vP?x)(4x7JDA@J2j_Qk-1F_LldD}!1wBo<@32rJUY&uFF-8Of^ zi@W=|jEiuKLUykHfyrn+bJc_=U@W;W&bJ@1jJOCp#MMOg>6h^_(9kKwzhJl8xE{2c zyLWG}6x&w^kRXq6+{=J`-WhlTHe6#S4=)`#J61Bx{`?O%)7$){h<;)q@C;;#3-Gk{ z`mhrONU3^=lUMSU{5pi}__`C)#^BB47fTbc`yc5ENJZ&;G&xZkr z-iKQ~ZU8yrD?V_%f|gPGr;c5w@3{8B+rVHalw`q}&oOw(T7$3Vrl-tz?f#WiYt~^3 znEK{I#u&{WJvSEL;&g(}>#m`36Goy7 zuDmyRTKRw-PuDQAi7N{Gbe}ywVbC`F+=|;``esM)O~9zMhI{ZxF8r-+fiu=6?H(R) zu5ddqCU`%<xwf(b$M5R;;}5_cOZW_C=F`G7(taRI3A6 z?;jVxi0pb3Tk{?avC8jUqWWaY7u;nlL5-&Av}~;w`Svd(_?7~@H@{qY+BF2doJ~VYYeB1w;XWGj z-iVIv=TmSt2Zn9JPFk*@W$U(#Rgk-Es|Hh+oGd