Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor and cleanup of existing patches to move changes to downstream added files for future changes; Guard AppsFilter classes via sealed modifiers #82

Open
wants to merge 305 commits into
base: 15
Choose a base branch
from

Conversation

quh4gko8
Copy link
Member

No description provided.

thestinger and others added 30 commits December 6, 2024 07:13
Previously I set this to null, but this can cause a NPE
Ported from 11, 12 moved the isLogoutEnabled boolean to ActiveAdmin.java
Android 12's privacy dashboard shows permission usage timelines for
location, camera, and microphone. However, there's no reason to limit it
to those specific permissions; all the infrastructure is in place for
other permissions.

To enable the usage timeline for more permissions, keep discrete app op
history for all permission groups shown in the privacy dashboard. The
list of permission group -> app op mappings was obtained from
AppOpsManager.RUNTIME_AND_APPOP_PERMISSION_OPS with a few additional ops
from PrivacyItemController, and each op was resolved to its respective
enum ordinal from frameworks/proto_logging/stats/enums/app/enums.proto.

Change-Id: I6b1c476ea4c0edbc0b3fdf2e3e5cfcb11da77e33
…tivity. (GrapheneOS#2)

This is the partner commit to the addition of an option in Settings for
the same feature. This config can be enabled by an overlay for devices
that support increased touch sensitivity (otherwise known as "Glove
Mode") via the persist.vendor.touch_sensitivity_mode system property.

Signed-off-by: Diab Neiroukh <[email protected]>
India, Japan and Korea have either industry standards or regulations for
phones sold within the country enforcing camera sounds. It's trivially
bypassed by taking out the SIM card, using video, using a headset or
turning off the volume. It doesn't make sense for us to enforce this.
Generated with Android 12 Extensions v9.0.0-test2 [1] using #1565C0
(light link accent color from GrapheneOS website) as a seed color,
with all other settings left at themelib [2] and colorkt [3] defaults.

[1] https://github.com/kdrag0n/android12-extensions/
[2] https://github.com/ProtonAOSP/android_external_themelib
[3] https://github.com/kdrag0n/colorkt
This switches to secure-by-default instead of crash-by-default for API
31 to work around apps which have updated to API 31 without specifying
either FLAG_MUTABLE or FLAG_IMMUTABLE for PendingIntents. If the app
ends up needing the FLAG_MUTABLE behavior, it may crash later, but it
should still be obvious why it happened.

There are many apps with outdated Play services client libraries lacking
support for Android 12 which are nonetheless targeting API 31 or higher
and will crash in certain situations. Google Play services will ask the
client library to request runtime permissions from the user on behalf of
it when it thinks that they're required for an operation that's
requested. The older client libraries will cause a crash in the app by
trying to create a PendingIntent with no FLAG_MUTABLE or FLAG_IMMUTABLE
specified. This is a much more common issue on GrapheneOS since Play
services is a regular user installed app with no special access or
privileges, and starts without any standard runtime permissions granted
to it.

Ported from 13: 94363af7c45a
Co-authored-by: Dmitry Muhomor <[email protected]>
It doesn't make sense to show a generic Android letter version icon for
USB.

Change-Id: I0441fc76fa8beab16675ac91e92e9b0490044dec
This change makes sharesheet way more useful by increasing the amount of
visible ranked apps.

Change-Id: Ic092f1d1784259c9f3c0870eda1dd1ae8544c697
muhomorr and others added 27 commits December 6, 2024 22:15
At early boot-time, NotificationManagerService isn't inited yet. This commit adds detection of that
case and delays processing of such early notifications until after system_server init completion.
Text tombstone file contains well-formatted detailed description of process state at the time of the
crash, which includes stack traces of all its threads, list of memory mappings and file descriptors,
values of memory tags near the fault address, logcat messages etc.

LogViewer app shows a brief description of the crash by default and surfaces text tombstone contents
via the "More info" button.
Pixel stock OS now enables FRP by default for everyone who has secure lock screen and a Google
account.
bac848b removed a null check for defaultAppPackageName.
defaultAppPackageName is null when there's no current Wallet app role holder.

This led to getWalletServiceInfo() returning a reference to an arbitrary app that declared support
for the wallet app interface, if any was present, when there was no current Wallet app role holder.

SystemUI automatically adds wallet quick access tile that links the current Wallet app role holder,
which linked that arbitrary app instead in this case.
Crash report snippet:

signal: 11 (SIGSEGV), code 9 (SEGV_MTESERR), faultAddr 300d6a4a30c285c
threadName: BG Thread GrapheneOS#2

backtrace:
    /product/priv-app/PixelCameraServices/PixelCameraServices.apk!libHdrPlusJni.so (Java_com_google_googlex_gcam_GcamModuleJNI_FrameRequest_1type_1get+0, pc 1495320)
    /system/framework/arm64/boot.oat (art_jni_trampoline+124, pc 9c76c)
    /data/dalvik-cache/arm64/product@priv-app@[email protected]@classes.dex (td.h+2748, pc 46472c)
    /data/dalvik-cache/arm64/product@priv-app@[email protected]@classes.dex (tc.b+104, pc 53bee8)
    /data/dalvik-cache/arm64/product@priv-app@[email protected]@classes.dex (bwv.aq+96, pc 4224f0)
    /data/dalvik-cache/arm64/product@priv-app@[email protected]@classes.dex (cat.run+1016, pc 4239c8)
    /data/dalvik-cache/arm64/product@priv-app@[email protected]@classes.dex (aph.run+180, pc 1a27c4)
    /data/dalvik-cache/arm64/product@priv-app@[email protected]@classes.dex (akd.run+72, pc 17c6a8)
    /data/dalvik-cache/arm64/product@priv-app@[email protected]@classes.dex (bjf.run+464, pc 21ab80)
    /data/dalvik-cache/arm64/product@priv-app@[email protected]@classes.dex (mf.run+2440, pc 305da8)
    /data/dalvik-cache/arm64/product@priv-app@[email protected]@classes.dex (alo.run+404, pc 1810f4)
onUserStopped() method name was misleading, it's called from onUserStopping(), while the user is
still running.

Initial research was done by maade93791 <[email protected]>

Co-authored-by: maade93791 <[email protected]>
This bug led to PackageInstallerSession#computeUserActionRequirement() allowing unprivileged
installer to install a package without confirmation when that installer had already installed the
same package in another user.
This reverts commit 823f61a5229a4bbfe7ff3a06e974a32fe7ecbe11.
… state"

This reverts commit 62e8a24837208726508a3785f09ca2a18f239bcc.
onBind() is always called immediately after onCreate() for these services. onBind() is called from
binder threads, it's not thread-safe to perform lazy initialization there without locking.
Location providers aren't expected to be removed at runtime by the apps and by the OS itself.

Removing a location provider leads to app and system_server crashes when they attempt to use the
previously existing provider.

Upstream removes location providers in just one case: when a test (mock) location provider is added
and then removed for a non-existing location provider.
…tures

Prerequisite for: gosps: support for per-app GrapheneOS-specific persistent state, after squashing on current aosp 15 tag: android_15.0.0_r6
@quh4gko8 quh4gko8 changed the title Refactor and cleanup of existing patches to move changes to downstream added files for future changes Refactor and cleanup of existing patches to move changes to downstream added files for future changes; Guard AppsFilter classes via sealed modifiers Dec 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.