Glassrom is for people who know what they are doing with their devices and know how to fix issues themselves if something goes wrong. Do NOT flash glassrom if you do not know what you're doing with your device. Glassrom will not take responsibility for any mishap, any good or any bad thing that happens to your device
Kernel hardening tip: kptr_restrict is useless on glassrom release builds as an attacker can easily extract kernel pointer data from the release build's image. If you want security you have to recompile the kernel (preferably the whole ROM by yourself
Glassrom recommends that you build it yourself with dm-verity and lock your bootloader to be fully secure instead of flashing release builds. The open-source version has full support for dm-verity. The closed source version does have support but doesn't enable verity. Anykernel2 can be used to inject a kernel with dm-verity enabled
This ROM has dm-verity. Learn how to handle verity before you flash or you will end up in a bootloop
Flashing GlassROM will encrypt your device. If you don't know what that means stop at this instant. Make sure you have backups
Glassrom can take a long time to boot. So be patient and don't freak out thinking it's bricked
Glassrom is based on lineageos
Glassrom respects your rights as a user (but will still be that shady guy who won't release the source code) and has very strict data protection and privacy rules. Please read our privacy policy for more details
Get support almost instantly! Such wow, very nice https://discord.gg/UF9qnts
Safetynet:
Update: as of oreo no longer "bypasses" safetynet. Follows CTS the way a proper ROM should in order to pass safetynet checks
-------
Features: support for microg out of the box
OMS added, adapted for support with lineage's accents
Heavily optimized:
-O3 for ROM
-Ofast graphite and other optimisations for kernel
Odexed whole ROM in speed mode to reduce strain on JIT
EAS
Undervolted
Stripped down kernel configuration to a minimum
Full AOT forced at boot
Secure:
Selinux hardening, yama, several security patches to ensure that the system is secure.
Privileged permission whitelisting
Linux-hardened
Hardware-accelerated forced encryption
Dm-verity entorced
Supports dm-verity (compile it yourself for dm-verity, we can't enforce it on release builds)
Upstreamed kernel
Audio:
V4a and jamesdsp drivers + sepolicy included. Just install the app as a user app and enjoy! No installation or root required
Alsa sound control for headphones (use kernel adiutor to control)
High performance audio support
Pdesireaudio 10.1
Filesystem:
Disabled file and directory access time for /data
Quota support to prevent apps from abusing device storage and faster storage statistics
Support for sdfat
Miscellaneous:
Wireguard support
TCP fast open enabled by default for shadowsocks
The ROM installer verifies each partition after flashing to prevent bad flashes
Note: this is kind of a modular ROM
It supports substratum but doesn't ship the APK. It's the same for v4a and jamesdsp. This is intentionally done so that people who don't want these apps will never have them and the feature would just never be used
-------
Download here
From glassrom server (no logging) (ipv4 and ipv6):
ROM: https://glassrom.pw/glassrom-release.zip
Recovery: https://glassrom.pw/recovery.img
Download from CDN (see privacy and GDPR notice below) (ipv4 only):
ROM: https://cdn.glassrom.pw/glassrom-release.zip
Recovery: https://cdn.glassrom.pw/recovery.img
ROM source: https://github.com/GlassROM
Device config files: https://github.com/GlassROM-devices/android_device_oneplus_oneplus2
Toolchain: https://bitbucket.org/anupritaisno1/aarch64-linux-gnu
Kernel source: https://github.com/GlassROM-devices/android_kernel_oneplus_msm8994
Verifying builds: https://github.com/GlassROM/glassrom-verification
------
Flash instructions:
Flash the recovery first
Go to the mounts and make sure "mount system partition read-only" is ticked otherwise the ROM will bootloop after the flash
If asked to allow system modifications, do NOT swipe to allow them. Tick "never show this screen on boot again" then press "keep read-only"
Do NOT mount your vendor partition unless you know what you are doing. This is NOT supported and will lead to a bootloop on the next boot
If this is your first time flashing the recovery then prepare the fakecache by reading the how to flash incremental section and reboot recovery before starting the process
Do not format data when the fakecache is mounted! This is not supported and will break things
(If coming from another ROM, factory reset is needed)
Backup data to PC
Mount the fakecache partition with
If you get a "failed to update system image" error please reboot recovery and try again
Flash the ROM. Strongly Recommended to enable zip file signature verification while flashing the ROM and the firmware
At this stage you have 2 choices. Either flash the gapps addon to be able to boot with dm-verity or flash a dm-verity disabler and flash your gapps. For users that don't use gapps this is not much of a concern
Reboot
Notice for TWRP flashing errors: the error codes themselves are useless. The message above the error is what truly helps diagnose the issue
Below advisory only for people coming to glassrom from another ROM. Contact support if you upgraded from a previous build and a newer build doesn't boot
Starting from the February 2019 release encryption is no longer in place and formats the data partition. Please be careful and have backups of your data
Unlike other ROMs you don't need to clean flash every new build or even wipe caches after every flash. Just flash the new build and reboot. Nothing to worry about unlike other ROMs
--------
You want to use our kernel in your project?
clone the kernel and run bash travis.sh and the kernel will be automatically built for you. We don't really care if you give us credits but if you do we'd appreciate it.
Glassrom believes that rebasing kills any kind of collaboration that could happen so we don't rebase our repositories unless it is impossible to make a change without rebasing
----------
Some notes for posting here:
Keep your appreciation for the work to other threads. Get to the point when reporting a bug so that it can be fixed faster
Bug reports should have proper logs or a way to reliably reproduce the issue
Magisk causes issues. Please do not report bugs with magisk installed
-------------
About us:
This started as a small project, now it's known as glassrom, which is funded by RX Group LLC. Glassrom doesn't make any profit from this (see below)
Privacy policy: we do not collect any personal data at all. Not even analytics. The download server is totally anonymous and doesn't log anything. We do not use adverts of any form. No registration of any sort is ever required to download the ROM. Our provider does watch out for abuse patterns like DDoS and takes action accordingly
How we profit from this: glassrom was made to provide a stable ROM at no charge. Short answer: we don't and we probably never will. RX Group LLC has given us enough to be able to build glassrom for a while and we don't see any need to annoy our users with donation reminders. No advertisements either. Everything is provided free to use and modify without any restrictions whatsoever and we never intend to profit from it
Support: we've already stated that certain mods like magisk or xposed might cause us to refuse support however anything unrelated to the issue being reported will be ignored. This is for users who use shady apps who steal other dev's work. While we don't support nor condone the usage of such apps we can't bring personal issues into our product as an organisation either and will not refuse support if we see these apps in logs. We believe in user freedom and we are not like other ROM teams who declare what users should do on their phones. If you see a maintainer refusing support for
your device due to these issues please take it directly to the notice of @anupritaisno1. We also don't use automated ban bots that ban based on a list in our support for the same reasons.
Security: glassrom always is looking at ways to increase the security of the download server and the ROM. If you find any security issues please report them to us and we'll fix them immediately
T&C: Glassrom is not liable for any damages. Everything is available free of cost and you're making these modifications yourself. We did not tell you to do these modifications and you should be aware of your actions
If you're reporting a bug and would like glassrom to discard all data (logs, screenshots and other details) after the bug is fixed please let us know about it any time. We'll gladly discard all data (note that we usually discard log data once a bug is fixed in about 2 days)
Please read lineageos' privacy policy here: https://lineageos.org/legal/ so that you know what you're agreeing to
We use bunnycdn. Read their privacy policy here: https://bunnycdn.com/privacy
https://bunnycdn.com/gdpr
Note that if you access the server with glassrom.pw you bypass bunnycdn and connect to the server directly. If you don't want to use the CDN use https://glassrom.pw which directly connects to the server
--------
How to flash incremental:
Locking your bootloader:
This is dangerous. Glassrom takes absolutely zero responsibility if you try this
Flash the recovery and glassrom
Boot to fastboot and issue this command
Kernel hardening tip: kptr_restrict is useless on glassrom release builds as an attacker can easily extract kernel pointer data from the release build's image. If you want security you have to recompile the kernel (preferably the whole ROM by yourself
Glassrom recommends that you build it yourself with dm-verity and lock your bootloader to be fully secure instead of flashing release builds. The open-source version has full support for dm-verity. The closed source version does have support but doesn't enable verity. Anykernel2 can be used to inject a kernel with dm-verity enabled
This ROM has dm-verity. Learn how to handle verity before you flash or you will end up in a bootloop
Flashing GlassROM will encrypt your device. If you don't know what that means stop at this instant. Make sure you have backups
Glassrom can take a long time to boot. So be patient and don't freak out thinking it's bricked
Glassrom is based on lineageos
Glassrom respects your rights as a user (but will still be that shady guy who won't release the source code) and has very strict data protection and privacy rules. Please read our privacy policy for more details
Get support almost instantly! Such wow, very nice https://discord.gg/UF9qnts
Safetynet:
Update: as of oreo no longer "bypasses" safetynet. Follows CTS the way a proper ROM should in order to pass safetynet checks
-------
Features: support for microg out of the box
OMS added, adapted for support with lineage's accents
Heavily optimized:
-O3 for ROM
-Ofast graphite and other optimisations for kernel
Odexed whole ROM in speed mode to reduce strain on JIT
EAS
Undervolted
Stripped down kernel configuration to a minimum
Full AOT forced at boot
Secure:
Selinux hardening, yama, several security patches to ensure that the system is secure.
Privileged permission whitelisting
Linux-hardened
Hardware-accelerated forced encryption
Dm-verity entorced
Supports dm-verity (compile it yourself for dm-verity, we can't enforce it on release builds)
Upstreamed kernel
Audio:
V4a and jamesdsp drivers + sepolicy included. Just install the app as a user app and enjoy! No installation or root required
Alsa sound control for headphones (use kernel adiutor to control)
High performance audio support
Pdesireaudio 10.1
Filesystem:
Disabled file and directory access time for /data
Quota support to prevent apps from abusing device storage and faster storage statistics
Support for sdfat
Miscellaneous:
Wireguard support
TCP fast open enabled by default for shadowsocks
The ROM installer verifies each partition after flashing to prevent bad flashes
Note: this is kind of a modular ROM
It supports substratum but doesn't ship the APK. It's the same for v4a and jamesdsp. This is intentionally done so that people who don't want these apps will never have them and the feature would just never be used
-------
Download here
From glassrom server (no logging) (ipv4 and ipv6):
ROM: https://glassrom.pw/glassrom-release.zip
Recovery: https://glassrom.pw/recovery.img
Download from CDN (see privacy and GDPR notice below) (ipv4 only):
ROM: https://cdn.glassrom.pw/glassrom-release.zip
Recovery: https://cdn.glassrom.pw/recovery.img
ROM source: https://github.com/GlassROM
Device config files: https://github.com/GlassROM-devices/android_device_oneplus_oneplus2
Toolchain: https://bitbucket.org/anupritaisno1/aarch64-linux-gnu
Kernel source: https://github.com/GlassROM-devices/android_kernel_oneplus_msm8994
Verifying builds: https://github.com/GlassROM/glassrom-verification
------
Flash instructions:
Flash the recovery first
Go to the mounts and make sure "mount system partition read-only" is ticked otherwise the ROM will bootloop after the flash
If asked to allow system modifications, do NOT swipe to allow them. Tick "never show this screen on boot again" then press "keep read-only"
Do NOT mount your vendor partition unless you know what you are doing. This is NOT supported and will lead to a bootloop on the next boot
If this is your first time flashing the recovery then prepare the fakecache by reading the how to flash incremental section and reboot recovery before starting the process
Do not format data when the fakecache is mounted! This is not supported and will break things
(If coming from another ROM, factory reset is needed)
Backup data to PC
Mount the fakecache partition with
Code:
mount /data/fakecache /cache
Flash the ROM. Strongly Recommended to enable zip file signature verification while flashing the ROM and the firmware
At this stage you have 2 choices. Either flash the gapps addon to be able to boot with dm-verity or flash a dm-verity disabler and flash your gapps. For users that don't use gapps this is not much of a concern
Reboot
Notice for TWRP flashing errors: the error codes themselves are useless. The message above the error is what truly helps diagnose the issue
Below advisory only for people coming to glassrom from another ROM. Contact support if you upgraded from a previous build and a newer build doesn't boot
Starting from the February 2019 release encryption is no longer in place and formats the data partition. Please be careful and have backups of your data
Unlike other ROMs you don't need to clean flash every new build or even wipe caches after every flash. Just flash the new build and reboot. Nothing to worry about unlike other ROMs
--------
You want to use our kernel in your project?
clone the kernel and run bash travis.sh and the kernel will be automatically built for you. We don't really care if you give us credits but if you do we'd appreciate it.
Glassrom believes that rebasing kills any kind of collaboration that could happen so we don't rebase our repositories unless it is impossible to make a change without rebasing
----------
Some notes for posting here:
Keep your appreciation for the work to other threads. Get to the point when reporting a bug so that it can be fixed faster
Bug reports should have proper logs or a way to reliably reproduce the issue
Magisk causes issues. Please do not report bugs with magisk installed
-------------
About us:
This started as a small project, now it's known as glassrom, which is funded by RX Group LLC. Glassrom doesn't make any profit from this (see below)
Privacy policy: we do not collect any personal data at all. Not even analytics. The download server is totally anonymous and doesn't log anything. We do not use adverts of any form. No registration of any sort is ever required to download the ROM. Our provider does watch out for abuse patterns like DDoS and takes action accordingly
How we profit from this: glassrom was made to provide a stable ROM at no charge. Short answer: we don't and we probably never will. RX Group LLC has given us enough to be able to build glassrom for a while and we don't see any need to annoy our users with donation reminders. No advertisements either. Everything is provided free to use and modify without any restrictions whatsoever and we never intend to profit from it
Support: we've already stated that certain mods like magisk or xposed might cause us to refuse support however anything unrelated to the issue being reported will be ignored. This is for users who use shady apps who steal other dev's work. While we don't support nor condone the usage of such apps we can't bring personal issues into our product as an organisation either and will not refuse support if we see these apps in logs. We believe in user freedom and we are not like other ROM teams who declare what users should do on their phones. If you see a maintainer refusing support for
your device due to these issues please take it directly to the notice of @anupritaisno1. We also don't use automated ban bots that ban based on a list in our support for the same reasons.
Security: glassrom always is looking at ways to increase the security of the download server and the ROM. If you find any security issues please report them to us and we'll fix them immediately
T&C: Glassrom is not liable for any damages. Everything is available free of cost and you're making these modifications yourself. We did not tell you to do these modifications and you should be aware of your actions
If you're reporting a bug and would like glassrom to discard all data (logs, screenshots and other details) after the bug is fixed please let us know about it any time. We'll gladly discard all data (note that we usually discard log data once a bug is fixed in about 2 days)
Please read lineageos' privacy policy here: https://lineageos.org/legal/ so that you know what you're agreeing to
We use bunnycdn. Read their privacy policy here: https://bunnycdn.com/privacy
https://bunnycdn.com/gdpr
Note that if you access the server with glassrom.pw you bypass bunnycdn and connect to the server directly. If you don't want to use the CDN use https://glassrom.pw which directly connects to the server
--------
How to flash incremental:
Added recovery-fakecache.img
It'll be used for the upcoming incremental OTAs
A full explanation:
Incremental OTAs are computed on the /cache partition
Incremental OTAs often ask for a lot of space on /cache
Op2 doesn't have that much of space on /cache
Why incremental OTAs are computed on /cache and not on /system and /vendor (and boot) directly? Because if this were a stock ROM there is a likelihood of the user interrupting an incremental OTA so Google added a failsafe for this so that an interrupted incremental OTA can be resumed if the device was rebooted by the user. Can't be helped really
What we do? Create a fake cache partition large enough to hold these bits so that incremental OTAs can be flashed. After a lot of testing, 512 MB seems to be the optimal size for a fake cache
First we need to create the fake cache
Boot to TWRP and decrypt data
Make sure data is mounted
Run these commands in terminal by going to advanced > terminal
Note that TWRP is hardcoded to only accept /data/fakecache. Other filenames will be rejected when you flash the ROMCode:dd if=/dev/zero of=/data/fakecache bs=1G count=1 mke2fs /data/fakecache # type "yes" and hit enter to confirm
Reboot recovery after creating the fakecache
If you accidentally flash the ROM and forgot to mount the fakecache before flashing you have to reboot recovery, mounting it after a failed flash won't work at all
The following additional directories will be added to the server:
full (no longer available, dm-verity has been enforced on release and full now is equivalent to a release build)
incrementals
Full: for full zips, exactly the same as the release zip but won't contain backuptool so that incremental OTAs can be flashed
Incrementals: will have a filename glassrom-release-incremental-from-source-to-target.zip
Example current glassrom release is july release
The August release would be something like
glassrom-incremental-from-july-release-to-august-release.zip
The file naming for the full zips will be
glassrom-release-full-target.zip
Example August release would be glassrom-release-full-august.zip
Likewise if there is more than one build in a given month you might see something like
glassrom-incremental-from-august6-release-to-august9-release.zip in the incrementals and glassrom-release-full-august9.zip
What to do? First flash the full zip and chain the installation of each incremental zip. Note that you can't be on, say July release and upgrade to September release without flashing the August release
So if you want to go from July to September release (say), you'd probably go something like
backup-script.zip (will be provided, necessary to backup gapps and other mods before flashing the new ROM)
glassrom-release-full-july.zip
glassrom-incremental-from-july-release-to-august-release.zip
glassrom-incremental-from-august-release-to-september-release.zip
.......
gen_verify.zip (optional, see FAQ)
restore-script.zip (will be provided, necessary to restore gapps and mods that were on the old ROM)
Remember that the flash order matters and incremental OTAs can take up to 30 minutes to flash so the larger you make your flash chain the longer you'll have to wait
Myth: aren't full OTAs always better?
No, if you think so you're free to verify the hash of the system with a full OTA and an incremental one. They will match which means that the contents are exactly the same
FAQ: also do I need to change anything else?
You might want to go to TWRP > mount and tick mount system read-only if you're having problems flashing incremental OTAs.
Why do I need to flash the full zip everytime? Can't I just flash the incremental OTAs? ****** ROM allows me to do so with delta OTAs!
First off, incremental OTAs move blocks of data around instead of files and write/erase blocks instead of touching the filesystem. The incremental OTA system isn't even aware of the filesystem being used. This is because the only way to recreate the entire filesystem is to operate at a level below the filesystem. Doing something as simple as even mounting system will disturb the order of the blocks the way they appear to the incremental OTA patcher, even though the filesystem didn't change. So you need to flash the full zip and all incremental OTAs in a chain and you can't flash them directly
Wait! This is different from the Delta OTAs I've used! Stop messing around
Delta OTAs take an existing zip and create a new ROM zip out of it. Incremental OTAs patch your partitions live. Incremental OTAs are also much smaller than Delta OTAs
For comparison:
A "typical" incremental OTA: 8 mb (actual releases should be around 80-200)
It's Delta counterpart: 140 mb (actual releases would be 60-70% of the size of the new ROM)
What's the gen_verify.zip?
Used to verify if an incremental OTA chain (or a full OTA) was correctly flashed. The zip will return valid results and will only log errors and always report a success regardless of whether there is an error or not. It will show you verifying partition... Where partition can be boot, system, vendor or recovery. It will say failed for recovery, that is expected but it should show verified partition for every partition other than recovery. Has to be redownloaded for every new release. It will just verify the partitions and not write anything to any partition. The script will also always return success even if verification fails so read that the script's output actually reports that verification passes and not TWRP's output that the zip flashed successfully
Can I flash normal release zips and skip incrementals and still use this TWRP to flash?
Yes
What's the difference between this TWRP and recovery-vendor?
Nothing except the fakecache addition
Availability: sometimes lineage will make really huge changes that might make it impossible to upgrade through an incremental OTA so you shouldn't rely solely on incremental OTAs. Anything can happen. In such a case I can only say sorry and give you a full OTA
You have to store these incremental OTA files! Glassrom will delete old releases
Enjoy the incremental OTAs!Oh I forgot to mention this
Source means your current system
Target means the system you're upgrading to
So your target becomes the source for the next (incremental) OTA
Locking your bootloader:
This is dangerous. Glassrom takes absolutely zero responsibility if you try this
Flash the recovery and glassrom
Boot to fastboot and issue this command
Code:
fastboot oem lock
Last edited: