Related
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
Code:
mount /data/fakecache /cache
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:
anupritaisno1 said:
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
Code:
dd if=/dev/zero of=/data/fakecache bs=1G count=1
mke2fs /data/fakecache # type "yes" and hit enter to confirm
Note that TWRP is hardcoded to only accept /data/fakecache. Other filenames will be rejected when you flash the ROM
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
Click to expand...
Click to collapse
anupritaisno1 said:
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
Click to expand...
Click to collapse
Enjoy the incremental OTAs!
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
IMPLEMENT
Please add full oms support in this ROM.And VOLTE support too...thanks
Ooo very nice will try soon m8 but micro G support is always interesting to me on mm, now on nougat without manually patching very nice and always appreciated by me... Also safety net patches where will you stop... :victory:
Shrinath0071 said:
Please add full oms support in this ROM.And VOLTE support too...thanks
Click to expand...
Click to collapse
Look volte is not my priority
And I may accidentally break ril completely trying to implement it
I am indeed trying but I can't guarantee a successful implementation
Is is impossible to add substratum to cm
You can add it to cm-based ROMs like RR, aicp, fh but not the pure LineageOS
Dr_DjEnder said:
Ooo very nice will try soon m8 but micro G support is always interesting to me on mm, now on nougat without manually patching very nice and always appreciated by me... Also safety net patches where will you stop... :victory:
Click to expand...
Click to collapse
There are many more features but I don't know because it's been quite a while since I've been testing
I can guarantee you, no unnecessary bloat
There's a commit that allows you to set a password longer than 16 characters and also another one to set a separate encryption password and an unlock password
Can someone test it out?
Interesting.. Thank you. Will flash and report after usage
Sent from my Pixel XL using Tapatalk
anupritaisno1 said:
There are many more features but I don't know because it's been quite a while since I've been testing
I can guarantee you, no unnecessary bloat
There's a commit that allows you to set a password longer than 16 characters and also another one to set a separate encryption password and an unlock password
Can someone test it out?
Click to expand...
Click to collapse
I can confirm that separate passwords work. When you set your screen password it changes your encryption password, but you can change that separately very easily.
will flashing this rom encrypt my device?
yuva_cool said:
will flashing this rom encrypt my device?
Click to expand...
Click to collapse
Interesting little feature but no
Damn! This ROM is butter smooooth. Great work @anupritaisno1
Sent from my Pixel XL using XDA-Developers Legacy app
yuva_cool said:
Damn! This ROM is butter smooooth. Great work @anupritaisno1
Sent from my Pixel XL using XDA-Developers Legacy app
Click to expand...
Click to collapse
Working with xos devs, tugapower and some of my own tweaks to make it better
The next build will be even faster
anupritaisno1 said:
Working with xos devs, tugapower and some of my own tweaks to make it better
The next build will be even faster
Click to expand...
Click to collapse
One question though. Using Ok Google, assistant keeps asking me to train the voice model again and again. How to make the model stick?
Sent from my Pixel XL using XDA-Developers Legacy app
yuva_cool said:
One question though. Using Ok Google, assistant keeps asking me to train the voice model again and again. How to make the model stick?
Sent from my Pixel XL using XDA-Developers Legacy app
Click to expand...
Click to collapse
Maybe flash a new gapps package?
anupritaisno1 said:
Maybe flash a new gapps package?
Click to expand...
Click to collapse
Which is more compatible? Or did u just mean latest?
Sent from my Pixel XL using XDA-Developers Legacy app
yuva_cool said:
Which is more compatible? Or did u just mean latest?
Sent from my Pixel XL using XDA-Developers Legacy app
Click to expand...
Click to collapse
Opengapps super will work on my ROM
You have freedom of choice here. I have merged all the gapps patches from upstream
Pick whatever package you like and flash
anupritaisno1 said:
Opengapps super will work on my ROM
You have freedom of choice here. I have merged all the gapps patches from upstream
Pick whatever package you like and flash
Click to expand...
Click to collapse
I flashed open gapps the first time.
Also, the MSM hotplug cant be tweaked with kernel aduitor, the max cores online cannot be changed. It always reverts back to 4. That is causing fps lag and spotify stutter while locking and unlocking.
Sent from my Pixel XL using XDA-Developers Legacy app
yuva_cool said:
I flashed open gapps the first time.
Also, the MSM hotplug cant be tweaked with kernel aduitor, the max cores online cannot be changed. It always reverts back to 4. That is causing fps lag and spotify stutter while locking and unlocking.
Sent from my Pixel XL using XDA-Developers Legacy app
Click to expand...
Click to collapse
Thats because 4 is the max value. (This max core per cluster) So if its set to, say 3, it means max 3 for little cores and max 3 for big cores.
suraj.das said:
Thats because 4 is the max value. (This max core per cluster) So if its set to, say 3, it means max 3 for little cores and max 3 for big cores.
Click to expand...
Click to collapse
No if I enable the Hotplug all the cores of Big cluster are plugged out except for one and 3 cores of little cluster work.
Please check it
Sent from my Pixel XL using XDA-Developers Legacy app
yuva_cool said:
I flashed open gapps the first time.
Also, the MSM hotplug cant be tweaked with kernel aduitor, the max cores online cannot be changed. It always reverts back to 4. That is causing fps lag and spotify stutter while locking and unlocking.
Sent from my Pixel XL using XDA-Developers Legacy app
Click to expand...
Click to collapse
Then disable the hotplug?
Hotplug is just to avoid some heat. It doesn't help at all when it comes to battery life
suraj.das said:
Thats because 4 is the max value. (This max core per cluster) So if its set to, say 3, it means max 3 for little cores and max 3 for big cores.
Click to expand...
Click to collapse
Oh hey welcome
Hello
I am going to release unofficial builds of LineageOS 14.1 for Wileyfox Crackling. The builds will be updated every month after a new security patch level is reached.
The build I made can be flashed on top of Cyanogenmod 13 build (with wiping dalvik and cache). It should work without any problems; I do not experience any.
But I do not take any responsibility if your favorite app/setting/etc. is not working anymore.
If it makes problems, wipe data/dalvik/cache and install again.
Besides that the ROM has two extra features:
I patched signature spoofing support into the ROM. Now it is possible to install microG. This is a re-implementation of Google’s proprietary Android user space apps and libraries. So for many cases you do not have to install the proprietary GAPPS anymore.
Note: This feature is disabled by default and will not affect the ROM in any way. It has to be enabled in the according settings.
Also, there's an option available to record calls now. Please respect the privacy of others.
Android security patch level:
Code:
[URL="https://source.android.com/security/bulletin/2017-02-01.html"]February[/URL] | 2017-02-05 security patch level
Version/Filename:
Code:
lineage-14.1-20170227-UNOFFICIAL-crackling.zip
Download:
Code:
[B][SIZE="2"]Openload.co:[/SIZE][/B]
https://openload.co/f/DBKYItUGllA/lineage-14.1-20170227-UNOFFICIAL-crackling.zip
https://openload.co/f/grRwId0HJJE/lineage-14.1-20170227-UNOFFICIAL-crackling.zip.md5sum
Alternativ:
[B][SIZE="2"]Free.fr:[/SIZE][/B]
http://dl.free.fr/uqIBAf8dM
The kernel and device sources I used to build the ROM can be found here:
Code:
https://github.com/lineageos
thomson.aa said:
Hello
This is my first build of LineageOS for Wileyfox Crackling.
I flashed it on top of my Cyanogenmod 13 build (with only wiping dalvik and cache) and it so far works without any problems.
But I do not take any responsibility if your favorite app/setting/etc. is not working anymore.
This release has the root access option disabled because LineageOS disables root for apps by default. It has to be enabled before building the rom - I didn't know that so I will provide an updated rom with root access for apps available.
Besides that the rom has one extra feature:
I patched signature spoofing support into the rom. Now it is possbible to install microG. This is a re-implementation of Google’s proprietary Android user space apps and libraries. So for many cases you do not have to install the proprietary GAPPS anymore.
Note: This feature is disabled by default and has to be enabled in the according settings.
Android security patch level:
Code:
[URL="https://source.android.com/security/bulletin/2017-01-01.html"]January[/URL] | 2017-01-05 security patch level
Version/Filename:
Code:
lineage-14.1-20170117-UNOFFICIAL-crackling.zip
Download:
Code:
https://openload.co/f/WCt_JxGZ-UE/lineage-14.1-20170117-UNOFFICIAL-crackling.zip
Click to expand...
Click to collapse
Sorry thomson.aa sorry i do not have english my google translation. Work is very nice thanks one has a mistake sim card people do not see a way to solve it? I wish you continued success.
Where is the source ? You can't post this without kernel source
I dirty flashed this over crDroid and it seems to be working pretty well. Thanks.
All my app's (not many at the moment) were working fine.
Playstore thinks it's 'no carrier Wileyfox Wileyfox Swift'... but I guess that's better than 'Wileyfox Pixel XL' (crDroid).
On initial booting the status bar wouldn't pull down but works ok after a reboot.
Buttons were a bit messed up which only gave me a back button even though the usual defaults were all set. After deleting them and re-adding them they worked fine. I'm guessing this may be due to dirty flashing. Shame the button customisation is just as basic as cm13 especially after using crDroid.
Using Kernal Auditor Mod I see that the cpu only scales down to 800mhz and the gpu scales up to 400mhz. I don't know much about this but won't this make it a little power hungry?
Going through the settings, I'm thinking that LOS14 isn't quite as complete as the cm13 I was using a few weeks ago. Although I guess this is to be expected at this stage. And I'm used to the more versatile crDroid now so I'll be restoring that in a mo.
This MicroG project sounds great. It seems a bit complex to get it working as I'd like but I definitely be having a go when I get my head around it.
All in all, Great job. Keep up the good work... please. I'm already waiting for the next release.
Oh, and er... Surely you could find a better file host???
I tried to build the Image myself by using your other Thread's How-To and after flashing i had no WIFI.
Now i flashed this build and WIFI is also not working.
[Edit]
I've collected some Logs - perhaps they'll help.
[Edit2]
Now i tried another '14.1-ROM' and i've the same problem....
During all my Tests the shown MAC-Address during the 'inital install' was weird: 02:00:00:00:00:00.
Before the 14.1 Lineage i had the latest CMmod 13 running without any Problems :/
Ok - solved it....
I encrypted my Device during CM13 and always entered my Key during Boot/TWRP and Formatting/Installation of 14.1.
Now i *really* formated all the Data (and the former encryption), rebooted to Recovery and sideloaded the Image+Gapps.
Now WIFI is working.
How do I enable signature spoofing ? I can't find any relevant setting.
M.A.K said:
How do I enable signature spoofing ? I can't find any relevant setting.
Click to expand...
Click to collapse
Settings -> Apps -> Gear symbol -> App permissions -> Spoof package signature
No... it's not there for me.
M.A.K said:
No... it's not there for me.
Click to expand...
Click to collapse
Works like it is supposed to be. The setting/app permission is only available if you install an app that requires that permission.
So, if you install microG the setting for signature spoofing will become available.
fred0r said:
Now i *really* formated all the Data (and the former encryption)
Click to expand...
Click to collapse
Could you tell me how to do that? I remember trying to find a way to remove encryption back in the day on my Nexus 5 and wasn't able to do it. Thanks!
thomson.aa said:
Works like it is supposed to be. The setting/app permission is only available if you install an app that requires that permission.
So, if you install microG the setting for signature spoofing will become available.
Click to expand...
Click to collapse
Ah, yes... got it now, thanks.
jobedius said:
Could you tell me how to do that? I remember trying to find a way to remove encryption back in the day on my Nexus 5 and wasn't able to do it. Thanks!
Click to expand...
Click to collapse
I booted into the TWRP 3.0.3 and did not enter my Encryption-PW (cancel) and then clicked 'Wipe' and then 'Format Data'.
update to official build?
Is it possible to update (aka dirty flash) to the now released official build? I had some problems doing that, see https://forum.xda-developers.com/showpost.php?p=70829582&postcount=8
Cheers
Nope, its not
Mithodin said:
Is it possible to update (aka dirty flash) to the now released official build? I had some problems doing that, see https://forum.xda-developers.com/showpost.php?p=70829582&postcount=8
Cheers
Click to expand...
Click to collapse
Twrp shows error 7(the data is incompatible). You need to wipe data, cache partitions and the system partition. Then install the zip with arm64 android 7.1 g-apps.
Cheers:good:
fred0r said:
I booted into the TWRP 3.0.3 and did not enter my Encryption-PW (cancel) and then clicked 'Wipe' and then 'Format Data'.
Click to expand...
Click to collapse
Aahhh, that makes sense if you know it! Thanks!
Modesty - a modest custom kernel for the Samsung Tab S4
Modesty aims to provide a mildly appealing and reasonable alternative to the stock 4.4.78 kernel that comes with The Tab S4. In its pursuit of being both mildly appealing and reasonable, it will eschew features that could compromise device stability, whilst gleefully embracing low-risk, self-contained enhancements. In other words, your lowest expectation should be that this kernel will be at least as stable as the stock kernel.
Since there are currently no other custom kernel projects supporting the Tab S4, there isn't really any previous device-specific work to build on. Development of this kernel is therefore likely to be slow and steady.
"Why is this kernel called Modesty? That's crap! Why not Wolverine, Intrepid or Jupiter?"
Because it's just a operating-system kernel, not a turbo-charged supercar or a mission into outer space. Even as operating-system kernels go, this one is pretty dull. Besides, I'm a weary curmudgeon in his fifties, not a teenager.
This project has the modest aim of modestly enhancing the pleasure you derive from your Tab S4 and is therefore modestly named Modesty.
Key characteristics
Supports both the wi-fi only (T830) and wi-fi/LTE (T835) models.
Forked from Samsung's pristine kernel source code (Linux 4.4.78 for ARGH firmware at time of launch).
Regular merging of the upstream Linux kernel's linux-4.4.y branch (4.4.161 at time of public launch).
Regular merging of Samsung's updates to its modified kernel source as they are made available.
Includes @savoca's KCAL advanced colour/gamma control driver.
Includes @flar2's sound control driver to manage headphone and microphone gain.
Disables a huge amount of tracing and logging features inexplicably left enabled by Samsung in the stock release kernel. These debugging features have no place outside engineering builds.
Packed into a boot.img (boot image) taken directly from Samsung's latest stock firmware and kept as close to the original as possible. No obscure boot-time kernel configuration is stashed away here, and no changes are made to any other part of the file system at either install time or run time.
Provides a fully automated installer, with the option of interactive installation to allow manual selection of features and the ability to automatically root the device with Magisk in the post-installation phase.
Includes WireGuard VPN support (version 0.0.20180818 at the time of public launch), which will be updated as available.
Includes @Lord Boeffla's generic kernel wakelock blocker. The conservative default block-list is: qcom_rx_wakelock and NETLINK.
Utilises Westwood+ TCP congestion algorithm by default.
Includes Veno TCP congestion algorithm.
SELinux operates in enforcing mode and cannot be dynamically switched to permissive mode.
FAQ
Q. Is this kernel still actively developed?
A. No. The final ianmacd release was v1.0.0 on 21st November 2019 and no-one else has picked up maintenance of the project.
Q. Will this kernel also run on Android 9.0 (Pie) devices?
A. No. Modesty targets Android 8.1 (Oreo) and there was never an intention to update it for 9.0 (Pie).
Q. Can I overclock or underclock the CPU using this kernel?
A. No.
Q. How does interactive installation mode work?
A. If the ZIP file name contains the string _interactive or a dot-file called .modesty_interactive is present in the root of the external SD card, interactive installation mode is triggered. Please note that this mode overrides any selections implied by the archive name or the presence of dot-files on the file-system.
In interactive mode, you will be asked whether to root the device afterwards with Magisk. Selections are made using the Volume buttons. Just follow the on-screen prompts.
Q. Can I safely block wakelock X?
A. Perhaps. However, unless you know what a particular wakelock does and are certain that it is causing an actual problem on your device, I suggest you leave it alone.
Q. Why is this kernel labelled beta? Is it safe to use? And who are you, anyway? Can you be trusted?
A. My T830 has been running this kernel every day since I first rooted it, and I can therefore personally vouch for its stability on this model.
A couple of users have reported Modesty running well on the T835. Initially, it was reported that the kernel did not boot on this model, but after trying several test kernels, the user in question discovered that his machine had a non-standard firmware installation. Once this situation was remedied, Modesty booted and worked as designed.
As the person who built the kernel, I know exactly what's in it, and therefore the only risk I'm exposing myself to when I run it is that of my own incompetence. That's not true for you, however, and you should exercise due caution and at least pause for a moment to consider what you are installing, and the far-reaching powers you are about to grant this unaudited code over your device. Although I link to the source code below, you have only my word for it that this bears any resemblance to the kernel actually provided in the installer.
There are likely to be many iterations of this kernel before it sees a 1.0 release. Features may be added or removed along the way, although there is no clear roadmap at this point in time. Development will go where the needs of the users take it.
Please see the Installation section below for an important note regarding the use of this kernel in combination with stock (i.e. unmodified) Samsung firmware.
Q. Can I safely root this kernel?
A. Of course. What use would it be if you couldn't? I recommend Magisk for the task. It has a few minor issues, but as a project is very much alive, something that cannot be said about its peers. Magisk has arguably now established itself as the de facto root solution for Android devices.
It just so happens that I also produce my own builds of Magisk, which you are welcome to use. These are release builds (as opposed to debugging builds), produced from my own fork of @topjohnwu's original source, often augmented with patches. You can use anyone's builds, though.
Again, these builds work for me on various Samsung devices, but they are unofficial and you should approach them with fitting caution.
Q. Can I install Magisk at the same time as Modesty?
A. Yes. The Modesty installer allows you to automatically root your device with Magisk following installation of Modesty..
To make use of this facility, either rename the Modesty zip file to contain the string _magisk or create a file called .modesty_magisk in either the root of your external SD card or in the standard Download directory of the internal SD card. Alternatively, you can utilise interactive installation mode. See above for details.
If any of these trigger conditions is met, the installer will look in the standard internal Download directory as well as in ./Magisk (if present) on the external SD card (if present) for a suitable Magisk zip file to install. Preference is given to versioned files matching the glob Magisk-v*, in which case the latest according to lexical sort order will be used. If none is found, the installer then looks for unversioned release builds (e.g. official Canary channel release builds) called magisk-release.zip in the same locations, selecting the one with the most recent timestamp. If none is found, the installer will then try to find unversioned debug builds (e.g. official Canary channel debug builds) called magisk-debug.zip, again picking the one with the most recent timestamp. Finally, the installer falls back to looking for the most recent file called Magisk.zip or magisk.zip. If still no files have been found by this stage, chaining of Magisk is abandoned.
For example:
Code:
star2lte:/ $ ls -l /storage/0000-0000/.modesty_magisk
-rwxrwx--x 1 root sdcard_rw 0 2018-09-15 14:31 /storage/0000-0000/.modesty_magisk
star2lte:/ $ ls /storage/0000-0000/Magisk/Magisk-* | tail -n 3
/storage/0000-0000/Magisk/Magisk-v17.2-2018091001-ianmacd.zip
/storage/0000-0000/Magisk/Magisk-v17.2-2018091201-ianmacd.zip
/storage/0000-0000/Magisk/Magisk-v17.2-2018091501-ianmacd.zip
When you flash the Modesty archive in TWRP, the most recent version of Magisk that could be found will now be used to automatically root your kernel, i.e. Magisk-v17.2-2018091501-ianmacd.zip in this example.
Q. Why doesn't Modesty have its own Telegram group?
A. Because my experience of Android-themed Telegram groups is that they invariably degenerate into seething cesspits of rudeness, ignorance, superstition and — on a good day — pseudo-science. I don't wish to police such a den of iniquity. Of course, it's a free world (or so I still like to kid myself), so you are at liberty to create your own Telegram group for Modesty if you wish. Just please don't invite me to it.
Building
Building the kernel from source is beyond the scope of this document. If you want to build this kernel from scratch, for example to change its configuration, start with this handy reference tailored to building kernels for Android.
Download
See posting #2 in this thread for links to the latest and all previous versions.
Known Issues
Bluetooth HID (input) devices do not work.
Versions 0.99.11 to 0.99.22 contained a bug that caused Bluetooth HID (input) devices, such as mice, keyboards and gamepads, not to function. They could be paired with the tablet, but their input was not recognised. This bug was finally traced and fixed in 0.99.23.
Installation
Make a back-up of your existing boot partition using the custom recovery environment provided by TWRP. If your device doesn't yet have TWRP, you will need to install it first. Then, use it to flash the Modesty ZIP file. The boot image will automatically be installed in the boot partition of your device.
If your device has unmodified Samsung firmware, you will encounter problems with Bluetooth (namely delayed initialisation and forgotten pairings) after installing this or any other custom kernel. To remedy this, you will need to patch your system with modified libsecure_storage.so libraries. Some custom kernel installers actually install these without telling you, overwriting your system libraries and transparently circumventing the problem before you can run into it. This approach necessarily modifies your device's file-system, however, and that may not be what you want. At the very least, the user should be made aware what is happening to his device.
For this reason, I have instead prepared a companion Magisk module that achieves the same goal without modifying the file-system. This will allow you to run a custom kernel (not just this one, but any custom kernel) on pristine stock firmware without any Bluetooth issues. The module can be found in the official Magisk module repository, accessible from Magisk Manager on your tablet. If you install this Magisk module, you may wish to also disable the secure_storage_daemon by editing /system/etc/init/secure_storage_daemon.rc (change start to stop), as it no longer serves a purpose.
In a similar vein, you may encounter authentication errors when connecting to wireless networks after installing this or any other custom kernel. This problem is not serious and easily remedied by re-entering your passphrase for the networks you use.
Finally, if SecurityLogAgent notifies you that unauthorised actions have been detected, do not be alarmed. This is a normal consequence of having installed a custom kernel. You may wish to disable SecurityLogAgent to avoid being repeatedly notified..
Whilst the above issues are the only ones you can expect to encounter when running this kernel vs. the stock Samsung kernel, they may sound like more trouble than they're worth. In that case, you might be happier just sticking to Samsung's stock kernel. The company supplies a perfectly good kernel straight from the factory.
Configuration
You are encouraged to use either @morogoku's excellent MTweaks (a modified version of Kernel Aduitor) or @flar2's EX Kernel Manager to manage the features provided by this kernel.
Source code
Modesty's GitHub repository.
References
A useful guide to CPU governors, I/O schedulers (and more).
For more information on the some of the individual schedulers included in this kernel, you can also look under Documentation/block in the kernel source.
The WireGuard user guide, control app, home page and source code.
Credits
Thank you to everyone in the Linux kernel universe for getting us this far. Within the Android development community, I am grateful to the following people for their time-saving contributions:
@osm0sis for Android Image Kitchen, which has saved me a huge amount of work in packing and unpacking boot images.
An honorary mention must go to @Chainfire, the extent of whose benefaction to the Android community is still not fully understood or appreciated in some quarters.
Change log
v1.0.0 (final ianmacd release) (2019-11-21)
Kernel proclaimed stable. Version number incremented. No code changes since v0.99.49.
v0.99.49 (2019-11-16)
Updated to Linux 4.4.202.
v0.99.48 (2019-11-13)
Updated to Linux 4.4.201.
v0.99.47 (2019-11-11)
Updated to Linux 4.4.200.
v0.99.46 (2019-11-06)
Updated to Linux 4.4.199.
v0.99.45 (2019-10-31)
Updated to Linux 4.4.198.
v0.99.44 (2019-10-19)
Updated to Linux 4.4.197.
v0.99.43 (2019-10-08)
Updated to Linux 4.4.196.
v0.99.42 (2019-10-07)
Updated to Linux 4.4.195.
v0.99.41 (2019-09-22)
Updated to Linux 4.4.194.
v0.99.40 (2019-09-16)
Updated to Linux 4.4.193.
v0.99.39 (2019-09-11)
Updated to Linux 4.4.192.
Fixes unavailability of external SD card in Modesty 0.99.38.
v0.99.38 (2019-09-08) Release withdrawn (External SD card unavailable)
Updated to Linux 4.4.191.
v0.99.37 (2019-08-26)
Updated to Linux 4.4.190.
v0.99.36 (2019-08-12)
Updated to Linux 4.4.189.
v0.99.35 (2019-08-07)
Updated to Linux 4.4.188.
v0.99.34 (2019-08-05)
Updated to Linux 4.4.187.
v0.99.33 (2019-07-23)
Updated to Linux 4.4.186.
v0.99.32 (2019-07-12)
Updated to Linux 4.4.185.
v0.99.31 (2019-06-28)
Updated to Linux 4.4.184.
v0.99.30 (2019-06-22)
Updated to Linux 4.4.183.
v0.99.29 (2019-06-18)
Updated to Linux 4.4.182.
v0.99.28 (2019-06-12)
Updated to Linux 4.4.181.
v0.99.27 (2019-05-17)
Updated to Linux 4.4.180.
v0.99.26 (2019-04-28)
Updated to Linux 4.4.179.
v0.99.25 (2019-04-07)
Updated to Linux 4.4.178.
v0.99.24 (2019-03-26)
Updated to Linux 4.4.177.
Build only the latest revision of the DTB.
v0.99.23 (2019-03-02)
Fixed bug, introduced in v0.99.11, that caused input from Bluetooth HID devices, such as keyboards, mice and gamepads to be ignored.
v0.99.22 (2019-02-23)
Updated to Linux 4.4.176.
v0.99.21 (2019-02-20)
Updated to Linux 4.4.175.
v0.99.20 (2019-02-11)
Updated to Linux 4.4.174.
v0.99.19 (2019-02-08)
Updated to Linux 4.4.173.
v0.99.18 (2019-01-26)
Updated to Linux 4.4.172.
v0.99.17 (2019-01-17)
Updated to Linux 4.4.171.
v0.99.16 (2019-01-13)
Updated to Linux 4.4.170.
v0.99.15 (2018-12-30)
Rebased on ARK4 kernel source code and boot images.
v0.99.14 (2018-12-23)
Updated to Linux 4.4.169.
Merged four more UPSTREAM commits from android-4.4 kernel branch.
v0.99.13 (2018-12-13)
Updated to Linux 4.4.167.
Merged selected BACKPORT and UPSTREAM commits from android-4.4 kernel branch.
v0.99.12 (2018-12-05)
Updated to Linux 4.4.166.
Realtek USB Ethernet driver upgraded from v2.08.0 to v2.10.00.
v0.99.11 (2018-11-29)
Updated to Linux 4.4.165.
KCAL advanced colour/gamma control driver optimisation.
Added @flar2's sound control driver for controlling headphone and microphone gain. (Configure with MTweaks or EX Kernel Manager).
v0.99.10 (2018-11-21)
Updated to Linux 4.4.164.
Added KCAL advanced colour/gamma control driver. (Configure with MTweaks or EX Kernel Manager).
Lots of tracing and debug logging disabled, further reducing kernel size.
CONFIG_DISPLAY_USE_INFO
CONFIG_SEC_DISPLAYPORT_LOGGER
CONFIG_FB_MSM_MDSS_XLOG_DEBUG
CONFIG_SEC_FILE_LEAK_DEBUG
CONFIG_SEC_DEBUG_USER
CONFIG_SEC_DEBUG_SUMMARY
CONFIG_SCSI_UFSHCD_CMD_LOGGING
CONFIG_MSM_SMEM_LOGGING
CONFIG_PROFILING
CONFIG_DEBUG_INFO
CONFIG_SCHED_DEBUG
CONFIG_SEC_PM_DEBUG
CONFIG_CORESIGHT
Built as monolithic kernel (i.e. without CONFIG_MODULES).
Built as relocatable code (CONFIG_RELOCATABLE_KERNEL).
Assembler symbols stripped (CONFIG_STRIP_ASM_SYMS set).
Embedded kernel config (reported via /proc/config.gz) now falsely reports stock settings to allow disabling of superfluous kernel features that otherwise cause grave Android System warning on boot.
v0.99.9 (2018-11-13)
Rebased on ARJ3 kernel source code and boot images.
v0.99.8 (2018-11-10)
Updated to Linux 4.4.163.
More than 100 fixes applied from upstream AOSP android-4.4 and android 4.4-o branches.
Lots of tracing and debug logging disabled:
CONFIG_IPC_LOGGING (debug logging for IPC drivers)
CONFIG_QCOM_RTB (register tracing)
CONFIG_TRACER_PKT (for tracing IPC protocols)
CONFIG_FTRACE (kernel tracing infrastructure)
CONFIG_CPU_FREQ_SWITCH_PROFILER (CPU frequency switch profiler)
CONFIG_TRACING_EVENTS_GPIO (traces GPIO subsystem)
Fixes to allow kernel to build when above logging and tracing options are disabled.
v0.99.7 (2018-10-30)
Rebased on ARH5 kernel source code.
Reworked the v4l2 fix that restores liboemcrypto-dependent apps to working state.
v0.99.6 (2018-10-28)
v4l2 fixes to restore liboemcrypto-dependent apps to working state.
v0.99.5 (2018-10-21)
Updated to Linux 4.4.162.
v0.99.4 (2018-10-19)
Initial public release, based on Linux 4.4.161.
v0.99.3
Internal build, based on Linux 4.4.160.
v0.99.2
Internal build, based on Linux 4.4.159.
v0.99.1
Initial internal build, based on Linux 4.4.78.
It begins! Awesome to finally see a custom kernel for the Tab S4.
I want to test for you once I can get root back
ianmacd said:
Change log
v0.99.4 (2018-10-19)
Initial public release, based on Linux 4.4.161. Caution: This kernel remains completely untested on the T835.
v0.99.3
Internal build, based on Linux 4.4.160.
v0.99.2
Internal build, based on Linux 4.4.159.
v0.99.1
Initial internal build, based on Linux 4.4.78.
Click to expand...
Click to collapse
Flashed on T835 device doesnt even get past the Boot (custom device) screen is there a way to get logs without using a computer?
Sent from my Samsung SM-G950F using XDA Labs
dr460nf1r3 said:
Flashed on T835 device doesnt even get past the Boot (custom device) screen is there a way to get logs without using a computer?
Click to expand...
Click to collapse
I'll look into it this evening. I'm just about to get off a plane.
Were there any errors when installing? Was your device properly detected as a T835?
Sent from my SM-G965F using XDA Labs
ianmacd said:
I'll look into it this evening. I'm just about to get off a plane.
Were there any errors when installing? Was your device properly detected as a T835?
Click to expand...
Click to collapse
Installing just fine, correctly detected as well.
Sent from my Samsung SM-G950F using XDA Labs
dr460nf1r3 said:
Installing just fine, correctly detected as well.
Click to expand...
Click to collapse
I've gone through the ramdisk of the T835's boot image with a fine-tooth comb and can find nothing untoward. I also verified that I properly removed the dm-verity flag from the T835's device tree.
There are actually very few source code differences between the T830 and T835. Both can be built from a single tree. The only differences lie in the kernel config file and the device tree, but I am building with the default T835 configuration, and with the proper device tree for that device.
Let's try at least ruling out my installer code. Please image-flash this new boot image[/i] to your device and tell me if it boot-loops. If it does, my installer isn't the problem, because it's only used for a ZIP flash. I've already checked the installer code and can't see any bugs, so I don't think the issue lies there.
Can you also please tell me which version of the firmware your device is running? Possibly there's an issue there, too. Samsung has so far released the source to the ARGH kernel only. This seems to work fine on my ARH5 firmware, but it's uncertain whether it would still work on something based on ARI*, and I've seen that a couple of countries do now have ARI firmware available. Mind you, even if it wasn't compatible, it should still get as far as booting.
Anyway, please test that boot image and let me know your firmware version.
While I soldier on with the issues afflicting the T835 build, can anyone else verify the T830 build as working for them?
Don't be shy; I'm running it on my own device, so I'm certain that build boots.
ianmacd said:
While I soldier on with the issues afflicting the T835 build, can anyone else verify the T830 build as working for them?
Don't be shy; I'm running it on my own device, so I'm certain that build boots.
Click to expand...
Click to collapse
Sorry for the noob question if i flash this kernal on my SM-T835 will i lose DEX ? Sorry i'm not quite understanding what KERNEL does ? Thanks in advance!
N1NJATH3ORY said:
Sorry for the noob question if i flash this kernal on my SM-T835 will i lose DEX ? Sorry i'm not quite understanding what KERNEL does?
Click to expand...
Click to collapse
When the kernel is working as intended, you won't lose DeX, but it currently isn't even booting on the T835.
Only those who are able to assist in debugging the current boot failure should install the T835 build at this time.
The T830 build, on the other hand, is rock solid for me, and I encourage anyone who is capable of recovering from an unexpected bootloop to try it out.
Version 0.99.5 released.
This release updates the kernel to the latest upstream Linux.
T830 owners, install at will. T835 owners, beware: The previous release has been reported unbootable on this model, and this release is likely to be similarly afflicted. Investigations are ongoing. Until this issue is resolved, the whole project has been downgraded to alpha status.
Change log
Updated to Linux 4.4.162. Caution: This release is likely to cause a bootloop on the T835.
ianmacd said:
I've gone through the ramdisk of the T835's boot image with a fine-tooth comb and can find nothing untoward. I also verified that I properly removed the dm-verity flag from the T835's device tree.
There are actually very few source code differences between the T830 and T835. Both can be built from a single tree. The only differences lie in the kernel config file and the device tree, but I am building with the default T835 configuration, and with the proper device tree for that device.
Let's try at least ruling out my installer code. Please image-flash this new boot image[/i] to your device and tell me if it boot-loops. If it does, my installer isn't the problem, because it's only used for a ZIP flash. I've already checked the installer code and can't see any bugs, so I don't think the issue lies there.
Can you also please tell me which version of the firmware your device is running? Possibly there's an issue there, too. Samsung has so far released the source to the ARGH kernel only. This seems to work fine on my ARH5 firmware, but it's uncertain whether it would still work on something based on ARI*, and I've seen that a couple of countries do now have ARI firmware available. Mind you, even if it wasn't compatible, it should still get as far as booting.
Anyway, please test that boot image and let me know your firmware version.
Click to expand...
Click to collapse
Firmware Version ist arh5 and after flashing your img the device still constantly reboots on the start screen and doesnt even get to the boot Screen
Sent from my Samsung SM-G950F using XDA Labs
dr460nf1r3 said:
Firmware Version ist arh5 and after flashing your img the device still constantly reboots on the start screen and doesnt even get to the boot Screen
Click to expand...
Click to collapse
Thanks. That absolves the installer of any wrongdoing, at least.
Something is fundamentally wrong with the kernel for the T835.
The boot image is taken from stock firmware, and modified just enough to allow a custom kernel to boot. I very much doubt the problem lies there. A virtually identical image works for the T830.
The kernel config used is the one supplied by Samsung. The only modifications made to it are the same ones I made to the T830's.
I think my next step will be to produce a kernel built without downstreaming the 4.4.y Linux branch, so back to 4.4.78. If that works, it will indicate that an error affecting only the T835 was introduced during all of my merging of the upstream kernel.
I'll post again when I've built the kernel, which won't be for a few hours, as I'm on holiday at the moment.
Sent from my SM-G965F using XDA Labs
ianmacd said:
I think my next step will be to produce a kernel built without downstreaming the 4.4.y Linux branch, so back to 4.4.78. If that works, it will indicate that an error affecting only the T835 was introduced during all of my merging of the upstream kernel.
Click to expand...
Click to collapse
OK, @dr460nf1r3, please try this new T835 build.
This is rewound to 4.4.78, with just a few extra cherry-picked commits to enable it to build cleanly and boot without triggering dm-verity.
In other words, this kernel should be 99% identical to the one that shipped with the machine. This assumes that the source as supplied by Samsung was actually used to build the stock kernel.. They have been known to publish sources that don't match what's on the machine.
ianmacd said:
OK, @dr460nf1r3, please try this new T835 build.
This is rewound to 4.4.78, with just a few extra cherry-picked commits to enable it to build cleanly and boot without triggering dm-verity.
In other words, this kernel should be 99% identical to the one that shipped with the machine. This assumes that the source as supplied by Samsung was actually used to build the stock kernel.. They have been known to publish sources that don't match what's on the machine.
Click to expand...
Click to collapse
Thanks, flashing now will report back in a few minutes
Sent from my Samsung SM-G950F using XDA Labs
---------- Post added at 05:44 PM ---------- Previous post was at 05:17 PM ----------
ianmacd said:
OK, @dr460nf1r3, please try this new T835 build.
This is rewound to 4.4.78, with just a few extra cherry-picked commits to enable it to build cleanly and boot without triggering dm-verity.
In other words, this kernel should be 99% identical to the one that shipped with the machine. This assumes that the source as supplied by Samsung was actually used to build the stock kernel.. They have been known to publish sources that don't match what's on the machine.
Click to expand...
Click to collapse
Did not work still the same issue.. flashed via twrp to boot partition. Noob question, the boot backup i got is 64mb while your kernel hardly has 25.. whats going on here?
Sent from my Samsung SM-G950F using XDA Labs
dr460nf1r3 said:
Did not work still the same issue.. flashed via twrp to boot partition.
Click to expand...
Click to collapse
Well, that's disappointing. I was hoping that it was my screw-up, rather than Samsung's, but at this point almost everything I've done has been backed out and it still won't boot.
Noob question, the boot backup i got is 64mb while your kernel hardly has 25.. whats going on here?
Click to expand...
Click to collapse
Good question.
Your back-up is of the entire partition, including the area with no data on it, so you're getting a file the same size as the partition itself. My boot image contains just the data segment, so it's smaller.
If you pull the stock boot image from the AP file of Samsung's firmware, you'll see that it's a very similar size to mine (slightly smaller, actually):
Code:
$ unzip -p T835XXU1ARH5_T835OXM1ARH5_PHN.zip AP_T835XXU1ARH5_CL14008523_QB19263559_REV00_user_low_ship_MULTI_CERT_meta.tar.md5| tar xf - -O boot.img.\*lz4 | lz4 -dc > boot.img
$ ls -l boot.img
-rw-rw-r--. 1 ianmacd ianmacd 23593232 Oct 21 22:01 boot.img
$ file boot.img
boot.img: Android bootimg, kernel (0x8000), ramdisk (0x2000000), page size: 4096, cmdline (console=null androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_le)
So, what now?
I'll see which other minor changes I can back out, in an effort to arrive at a kernel built from source that is as close to stock as possible. If you're wondering Why doesn't he just build from pristine sources?, the answer is: Because Samsung's source code won't even build out of the box. Many of the kernel header files are simply not in the expected locations. Alas, this is a fairly common problem with Samsung's kernel source code releases.
I suspect the solution to this problem may actually lie in changes that have yet to be made, rather than changes made that need to be reverted. In other words, the T835 may require some kernel modifications or configuration that the T830 doesn't. Theoretically, a kernel compiled from Samsung's pristine sources should just work, but that's starting to look unlikely now.
I'm hoping that I can enable/disable a few further options in the kernel config, rebuild and produce a kernel that works for you. If, however, the problem is that the source itself is faulty, we may have to wait for a future release by Samsung to give us something that compiles into a working kernel.
But I don't intend to throw in the towel on the T835 just yet. There are still a few more things we can try.
ianmacd said:
Well, that's disappointing. I was hoping that it was my screw-up, rather than Samsung's, but at this point almost everything I've done has been backed out and it still won't boot.
Good question.
Your back-up is of the entire partition, including the area with no data on it, so you're getting a file the same size as the partition itself. My boot image contains just the data segment, so it's smaller.
If you pull the stock boot image from the AP file of Samsung's firmware, you'll see that it's a very similar size to mine (slightly smaller, actually):
So, what now?
I'll see which other minor changes I can back out, in an effort to arrive at a kernel built from source that is as close to stock as possible. If you're wondering Why doesn't he just build from pristine sources?, the answer is: Because Samsung's source code won't even build out of the box. Many of the kernel header files are simply not in the expected locations. Alas, this is a fairly common problem with Samsung's kernel source code releases.
I suspect the solution to this problem may actually lie in changes that have yet to be made, rather than changes made that need to be reverted. In other words, the T835 may require some kernel modifications or configuration that the T830 doesn't. Theoretically, a kernel compiled from Samsung's pristine sources should just work, but that's starting to look unlikely now.
I'm hoping that I can enable/disable a few further options in the kernel config, rebuild and produce a kernel that works for you. If, however, the problem is that the source itself is faulty, we may have to wait for a future release by Samsung to give us something that compiles into a working kernel.
But I don't intend to throw in the towel on the T835 just yet. There are still a few more things we can try.
Click to expand...
Click to collapse
Thanks for explaining everything for me. Id like to help you were i can but i dont have a computer by my hands right now for the next time
Sent from my gts4llte using XDA Labs
dr460nf1r3 said:
Thanks for explaining everything for me. Id like to help you were i can but i dont have a computer by my hands right now for the next time
Click to expand...
Click to collapse
Here's a new build to try. This one reverts the last few changes I originally made to the T835's kernel configuration before building. This is as close to stock as possible, whilst still being able to build.
If this doesn't boot, it pretty much means that Samsung has supplied code for the T835 that simply will not compile into a working kernel. At that point, we'll probably have to wait for updated sources. I already have a request pending with Samsung for the release of the BRI sources.
Just to be clear, the current status quo as I understand it is that the Samsung logo never starts to be written from left to right. You never get past the static screen with the device name and the word Custom. Is that correct?
ianmacd said:
Here's a new build to try. This one reverts the last few changes I originally made to the T835's kernel configuration before building. This is as close to stock as possible, whilst still being able to build.
If this doesn't boot, it pretty much means that Samsung has supplied code for the T835 that simply will not compile into a working kernel. At that point, we'll probably have to wait for updated sources. I already have a request pending with Samsung for the release of the BRI sources.
Just to be clear, the current status quo as I understand it is that the Samsung logo never starts to be written from left to right. You never get past the static screen with the device name and the word Custom. Is that correct?
Click to expand...
Click to collapse
Im sorry to tell you but this doesnt boot either in fact it doesnt even reboot the static screen. Your right about the current status quo sadly.
Sent from my Samsung SM-G950F using XDA Labs
I'm posting this now and hope in doing so some new input can be reached. Due to recent new and old exploits we need this, I have hardened the kernel some, from CopperheadOS, and put in place full "Harden usercopy", updated it to 3.10.108, and before I go any further in breaking the kernel i release this WIP. I refer to this post ( https://forum.xda-developers.com/showpost.php?p=80265757&postcount=50 ) for the current state of mobile calls etc.
Fastboot images:
190919: https://drive.google.com/open?id=1OAzYc_D_FHbbmIyFiSVtGLolB2EfiE40
290819: https://drive.google.com/open?id=1d8FNiFlMN6Bey6xD606pBomqBgSiZ-MO
Features:
OS Version: 8.1.0 Oreo
Kernel: Linux 3.10.108
Important informations:
You should be familiar with general installation of custom roms.
Required for installation: fastboot
This ROM needs a clean install, old /data may cause problems!
Working:
WIFI
Bluetooth
OTG-USB
NFC
These things are NOT working.
Camera; is not included due to inconsistency in the build currently. But failed to connect to the camera last time it did.
GSM; this will require reworking some android code, making some progress i think.
Code:
Abort message: 'CANNOT LINK EXECUTABLE "/system/bin/netmgrd": cannot locate symbol "_ZN6google8protobuf8internal20RepeatedPtrFieldBase4SwapEPS2_" referenced by "/system/vendor/lib64/libcneapiclient.so"...'
FM-Radio (not included)
GPS
Bugs:
Installing apps freeze the phone for a while.
Basically, this release needs help.
Source:
https://github.com/threader/local_manifests
https://github.com/threader/kernel
https://github.com/threader/android_device_sony_sumire
https://github.com/threader/android_device_sony_kitakami-common
Patch for external/protobuf attached to this thread.
Modified libcneapiclient.so attached.
Credits:
Everyone involved with the Sony-msm8994 project ( https://github.com/sony-msm8994/android_device_sony_kitakami-common/commits/lineage-15.1 )
Mr. Open devices "jerpelea", for actually answering some of my stupid questions I should have realized myself.
Berni-0815 for trying to do this for the z5c and leaving useful resources.
And everyone posting and following the Guide to port to Lineage-16.0 thread by algui91 (https://forum.xda-developers.com/xperia-z5/general/guide-to-port-to-lineage-16-0-t3931428) and willing to participate, this is a community effort after all.
Please don't quote this thread, I will edit it as I release new builds and make progress.
I was unsuccessful in building a flashable zip image first time I tried some moons ago, I don't know if this was due to the need of a TWRP update or just my half arsed attempt, I would appreciate if someone could direct me to correctly doing so.
Cheers
How can i help including the fact that i am nearly noob in Linux / Unix and havent built any custom ROM at the moment?
DP
threader said:
BuzzerHead.
Click to expand...
Click to collapse
let me think on that, but there are two things that's needed, a libcneapiclient.so that is msm8996 perhaps and for Android 8.x, maybe we can decompile and figure out the differences. And a Qualcomm trust zone from from maybe 8996 to hack and plug the holes. I'm still reading up.on this though but if you Google "chipsec Qualcomm trust zone" or indeed just the first results for " Qualcomm trust zone" you certainly see the problem ( https://blog.quarkslab.com/introduction-to-trusted-execution-environment-arms-trustzone.html , https://www.blackhat.com/docs/us-14/materials/us-14-Rosenberg-Reflections-on-Trusting-TrustZone.pdf )
I'm re-working the external/protobuf modifications just now as I think that is why the bug i listes occurred.
Edit:
Right, great, after unhacking the hacks and returning the protobuf API to its original state I'm stuck an error before the quite impossible error i had earlier, so this is not going as quickly as i thought, either.
Code:
Abort message: 'CANNOT LINK EXECUTABLE "/system/bin/netmgrd": cannot locate symbol "_ZN6google8protobuf2io17CodedOutputStream13WriteVarint32Ej" referenced by "/system/vendor/lib64/libcneapiclient.so"..
This is a clearly defined symbol already but perhaps not behaving as intended and an error my previous attempt somehow worked around.
The following might be the reason it hangs during package install though;
Code:
09-16 18:46:55.875 865 956 W SchedPolicy: add_tid_to_cgroup failed to write '1947' (Permission denied); fd=3
09-16 18:46:38.393 865 1126 W NativeCrashListener: Couldn't find ProcessRecord for pid 2958
Any news?
Is this project dead? Seeing a newer version of LOS on this device would be nice.
Sent from my SM-T580 using XDA Labs
TALUAtXDA said:
Is this project dead? Seeing a newer version of LOS on this device would be nice.
Sent from my SM-T580 using XDA Labs
Click to expand...
Click to collapse
It's resting... My life up ended and screwed my peace and tranquility, I simply have not had the time to look at it, I'm having a look now as long as the peace lasts.
I see there is a 10.0 now, with some collaboration maybe we can get this all working, I argued a lot with the vendor libs, i just need to get a grip on what's going on there with the other project. As far as i can tell quickly looking at it I can merge some of those changes to the unified kernel 3.10.108 I'm using and see how things go, It will take a some time to get going again. As far as the kernel goes I ought get it up to 3.12, there are some pagetable ioslation patches that are required for safe operation etc, but I paused kernel work until i could get Android in shape, then life happened....
This ROM is ONLY for SM-T560NU, NOT SM-T560. I CANNOT and WILL NOT make a SM-T560/SM-T561 build as they are different CPU/SoCs.
PLEASE BEFORE YOU decide to try this rom, you MUST read all of post 1, 2, 3 and 4 (about 10 minute read). If you think this is an unreasonable request, then stop reading now and find another rom. Thank you.
I am not responsible for lost data, identity theft, lost money, security vulnerabilities, bricked devices or any other hardware or software malfunctions that comes as a result of flashing this rom.
BACKUP YOUR DATA AND OLD rom BEFORE trying my rom.
If you are NOT an expert in using fastboot, adb, odin, heimdall, twrp, DO NOT use this rom. You must know how to use these tools to revert back to your old rom. If you are new to flashing custom roms, do NOT attempt this. If you need your tablet for work and something important, do NOT flash this rom. This rom could result in a bricked device or boot loop or non booting device or you not being able to revert back to your old rom.
What works
1. bluetooth
2. wifi
3. brightness
4. external audio
5. GPS
6. audio through headphone jack
7. audio over bluetooth
8. camera
9. selinux enforcing
10. DRM L3
11. deep sleep
What doesn't work/What isn't tested
1. gapps. Some of you require gapps for whatever reason. I use Aurora Store for my purposes and thus have NO KNOWLEDGE of the current state of gapps.
There are various gapps projects (at least 5 in 2022). Each has pros and cons. It's your job to do the research and find a suitable gapps project. I suggest you allocate at least a couple of hours doing your own research. My rom works by itself fine without gapps. DO NOT talk about gapps in this thread.
2. full disk encryption has been deprecated in Android 13 (LineageOS 20).
Source Code
The build instructions, source code and manifest are listed in post #2 FAQ #1. The kernel source code is at
https://github.com/retiredtab/android_kernel_samsung_msm8916/tree/lineage-20.0
Thanks
1. LineageOS team for source code.
2. LineageOS-UL team for merging, maintaining the legacy patches needed for old devices into one common reposistory so everyone can benefit.
https://github.com/orgs/LineageOS-UL/people
3. pre ALPHA testers @RDS5 and @Sigster for willing to test pre ALPHA builds and leaving feedback.
FAQ - I spent hundreds of hours building this rom. If you think it's unreasonable to read this FAQ, then don't use this rom. Thank you.
Q1. Where are the source and kernel source files?
A1. The kernel source files are at
https://github.com/retiredtab/android_kernel_samsung_msm8916/tree/lineage-20.0
The device tree files are at
https://github.com/retiredtab/android_device_samsung_msm8916-common/tree/lineage-20.0
https://github.com/retiredtab/android_device_samsung_gtelwifiue/tree/lineage-20
https://github.com/retiredtab/device_samsung_gte-common/tree/lineage-20
The vendor tree files are at
https://github.com/retiredtab/vendor_samsung_gtelwifiue/tree/lineage-19.1
https://github.com/retiredtab/vendor_samsung_msm8916-common/tree/lineage-20
The manifest.xml (or roomservice.xml) and build instructions for 20 are at
https://github.com/retiredtab/LineageOS-build-manifests/tree/main/20/msm8916
Q2. Is this ALPHA rom suitable as a daily driver?
A2. It can be depending on your requirements. I can't test every app so you try it yourself to see if it's suitable. I've been using this rom myself since mid Jan 2023 with no major issues. I suggest you do a clean install, see FAQ 11, and flash this 20 ROM BY ITSELF (no gapps, magisk, etc) and see if you like it.
Q3. What if my app, xyz, doesn't work?
A3. If your app doesn't work, then go back to your old rom.
Q4. Your rom is laggy and buggy.
A4. If you find the above, then go back to your old rom. There's only so much software can do on a 2015 budget level tablet. Remember a budget tablet will have the slower SoC/CPU and less DRAM than a top of the line model. Your tablet will also run slower when you use gapps. You can run a lot of software without using gapps. Research fdroid, newpipe, Aurora store etc.
Q5. What TWRP should I use?
A5. You MUST use TWRP 3.5.2_9. Get it from
https://sourceforge.net/projects/retiredtab/files/SM-T560NU/TWRP/
Q6. Why should I use this rom?
A6. If you don't like this rom, then don't use it.
Q7. Will you offer monthly updates with security patches?
A7. I will try to offer monthly security patches, but that all depends on if I continue to have high speed Internet in the future.
Q8. Can you help me? I'm a newbie. Can you provide step by step instructions?
A8. I don't have the time to help newbies, so please do your own research. There are lots of tutorials, videos, etc on how to flash roms. Newbie questions must be posted in the Questions and Answers forum, not here.
Q9. Can I report a bug with respect to the rom?
A9. Yes, but you need to supply the following information. If you don't, I won't look at it.
You must provide an adb logcat of the problem and tell me how to reproduce it. Note I will not be downloading any apps that require money or an userid/password. For example, if you have problems with Netflix, I cannot help you since I don't have a paid subscription. If you use some app that requires an userid/password, I cannot help you as I'm not willing to create another userid/password even if it's free.
To get a logcat, open up a terminal window.
Code:
# clear the logcat first
adb logcat -c
# start logcat trace
adb logcat > problem.txt
# reproduce problem
# wait until problem has occured, then stop trace by hitting ctrl-c
# attach the problem.txt ZIPPED as text files don't seem to get attached properly
Q10. Do I need to erase everything and format my data?
A10. Yes, you MUST erase all the partitions (system, data, dalvik/art cache, cache) using TWRP and MUST format your data before installing 19.1 when you are coming from stock or an earlier version of LineageOS or from another custom rom. If you get stuck at the boot animation for more than 5 minutes, it's likely because you didn't follow the instructions I just wrote. Dirty flashes from stock, other custom roms or older LineageOS versions are not supported and not likely to work.
Q11. What gapps should I use?
A11. I don't use gapps anymore. I use Aurora Store. As of Nov 6, 2021, I no longer make recommendations on which gapps to use as your mileage may vary.
Let me by crystal clear. YOU NEED TO DO YOUR OWN HOMEWORK selecting between the various gapps offered. There are 5: opengapps, nikgapps, mindthegapps, flamegapps and bitgapps. Each one will have it's own installation instructions. The only recommendation I will offer to use the SMALLEST version of gapps.
Don't be surprised that whatever gapps you use might have problems like "Just a sec", voice not working, updating google play store please wait, etc. These are NOT problems of the OS as the OS will run fine without gapps. These are gapps problems and you must ask in the gapps forum why it doesn't work.
Q12. I'm having problems with gapps, can you answer why it's not working?
A12. I WILL NOT answer any questions regarding gapps. This thread is about the rom, not gapps. Android does not depend on gapps in order to work.
Q13. Why isn't my post answered or ignored?
A13. Questions already answered in the FAQ will be completely ignored. Again, I do not use Windows OS or gapps.
Q14. What speed up/optimization tips do you suggest?
A14.
1. Turn off animations. Go into developer settings, scroll down to the drawing section, and set window, transition and animator scale all to "off".
2. If you don't have a google account, don't install gapps. Use Aurora Store to get your apps as you can get all the same apps from the play store using an anonymous login.
3. Dont' run more than 2 apps at the same time. You can probably listen to music in the background and use a web browser at the same time, but don't expect great performance from a 2015 entry level tablet.
4. Use a web browser like Brave that has built in adblock and privacy features.
5. Use newpipe to watch your streaming content. It has built in adblock so you don't have to watch forced ads.
6. Look for apps that are open source, ad free and lightweight.
7. Remove all unused quick setting "bubbles" from the quick pull down menu. I only need and have 6.
Q15. Does this rom support Magisk for root?
A15. I don't use Magisk myself so I don't know and Magisk is always being updated to fool Google's certification process. Others have reported Magisk as working, but I won't answer any questions regarding it.
Q16. Will this rom ever become official?
A16. Starting with 19.1, legacy devices like ours will NEVER be official due to lack of ebpf support. See https://lineageos.org/Changelog-26/
Also, I don't want the responsibilities that come with being an official maintainer.
Q17. What is the difference between this rom and others?
A17. This rom tries to be pure LineageOS with little to no modifications.
Q18. Will there be any major 20 code modifications in the future?
A18. I don't anticipate any major modifications. There may be some small bug fixes and minor code cleanup, but all the hard work in getting the rom up and running and fixing all the major bugs have been done completed. This doesn't mean the code is perfect or well organized, but I won't be doing any major changes now that 20 is working.
Q19. Why did you fork the device and vendor trees for 20?
A19. The msm8916 repos seem geared towards phones and sometimes do not work or cause boot animation loops for tablets so I decided to fork their repos. In other words, what's deemed as msm8916-common code isn't common to all devices.
In addition, since I'm building SM-T350, SM-T357W, SM-T550, SM-P550 and SM-T560NU (all use the same msm8916 code), it seems easier to maintain all of them if I can control my own code repos and not worry if my changes affects the phones or not.
I have completely decommonized and rearranged the 20 msm8916-common tree so it's easier for me to maintain and build.
Q20. Can you build a variant of this device? For example, a LTE or S-pen version.
A20. If I don't physically have the device, I cannot and will not build it unless I can boot and test it myself. Even then, there's no guarantee that I can get those variant features working.
Q21. Can I load this rom on a variant devivce like LTE or S-pen version?
A21. The rom is built for the device explicitly listed. If you are an advanced user and understand TWRP, adb, odin, heimdall, you can try loading it on a LTE or S-pen variant by modifying the updater-script, but it may cause a bricked device, bootloops or non functionality of LTE/S-pen. You have been informed and warned!
Q22. I don't like the taskbar, how do I turn it off?
A22. Choose settings, type task into the search bar. Choose enable taskbar and disable taskbar. This will leave the on screen nav bar. If you want to disable that, go to settings, system, gestures, system navigation, gesture navigation.
Q23. Will this run on the SM-T560 or SM-T561?
A23. No, the SM-T560 and SM-T561 use a different CPU/SoC. The SM-T560NU rom will NOT work on SM T560/SM-T561. I CANNOT and WILL NOT build SM-T560 and SM-T561.
Q24. Okay, I understand the consequences and that this is ALPHA rom and willing to take the risks outlined, now where can I find the rom?
A24. You can download it from https://sourceforge.net/projects/retiredtab/files/SM-T560NU/20/
Release notes
NOTE: All builds that I upload have been personally tested on my device to boot and function as described in post #1. Having said that, there's still a chance it won't work on your device due to human error, your configuration, your apps, etc. If it won't boot, always start with a complete wipe of everything and format your data in TWRP. This is known has a clean install. Backup your data before a clean install.
June 23, 2023
1. Initial 20 ALPHA public release.
2. Incorporates June 5th security patches as per https://review.lineageos.org/q/topic:"T_asb_2023-06"
Reserved.