Commit Graph

210 Commits

Author SHA1 Message Date
steadfasterX
30859d2c08
fix-up & enhance advanced error handling
new (internal used) functions:
- _exit
- _exit_report
- _exit_sigint

these are used to fix several (wrong) error handlings.

new environment variable:
- UNATTENDED_PATCHING

by default we assume unattended patching, i.e. if an error occurs during
the patch, reset or any other process we will report the error and
auto close the shell. this is needed as we source functions and code and
so cannot simply terminate a master process. instead the whole shell will
be terminated so if an error occurs nothing else will be executed (and you
should notice easily that something is wrong).

without that a (serious) error can still continue the rest of a function
and you likely not even noticing the error itself.

you can use:

export UNATTENDED_PATCHING=0

before or after sourcing init.sh and it will *NOT* auto-close the shell.
that way you can check the output and fix any issues.

Signed-off-by: steadfasterX <steadfasterX@gmail.com>
2024-04-22 10:24:18 +02:00
steadfasterX
7724c3effd
make divest functions error aware
this commit adds (the currently non-existing) error handling when
using divest's functions and scripts.
all the magic here gets activated when `source ../../Scripts/init.sh`
gets executed which is already a mandatory step before starting any
of the divest functions.

when something fails during patching, resetting or building
each error will be catched + printed including an error code now.
last but not least the executed file and the line number causing that
failure will be shown, too.

as all divest functions get source'd and so not a single build
script gets executed all ERR's needs to be trapped to catch issues.
I am not aware of another way to handle that properly as sourcing
means we cannot track a script or smth while this approach here
just works.

Example for an error thrown in a function call:

> ERROR: $DOS_WORKSPACE_ROOT/Scripts/Common/Functions.sh -> verifyAllPlatformTags() ended with status >1< at line >49<

Final SUCCESS result message after using `patchWorkspace`:

> [FINAL RESULT] No error detected (please check the above output nevertheless!)

Final ERROR result message after using `patchWorkspace`:

> [FINAL RESULT] Serious error(s) found!!!
> Summary error code was: 126. Check & fix all error lines above

Some notes:

- when an error occurs the process continues until the end (like it is now)
  i.e. an error will not stop the current and following tasks
- when multiple errors occur the exit codes will be summed
- buildDevice: a (summed) end result gets printed (SUCCESS or ERROR) at the very end
- the trap used to catch any error will also be active for any command executed
  on the cli. that means: type "false" -> ENTER and you will get an error, too
  same for any script exectued after source init.sh
- when all goes well the trap will be resetted at the end but there are cases
  where this might not happen -> that is why `resetEnv` can be executed to
  reset the trap, i.e. all becomes as it was before sourcing init.sh
- `resetEnv` gets called automatically:
  - after a successful `patchWorkspace` run
  - whenever CTRL+C is used (during a running task or just on the cli)
  - a process get killed (SIGHUP, TERM)
- the whole implementation might not catch all errors though - it highly depends
  on how the function or the script/program called actually handles errors or better
  said: if they return a proper exit code on failures.
  For example some tools (like some git cmds) might print an error but don't return
  a non-zero exit code. This cannot be tracked other then with your eyes or these
  must be replaced by other methods returning a non-zero exit code on failures.

Signed-off-by: steadfasterX <steadfasterX@gmail.com>
2024-04-22 10:24:18 +02:00
Tavi
4f8cfc8a41
you want it, you got it!
now compile it yourself.

Signed-off-by: Tavi <tavi@divested.dev>
2024-04-09 16:25:54 -04:00
Tavi
074bec2ba2 Say no to the propriatery blobs 2024-01-29 13:58:53 -05:00
Tavi
5c072f9f92
Add back CNE & DPM, again
Confirmed to fix STIR/SHAKEN verification ability on Qualcomm devices

TODO: test without atfwd

Signed-off-by: Tavi <tavi@divested.dev>
2024-01-24 09:58:06 -05:00
Tad
90979e494c
Updater: point the changelog button to our news page
Closes https://github.com/Divested-Mobile/DivestOS-Build/issues/257

Signed-off-by: Tad <tad@spotco.us>
2023-10-20 18:44:05 -04:00
Tad
6222ce9ee9
Adjust deblob
- Put face unlock on a flag
- Don't remove the (non-executable) files for Google Camera to silence complaints

Signed-off-by: Tad <tad@spotco.us>
2023-09-02 10:29:00 -04:00
Tad
52a0c55c41
Fixups
- Revert Freetype branch switching for 15.1+, broken
- Don't include OpenEUICC on Pixel 2 and 3 series, they won't work
- Churn

Signed-off-by: Tad <tad@spotco.us>
2023-08-24 03:06:02 -04:00
Tad
8b51c3cd0f
Fixup OpenEUICC inclusion
Signed-off-by: Tad <tad@spotco.us>
2023-08-21 20:00:31 -04:00
Tad
c070e856b2
eSIM enablement via @PeterCxy's OpenEUICC
tested working on bluejay

Signed-off-by: Tad <tad@spotco.us>
2023-08-21 09:25:10 -04:00
Tad
7ef5d9a9c4
Broken EUICC handling
Signed-off-by: Tad <tad@spotco.us>
2023-08-05 18:57:32 -04:00
Tad
e74f861c8e
Fixes + Churn
- Fix instances of awk failing on missing globs
- Remove unwanted packages from work/user/managed profiles
- Remove proprietary camera extensions

Signed-off-by: Tad <tad@spotco.us>
2023-07-24 03:59:51 -04:00
Tad
af57c5c857
Tweaks
Signed-off-by: Tad <tad@spotco.us>
2023-07-19 04:43:13 -04:00
Tad
aa6bfad801
Various
- Drop OpenCamera, it doesn't work on lock screens anymore?
- microG on 18.1+:
  - set packages forceQueryable
  - spoof some sources as Play Store
    TODO: backport this to 17.1
- Remove camera extensions
- Churn
- Wording

Signed-off-by: Tad <tad@spotco.us>
2023-07-15 18:22:07 -04:00
Tad
192c73146a
Add a toggle for KSM
Signed-off-by: Tad <tad@spotco.us>
2023-07-14 17:11:21 -04:00
Tad
83cbcfa39b
Churn
Signed-off-by: Tad <tad@spotco.us>
2023-07-08 15:21:06 -04:00
Tad
492ed24ca2
Fixups
Signed-off-by: Tad <tad@spotco.us>
2023-07-06 17:59:25 -04:00
Tad
a96f74ca28
Enable the opt-in unprivileged microG enablement patchset
Runtime tested: 17.1, 18.1, 20.0
Compile tested: 19.1

Signed-off-by: Tad <tad@spotco.us>
2023-07-03 21:50:08 -04:00
Tad
b7d37053c3
Further harden signature spoofing with targetSdk and versionCode checks
- Also fix compile for 17.1, rest should be fine

Signed-off-by: Tad <tad@spotco.us>
2023-07-03 17:33:34 -04:00
Tad
0f4044e242
20.0: opt-in hardened unprivileged microG ability
Unlike other systems which ship privileged microG out of the box:
- User must enable microG repo in F-Droid
- User must install official microG apps (GmsCore/FakeStore/GSF)
- User must enable the microG toggle in Settings
- NOT a privileged app, not all features will work
- gmscore SELinux domain is still disabled

Signed-off-by: Tad <tad@spotco.us>
2023-07-03 13:45:06 -04:00
Tad
6b94c8cdcb
Fixup
Signed-off-by: Tad <tad@spotco.us>
2023-06-21 16:05:11 -04:00
Tad
09768ac79b
Tweak
I don't like hearing the WRRRRRRRRRRRRRRRRRRRRRRRRR of the fans and drives in my nas spinning up every time a build finishes

Signed-off-by: Tad <tad@spotco.us>
2023-05-12 21:43:27 -04:00
Tad
39b0c9e036
Remove broken emoji updates
Signed-off-by: Tad <tad@spotco.us>
2023-05-02 15:31:57 -04:00
steadfasterX
5d066effb6 allow a generic override by ~/.divested.vars
Signed-off-by: steadfasterX <steadfasterX@users.noreply.github.com>
2023-04-14 18:50:37 +00:00
steadfasterX
ad32c617d5 support per device config
when the file `~/.divested.vars.${BDEVICE}` exists it get
sourced after the default variables set by init.sh.

so to make use of this you have to

`export BDEVICE=hotdog`

before `source ../Scripts/init.sh`. Then the file `~/.divested.vars.hotdog` will
be sourced - if existent.

this way one can:

- override defaults without touching the init.sh (makes git pull more convenient)
- set different settings for different devices

Signed-off-by: steadfasterX <steadfasterX@gmail.com>
2023-04-14 18:50:37 +00:00
Tad
ef2fdb1d3e
More handling improvements
Signed-off-by: Tad <tad@spotco.us>
2023-03-08 16:14:51 -05:00
Tad
5d0ab40f0b
Robustness improvements
Signed-off-by: Tad <tad@spotco.us>
2023-03-08 01:14:06 -05:00
Tad
6ba784ac33
Some actual error handling 1/n
Signed-off-by: Tad <tad@spotco.us>
2023-03-08 00:03:23 -05:00
Tad
1511176a07
Update CVE patchers
Maybe some breakage

Signed-off-by: Tad <tad@spotco.us>
2023-01-28 20:33:44 -05:00
Tad
06254708be
Many fixes to get bluejay booting & working proper
- Enable APEX for Pixel 6/7, necessary for camera and pKVM
  - Also drop hack removing pKVM for Pixel 6/7
  - patch from GrapheneOS

- Extend hmalloc workaround to /apex

- Deblobber:
  - actually handle wildcard f/w/b overlays
  - move some stuff around
  - remove some more Pixel blobs
  - flag and disable removal of camera extensions, being able to use the second camera is nice

- Adjust what hardenDefconfig disables, caused boot issues
  minimal impact as most of these are already default-disabled
  can be narrowed down in future

- Disable some of the bionic hardening patches, causing more boot issues
  annoying to lose, but having a phone that boots is more important

- Add LTE only mode to 17.1, 18.1, 19.1, and 20.0, credit GrapheneOS

- Remove Pixel 2 ramdisk compression reverts, fixed upstream

And yes, I know I should've split up this commit...

Signed-off-by: Tad <tad@spotco.us>
2022-12-25 13:21:37 -05:00
Tad
82d2066021
Disable removal of aptX
Bluetooth audio is already awful enough, let's not make it worse

Signed-off-by: Tad <tad@spotco.us>
2022-12-18 22:58:21 -05:00
Tad
8bfedda18b
14/15/16: Fix compile failure with modern kernels
https://android-review.googlesource.com/c/platform/art/+/2226578
https://groups.google.com/g/Android-building/c/ZfUQQWt_ABI

Signed-off-by: Tad <tad@spotco.us>
2022-11-10 18:26:36 -05:00
Tad
11780d890f Churn
Signed-off-by: Tad <tad@spotco.us>
2022-10-24 22:53:41 -04:00
Tad
148df59b7e
Cleanup: Drop UnifiedNlp, FDroidPrivExt, and Silence
These haven't been included for a while

+remove some old cruft from 20.0

Signed-off-by: Tad <tad@spotco.us>
2022-10-19 12:15:24 -04:00
Tad
055ed9bfad
20.0: Initial bringup
Signed-off-by: Tad <tad@spotco.us>
2022-10-15 10:39:48 -04:00
Tad
fe95f700d8 Remove the CNE and DPM blobs + churn
Just say no!

Signed-off-by: Tad <tad@spotco.us>
2022-10-12 01:23:45 -04:00
Tad
da2e44c5f3
Add back the CNE and DPM blobs + churn
Signed-off-by: Tad <tad@spotco.us>
2022-10-02 11:47:58 -04:00
Tad
86ed884251
More verification
Signed-off-by: Tad <tad@spotco.us>
2022-08-26 23:14:15 -04:00
Tad
3618774d9f
GPG verification for all platform repositories
Signed-off-by: Tad <tad@spotco.us>
2022-08-26 22:40:27 -04:00
Tad
4bfedbc42d
Fixup and enable GPG verification
Signed-off-by: Tad <tad@spotco.us>
2022-08-24 15:52:55 -04:00
Tad
0d8ab187e3 Revert past two commits
Disabling extended sizes classes does not appear to have the savings it does on desktop.
Disabling the quarantine isn't acceptable given that default scudo implements it
2022-08-03 00:24:39 -04:00
Tad
a00fa2349e Switch to a memory efficient hardened_malloc variant
This should help 64-bit devices with <4GB RAM substantially, at reduced hardening.

clark for example only has 2.5GB of usable memory and idles at 1.6GB used.
After this change, idle usage drops to 1.1GB!

Signed-off-by: Tad <tad@spotco.us>
2022-08-02 20:29:10 -04:00
Tad
991e4c0642 Revert "Revert b5224f0"
I've triple checked that calls/data work fine without these blobs
and also have another report from walleye as the same.

I have no idea what is happening to those who have SIM issues.

This reverts commit dc392b17b6.
2022-05-17 18:42:38 -04:00
Tad
dc392b17b6 Revert b5224f0
Calling and data is tested working on my taimen
But there are multiple reports that say otherwise

Signed-off-by: Tad <tad@spotco.us>
2022-05-17 10:48:28 -04:00
Tad
05930af014 Various changes 2022-05-14 21:40:50 -04:00
Tad
b5224f0c79 Remove the Google carrier blobs
These were previously removed, and added back after a false report of breakage.

Data and VoLTE tested working on taimen

Signed-off-by: Tad <tad@spotco.us>
2022-05-03 14:28:51 -04:00
Tad
65883d9bc4 2022
Signed-off-by: Tad <tad@spotco.us>
2022-05-01 01:13:49 -04:00
Tad
36fabeca42 Deblob manifest.xml
Reverts 766219aa
Fixes https://github.com/Divested-Mobile/DivestOS-Build/issues/55

Signed-off-by: Tad <tad@spotco.us>
2022-04-29 09:44:36 -04:00
Tad
13a9997a0c 19.1: aura and beryllium + some fixes
Signed-off-by: Tad <tad@spotco.us>
2022-04-26 11:41:28 -04:00
Tad
e666a4a891 Update CVE patchers
TODO: maybe split CVE-2022-23960/4.9 to get back?

Signed-off-by: Tad <tad@spotco.us>
2022-04-19 14:38:44 -04:00