Commit Graph

260 Commits

Author SHA1 Message Date
steadfasterX
d812305b49
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-11 17:01:12 +00:00
steadfasterX
0ca1c41e8b
common: do not abort when recovery-in-boot
when using strict (i.e set -e added by this PR) a build will fail on release when there is no recovery.img. this makes that non-fatal allowing to proceed

Signed-off-by: steadfasterX <steadfasterX@users.noreply.github.com>
2023-09-26 14:54:04 +02:00
steadfasterX
59d8f35761
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>
2023-04-14 12:44:39 +00:00
Tad
f4c2da950b
Disable logging, has weird behavior
Signed-off-by: Tad <tad@spotco.us>
2023-04-01 20:06:04 -04:00
steadfasterX
5f783a6618
Functions.sh: fix source not found (#199)
Fixes the following issue on systems where /bin/sh != /bin/bash (e.g. Ubuntu):

> source [...]/Scripts/Common/Tag_Verifier.sh && verifyTagIfPlatform  : 1: source: not found

for these (unsupported) systems the following is still required (not needed on Fedora or other systems using /bin/sh -> /bin/bash):
 
1. `ln -s /bin/bash ~/.local/bin/sh`
2. .bashrc -> `export PATH="$HOME/.local/bin:$PATH"`
3. .bashrc -> `alias sh='/bin/bash'`

Signed-off-by: steadfasterX <steadfasterX@users.noreply.github.com>
2023-03-31 16:59:45 +00:00
Tad
750f244304
Updates, logging, and churn
also add an extra March ASB patch for 17.1

Signed-off-by: Tad <tad@spotco.us>
2023-03-31 12:38:46 -04:00
Tad
5d0ab40f0b
Robustness improvements
Signed-off-by: Tad <tad@spotco.us>
2023-03-08 01:14:06 -05:00
Tad
49f5f1c674
19.1+: Add the SUPL toggle setting from GrapheneOS
Will need some work to apply on 17.1/18.1

Signed-off-by: Tad <tad@spotco.us>
2023-02-10 23:57:04 -05:00
Tad
19d5f73b50
Remove silly carrier restrictions
Signed-off-by: Tad <tad@spotco.us>
2023-02-03 22:17:13 -05:00
Tad
20c4e75fe1
Fixes
Signed-off-by: Tad <tad@spotco.us>
2023-02-01 18:30:29 -05:00
Tad
af3fe9776b Small updates
Signed-off-by: Tad <tad@spotco.us>
2023-02-01 15:19:21 -05:00
Tad
626821d12d
Use HTTPS for GLPals
Signed-off-by: Tad <tad@spotco.us>
2023-01-20 21:22:16 -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
ad5de60266
More Pixel 6/7 work
compiles, but fails to generate release due to pvmfw failure

Signed-off-by: Tad <tad@spotco.us>
2022-12-15 20:49:30 -05:00
Tad
7f8ea96535
Pixel 6/7 prep + fixes
These still need defconfig and deblobber handling

All of these sections were reviewed & sorted

Signed-off-by: Tad <tad@spotco.us>
2022-12-14 22:23:31 -05:00
Tad
26f301bd91
Maybe not necessary
Sync with GrapheneOS/script

Signed-off-by: Tad <tad@spotco.us>
2022-12-11 10:20:19 -05:00
Tad
cdca2c032e
20.0: add barbet
Signed-off-by: Tad <tad@spotco.us>
2022-10-17 07:25:53 -04:00
Tad
e8248e4938
20.0: fixes + r11 churn
Signed-off-by: Tad <tad@spotco.us>
2022-10-16 17:18:06 -04:00
Tad
5b114cacf8
20.0: More fixes
It compiles, but fails to sign:
> TypeError: cannot use a string pattern on a bytes-like object

Signed-off-by: Tad <tad@spotco.us>
2022-10-15 17:20:41 -04:00
Tad
5cada3a769
20.0: Fixes
Signed-off-by: Tad <tad@spotco.us>
2022-10-15 15:53:17 -04:00
Tad
c9b14ae70d
Make hardenDefconfig more manageable
No functional changes

Signed-off-by: Tad <tad@spotco.us>
2022-10-03 09:04:02 -04:00
Tad
25568706e1
Various
- Add back the SIM ToolKit app
- 17.1: CarrierConfig testing
- 19.1: Enable op5 firmware inclusion, needs testing
- Don't disable coresight bits on op8, breaks compile
- 19.1: Add a patch from GrapheneOS to display/share logs when a crash happens

Signed-off-by: Tad <tad@spotco.us>
2022-09-23 22:53:12 -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
c97f8a1b6a
Only enable CONFIG_DEBUG_NOTIFIERS on kernels <=4.9
OnePlus 9 failed boot kernel log points to this.
GrapheneOS noted this as an inherent issue on the Pixel 4 and 5 too.

Signed-off-by: Tad <tad@spotco.us>
2022-08-25 15:20:28 -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
162f4f450a 19.1: add FP4
Signed-off-by: Tad <tad@spotco.us>
2022-08-03 12:45:26 -04:00
Tad
717caac5c6 Churn
Signed-off-by: Tad <tad@spotco.us>
2022-07-11 18:17:51 -04:00
Tad
c092b13a44 Restore star*lte
Signed-off-by: Tad <tad@spotco.us>
2022-06-08 22:55:00 -04:00
Tad
5df4058a15 Chrun
Signed-off-by: Tad <tad@spotco.us>
2022-06-03 15:14:35 -04:00
Tad
92c66447f8 Drop slub_debug
What is lost?
- sanity checks and redzoning on all devices
  - redzoning reportedly however causes issues on some devices such as the Pixel 3/4 and OnePlus 7
- slub sanization on 3.0, 3.4, 4.4 (except google/wahoo), xiaomi/sm6150, and oneplus/sm7250

Note: all 3.4+ devices still have page sanization

Signed-off-by: Tad <tad@spotco.us>
2022-06-03 13:58:17 -04:00
Tad
d3cb12b41b Skip adding slub_debug=P where not needed
Signed-off-by: Tad <tad@spotco.us>
2022-06-03 13:39:08 -04:00
Tad
aa61367ace Tweaks
- Disable slub_debug=P for devices with INIT_ON_ALLOC/FREE_DEFAULT_ON
- Disable slub_debug=Z due to known breakage
- Disable many debug options on Linux 4.x and up
- 19.1: fixup missing manifests for vayu :\

Signed-off-by: Tad <tad@spotco.us>
2022-06-02 17:13:20 -04:00
Tad
0eaca57fa6 19.1: Add OnePlus 8 and 9 series
Signed-off-by: Tad <tad@spotco.us>
2022-06-02 11:52:58 -04:00
Tad
735c9e0de8 Revert 5d57bf13
I don't trust enabling MODULES won't cause weird inane breakage on these legacy devices

Signed-off-by: Tad <tad@spotco.us>
2022-05-27 23:46:57 -04:00
Tad
5d57bf13c4 Compile fixes
The backported fix for CVE-2021-39713 requires CONFIG_MODULES=y
MODULES is default enabled, but some kernels are mutilated and break with it on

Signed-off-by: Tad <tad@spotco.us>
2022-05-26 22:36:22 -04:00
Tad
1ffaf7fe51 Fix
Signed-off-by: Tad <tad@spotco.us>
2022-05-20 17:16:51 -04:00
Tad
e5b0a6a429 Make ZRAM great again
Signed-off-by: Tad <tad@spotco.us>
2022-05-18 23:04:01 -04:00
Tad
df398fd6f5 Various
Signed-off-by: Tad <tad@spotco.us>
2022-05-07 20:22:49 -04:00
Tad
65883d9bc4 2022
Signed-off-by: Tad <tad@spotco.us>
2022-05-01 01:13:49 -04:00
Tad
0086d97848 Put back slub_debug=Z
Was removed for testing purposes in bfa18cb1

Signed-off-by: Tad <tad@spotco.us>
2022-04-30 14:35:27 -04:00
Tad
52c3a55140 Another kernel compile fix
Signed-off-by: Tad <tad@spotco.us>
2022-04-29 19:34:34 -04:00
Tad
1b6f6909ad Fix compile on some kernels
Signed-off-by: Tad <tad@spotco.us>
2022-04-29 17:25:23 -04:00
Tad
bfa18cb176 defconfig tweaks
Signed-off-by: Tad <tad@spotco.us>
2022-04-29 14:02:29 -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
3457fd4151 Device cleanup
Drop long non-compiling devices:
- 14.1: n7100, jellypro
- 15.1: himaul, oneplus2
- 16.0: zenfone3, fugu
- 17.1: yellowstone, fugu
- 18.1: bonito, sargo

Drop in favor of 19.1:
- 17.1: bonito, sargo
- 18.1: pro1, aura, sunfish, coral, flame, bramble, redfin
(experimental, but these devices don't currently appear to have any users)

Signed-off-by: Tad <tad@spotco.us>
2022-04-26 15:19:57 -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
Tad
d4dceffa60 Update supported kernels to latest wireless regulations database
Applies for ~43 kernel trees

Source: wireless-regdb-2022.04.08

Signed-off-by: Tad <tad@spotco.us>
2022-04-19 11:30:57 -04:00
Tad
163a162568 Fix boot animation + churn
Signed-off-by: Tad <tad@spotco.us>
2022-04-18 23:04:24 -04:00
Tad
4b6a86a473 Add missing device variants
Signed-off-by: Tad <tad@spotco.us>
2022-04-14 19:47:21 -04:00