* Introduce a standalone libbfqio to be picked by inputflinger,
surfaceflinger and display HAL, without extending the VNDK.
* This commit is based on the following patches:
From: Steve Kondik <steve@cyngn.com>
Date: Tue, 08 Sep 2015 02:23:41 -0700
cutils: Add support for BFQIO cgroups
* Add support for a custom hierarchy of cgroups on top of the BFQ
IO scheduler. This allows us to place every thread into the
right class (realtime/best-effort/idle) with a set up priority
buckets depending on use case.
* The benefit of doing this is pretty incredible from an
interactivity standpoint. Realtime users (display/audio) benefit
the most, resulting in glitch-free audio and jank-free video.
Dexopting in the background no longer causes active harm to
foreground tasks. Other tasks such as account syncing become
invisible from the user's perspective.
* Magic bullet? Perhaps.
Change-Id: I4eb911395364ce46d6dcbff43e94286ded03a97d
From: Steve Kondik <steve@cyngn.com>
Date: Sat, 19 Sep 2015 12:43:40 -0700
cutils: Fix copypasta in ioprio code
Change-Id: I976693be4a6913ed2090fa32d0f8e4c93657e7e7
From: Steve Kondik <steve@cyngn.com>
Date: Sun, 20 Sep 2015 01:08:07 -0700
cutils: Fix display ioprio
* A few unwanted items are sneaking into this class resulting in
system slowdowns. Fixit.
Change-Id: I29033a38adf2c65535f916135d395d5147afe323
From: Steve Kondik <steve@cyngn.com>
Date: Sun, 20 Sep 2015 03:00:54 -0700
cutils: Clean up ioprio grouping
* It's now better understood what's happening system-wide due to these
changes, so clean up the stuff which is not necessary and/or
potentially harmful.
Change-Id: I72178770844c1ac388a0b424b12cdc49042aec87
From: Steve Kondik <steve@cyngn.com>
Date: Sun, 20 Sep 2015 17:36:54 -0700
cutils: Remove ioprio magic
* ..and replace it with something we can call explictly where it is
required in order to achieve the same goodness without the badness.
Change-Id: I605b3acbc56ce82663dd6f1c9f3320d0ab75e178
From: Zhao Wei Liew <zhaoweiliew@gmail.com>
Date: Thu, 08 Sep 2016 20:01:29 +0800
cutils: iosched_policy: Access BFQIO cgroup in /dev/bfqio
AOSP doesn't mount cgroups in /sys/fs/cgroup, but in /dev/.
Follow what AOSP does.
Change-Id: I40d2241e3e5c41612d3a54d22981d3250f8b1ed6
Change-Id: I7d42bd6bb9176724c1e5687de14946923150ae89
While UM platform HALs are interchangable and very much interoperable
between platforms and kernels, some have qualms about commonizing
platforms that Qualcomm hasn't fully commonized themselves yet. Therefore
introduce 2 seperate UM platforms, UM3.18 and UM4.4 (corresponding to
the kernel version used for that "version" of UM) and use msm8996 for
UM3.18 and msm8998 for UM4.4 (sdm845 will probably be UM4.9).
Also disable TARGET_USES_QCOM_BSP on the UM platforms to match Qualcomm
trees as it causes WiFi display not to work and calls for missing headers
and struct elements at build time.
Change-Id: Ia574231243b7d628d35959b474dd28bd37ac4031
* Use msm8996 HAL for 8953 & 8937 since they share the exact same
git history sha1 in all 7.0+ released tags.
Change-Id: I764a9a092b6d530de8a9b9e6e54f41c0b5d8a593
Add support for compiling kernels with Clang as intoduced on android-4.4
In order to compile with clang, you must set TARGET_KERNEL_CLANG_COMPILE.
If you wish to specify a specific clang version, also set TARGET_KERNEL_CLANG_VERSION,
but if that is not set, the build system will default to the latest version of clang
available in prebuilts/clang
Change-Id: I79dc1dca9758a930f2f5ba1754b5d8de114af900
Signed-off-by: Joe Maples <joe@frap129.org>
Place kernel module output in the correct location.
Perform depmod steps (copied from build-image-kernel-modules function in
build/make/core/Makefile).
See: https://source.android.com/devices/architecture/kernel/modular-kernels
Change-Id: I6e70012a5c1acdb276f9bee0d57631d2805f71ea
* http://www.mtel.ba/frend-plan
* Frend spoken "friend" is their voice & data plan
Change-Id: I014f7549d936c64abb3801596d940cee7703f790
Signed-off-by: Celoxocis <celox.ocis@gmail.com>
* Some devices need this function to return something, yet also do not
set BOARD_USES_QCOM_HARDWARE. Allow them to override this.
Change-Id: I3cf78da39b006ba805ae35fde7379357faa10250
(cherry picked from commit 012cc275e09346ef7909b6a5a144aed59b375ccd)
CAF doesn't use qcom/opensource in their paths, so automatically adjust
the project path for this when using cafremote
Change-Id: I6252fbd1c3e8a545c0d54eefb6b730b893821574
* Use requests if installed. If not fall back to urllib. This is
done because users may or may not have requests installed and
requiring them to do so for simple http stuff isn't really
reasonable.
* If requests is installed and a .gerritrc file exists in the
user's HOME directory, try to get credentials out of it
for the given gerrit instance. If auth for the correct gerrit
instance exists, use it to auth to gerrit. If no .gerritrc
exists, just use requests with no auth.
Example ~/.gerritrc entry:
review.lineageos.org|invisiblek|httppasswordhere
Change-Id: I95be26d51bfd31b53f3613e8dbfb7bba46324571
* We shouldn't be changing the default behaviour anyway, plus
Airplane Mode toggle is horrid on 8.1 right now
Change-Id: Ie795443f840e023f0c67f2a6729a7d702bc37cd5
* Previously, you could just specify a SRC directly
after './extract-files', and it would work, but
now, the arg '-p/--path' is required for the same
behavior to be applied for the extraction
* Add a catch-all case that just sets SRC if the arg
doesn't match any of the args that we care about
* Make the ordering of the cases alphabetical
Change-Id: Ia2ad42d444904ead6b3bd6d910af363eb7f015cc
The existing kernel module logic does not detect failed kernel module
builds. This is because the module build logic is a long shell chain
that invokes make macros which are not intended to be used in this way.
The essense of the issue is that we get a shell chain that looks like:
cmd && cmd && var=value; cmd && var=value; cmd;
The shell breaks this into three separate commands. The first builds
the modules. The other two are the macro invocations. So the result
of the command is the result of the last macro invocation, which will
always succeed even if the modules fail to build.
The issue is made worse by the existing build rule conflating the built
kernel modules and the installed kernel modules.
Fix this by reducing the built kernel module command to a single shell
command and creating a separate target INSTALLED_KERNEL_MODULES. Any
kernel module build failure will show up properly. The commands for
INSTALLED_KERNEL_MODULES do not invoke any macros and should avoid the
issue described above.
Finally, this also removes the fake target no-external-modules and
unifies the install logic for in-tree and out-of-tree modules.
Change-Id: I3d13056e217e1e937c8c3a345032682ffc394bca
Skip the extraction of pinned files if the ones currently available
have the expected sha1. If we don't, we will overwrite pinned files
with potentially incorrect files when the current vendor files are
not moved to a temporary directory (i.e. when not cleaning vendor).
Change-Id: I640d6bf2ed98eb366a4df17f0ebeaec81cb5274b
* WARNING: this intentionally breaks the build on devices who
are not setting BOARD_KERNEL_IMAGE_NAME and are still setting
TARGET_USES_UNCOMPRESSED_KERNEL or TARGET_KERNEL_APPEND_DTB
* The logic here is insanity and if all of this can be done
by simply setting BOARD_KERNEL_IMAGE_NAME, why have all this
extra cruft?
* Use cases:
- Set a kernel image name without "-dtb" on the end, you get a kernel.
Nothing more.
- Set a kernel image name with "-dtb" on the end, you get an kernel
with an appended dt.
- Set a kernel image name without "-dtb" on the end, and set
BOARD_KERNEL_SEPARATED_DT. You get a kernel and a separated dt.img.
- Set a kernel image name with "-dtb" on the end, and set
BOARD_KERNEL_SEPARATED_DT. You're crazy.
Change-Id: I5c3fc6eb727255684278ff562c0ee3faa7124b6b
* Starting with Oreo, all the apps that target O+ are always subject to
background restrictions (android/platform_frameworks_base@42a386b7717300bf6d75cbd3b4f7ad00f294be0d).
The manifest-registered receivers of apps with a targetSdkVersion
higher than 25 won't receive the broadcast. Instead, a message similar
to the following will appear in LogCat:
10-07 14:13:49.594 719 736 W BroadcastQueue: Background execution not allowed: receiving Intent { act=lineageos.intent.action.LID_STATE_CHANGED flg=0x20000010 (has extras) } to org.lineageos.flipflap/.EventReceiver
* Exempt some of our broadcast actions so that we can keep targetting
the latest SDK.
Change-Id: I075608e18994f64db5e89658757dca307f07c417
*) Put Lineage rc files in /system/etc/init instead of /init.lineage.rc
*) Split into function specific files (vibrator-specific stuff moved to
our custom vibrator HAL service)
Change-Id: I1d00950253fbf7fdd7a4b7bd52adbed971923575
We want to cleanup our temporary files independently on the signal,
so just execute a trap on 0. This will ensure temporary files are
always removed and doesn't require any extra care when trapping
signals such as SIGINT that require an explicit exit call.
Change-Id: Ieff4f15c44a9ac9d5a543d14c140ebd72c0e7344
To be honest, this name is a little misleading, this is how it should
have been done in the first place. This allows devices to copy vendor
files to the proper location depending on TARGET_COPY_OUT_VENDOR rather
than hardcoding system/vendor. This allows devices with dedicated vendor
partitions to copy directly to vendor. The only reason it's optional
is that some nexi set TARGET_COPY_OUT_VENDOR to system which would cause
some weird breakage.
Change-Id: Ic46bc1086737835340abef9f61693d386bc6a5dc
* Make a tempdir using the mktemp command rather than just making a
dir in /tmp to accomodate for systems that don't set proper perms
or dont have /tmp
* Fix the deodex procedure to pull files from the right path
Change-Id: I181863599b6670e3a149069dbb7b13ebf73bae8e