14 Commits
Author SHA1 Message Date
Nathan Chancellor 51662f9a1d README: Document flash_dtbo
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-08-03 00:03:46 -03:00
Nathan Chancellor 5ce0e9f2d4 AK2: Move flash_dtbo into write_boot
split_boot is for fine grained control over what exactly gets flashed
at what point. It makes more sense for flash_dtbo to live in write_boot,
which does everything all at once.

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-08-03 00:03:46 -03:00
Nathan Chancellor d067d39b83 AK2: Expose dtbo flashing
Some zips may want to flash just the dtbo so add a function that can be
called in anykernel.sh to make that happen.

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-08-03 00:03:46 -03:00
Nathan Chancellor 01bf828e78 backend: Break out of device check loop if a match is found
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-07-16 21:28:54 -03:00
Nathan Chancellor dd914e3385 backend: Break out of device check loop if a blank value is found
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-07-16 21:28:54 -03:00
Nathan Chancellor cea9c5a247 backend: Cache build.prop values in device check block
These values are static, we don't need to keep getting them with
getprop.

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-07-16 21:28:54 -03:00
Nathan Chancellor 96bc564d58 AK2: Fix insert_line line validation
Currently, trying to use insert_line to insert something on the second
to last line fails and places it on the last line.

AK2 line:

insert_line test "sched_boost 0" after "on property:sys.boot_completed=1" "    write /proc/sys/kernel/sched_boost 0"

Before:

on property:sys.boot_completed=1
    bootchart stop

After:

on property:sys.boot_completed=1
    bootchart stop
    write /proc/sys/kernel/sched_boost 0

Expected result:

on property:sys.boot_completed=1
    write /proc/sys/kernel/sched_boost 0
    bootchart stop

In this example, the file length is 2 but the line we're inserting
at is also 2, which is perfectly fine because everything will get
shifted down by 1. Only if the file length is less than the desired
position (in this example, 3) should be handled by >>. All three
cases are now handled fine by insert_line (position 1, 2, and 3).

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-01-17 16:31:39 -07:00
Nathan Chancellor b0b754c094 Backend: Only apply contexts to new modules
After working on the OnePlus 5/T with custom ROMs on Android 8.1.0, I
have noticed that several of them have modules in /system/lib/modules
with a context of "u:object_r:vendor_file:s0", which goes against the
assumption made in commit 6b11373 ("update-binary: Change how we handle
modules"). Because the context is changed, there is an SELinux denial
when trying to load the module during init.

While it would be nice for ROMs to fix that on their own, I suspect
they are not entirely at fault. Google's documentation does state that
all modules should be loaded from vendor whenever possible so I would
guess Google decided to force *.ko objects to have a vendor_file
context. This is all speculation as I haven't cared to do research into
the subject.

Easiest way around this is to just worry about applying contexts to new
modules. cp does not override contexts so if the module was already
present, we can assume it has the correct context to begin with.

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-01-08 07:27:12 -07:00
Nathan Chancellor a0b6db2784 example: Update modules folder for new location handling
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-01-02 06:45:40 -07:00
Nathan Chancellor 218b5774d2 README: Update documentation for modules
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-01-02 06:43:59 -07:00
Nathan Chancellor 6b11373d4a update-binary: Change how we handle modules
As of Oreo, Google is requiring that kernel modules be used whenever
possible and that their location be in /vendor. With Lineage 15.1,
devices without a separate /vendor partition will use /system/vendor,
which symlinked to /vendor.

To make this more flexible and future proof, allow developers to specify
where each module needs to go by setting the path in the modules folder.
If a module needs to go to /system/vendor/lib/modules, then the module
should be placed in modules/system/vendor/lib/modules. Contexts and
permissions will still be updated automatically.

Android documentation: https://source.android.com/devices/architecture/kernel/modular-kernels

Lineage 15.1 commit: https://github.com/LineageOS/android_vendor_lineage/commit/bf38db2a5e358a5449458b3dee2dd9d4015b8147

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2018-01-02 06:38:00 -07:00
Nathan Chancellor 8decdd4624 AK2: Allow users to use either "" or " " for empty strings
Either one is now valid:
patch_fstab fstab.qcom /system ext4 options "discard" " "
patch_fstab fstab.qcom /system ext4 options "discard" ""

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2017-10-15 22:27:34 -03:00
Nathan Chancellor d907653c78 AK2: Sanitize patch_fstab for proper commas
Users may forget to place the commas for removal or they may want to
remove something in the middle. This will remove all commas at the
beginning and end and will make sure there are only single commas
between entries.

Examples:

Options: ro,barrier=1,discard,errors=panic

patch_fstab fstab.qcom /system ext4 options "discard,errors=panic" ""
patch_fstab fstab.qcom /system ext4 options ",errors=panic" ""
patch_fstab fstab.qcom /system ext4 options "errors=panic" ""
patch_fstab fstab.qcom /system ext4 options "discard" ""

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2017-10-15 22:27:34 -03:00
Nathan Chancellor cf764ee768 AK2: Improve patch_fstab
After aa1377c, trying to remove part of the original string was not
possible.

Example:
patch_fstab fstab.qcom /system ext4 flags “wait,verify” “wait”

Because "wait" is within "wait,verify", the entire if block will miss
since grep will succeed in finding it. To work around this, we'll
allow users to leave the last part blank and put in the part they
want to remove as the fifth parameter.

Example:
patch_fstab fstab.qcom /system ext4 flags “,verify” “”

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2017-10-15 22:27:34 -03:00