Status Update
Comments
ja...@google.com <ja...@google.com> #2
Are there many use cases for this? The current logic works fine with dark mode of platform, appcompat, and Compose.
wa...@vt.edu <wa...@vt.edu> #3
When I was trying out integrating this with Now in Android, I ran into this issue since Now in Android currently doesn't inherit from AppCompatActivity
and doesn't call AppCompatDelegate.setDefaultNightMode
, so maybe the solution is instead to inherit from AppCompatActivity
instead of just ComponentActivity
to update the underlying configuration.
rc...@gmail.com <rc...@gmail.com> #4
I just tested it with ComponentActivity. It's working fine for me. The scrim for 3-button nav and the icons are properly changed on light/dark mode switch. The extension function detect light/dark mode from resources.configuration.uiMode
which is commonly used by the platform, AppCompat, and Compose, so I don't know why it doesn't work. Can I take a look at what you tried in Now in Android.
rc...@gmail.com <rc...@gmail.com> #5
The theme switcher based on the user's preference within the app is handled separately from Configuration.uiMode
and isn't updating the configuration directly, so I was attempting to call enableEdgeToEdge
and manually specifying the dark and light themes.
The two options I see:
- Allow a different way of specifying for
enableEdgeToEdge
whether the app is effectively in dark mode or light mode instead of that being based just onConfiguration.uiMode
(this issue) - Switch Now in Android to use
AppCompatActivity
andAppCompatDelegate.setDefaultNightMode
so that theConfiguration.uiMode
is updated based on the user's preference
ki...@gmail.com <ki...@gmail.com> #6
I see, so it has in-app light/dark setting.
On API 31+, apps with custom in-app light/dark settings should call UiModeManager.setApplicationNightMode
enableEdgeToEdge
as well.
On API <31, it's easy if you can use AppCompatDelegate.setDefaultNightMode(int)
So, custom mode is useful for apps that:
- Provide in-app light/dark mode settings on API <31.
- Don't want to depend on appcompat
I'm not sure if it's super common, but I guess the feature is worth implementing. I'll put it during the next alpha phase.
For Now in Android, I recommend you still call setApplicationNightMode
on API 31+ regardless of enableEdgeToEdge
. On API <31, just for the time being, you can either use the current e2e implementation, hide the setting, depend on appcompat, or just bear with the minor UI glitch. None of these are great, but I don't have a good solution now.
yz...@gmail.com <yz...@gmail.com> #7
Branch: androidx-main
commit 27e7d52e8604a080133e8b842db10c89b4482598
Author: Yuichi Araki <yaraki@google.com>
Date: Wed Apr 19 12:56:59 2023
Add SystemBarStyle.custom
Relnote: "Add an optional parameter `detectDarkMode` to SystemBarStyle.auto for detecting night mode by custom logic"
Test: androidx.activity.EdgeToEdgeTest.enableCustom
Bug: 278263793
Change-Id: I78322867ba3940939e137479383eca08efc9a2b6
M activity/activity/api/current.txt
M activity/activity/api/restricted_current.txt
M activity/activity/src/androidTest/java/androidx/activity/EdgeToEdgeTest.kt
M activity/activity/src/main/java/androidx/activity/EdgeToEdge.kt
M activity/integration-tests/testapp/src/main/java/androidx/activity/integration/testapp/EdgeToEdgeActivity.kt
M activity/integration-tests/testapp/src/main/res/layout/edge_to_edge_activity.xml
bi...@gmail.com <bi...@gmail.com> #8 Restricted
ch...@gmail.com <ch...@gmail.com> #9
pd...@gmail.com <pd...@gmail.com> #10
This makes no sense and makes the new Android 11 unusable on large WLAN networks with 10k of devices which use a certificate that needs to be trusted.
We would appreciate it that at least if there would a kind of API key provided by
ja...@google.com <ja...@google.com> #11
Thank you for reporting this issue. We just need a few things for us to further investigate this issue:
Please fill out each question and comment, thank you.
-
Have you observed this bug on Pixel devices as well?
-
Android Build Version (go to Settings > About Device > Build Number (hold down to copy))
-
Android Device Model:
-
Capture the issue in a screen recording (desktop and/or phone capture) to show an example of the issue.
-
Upload the full bug report file after the issue has occurred. Steps followed here:
https://developer.android.com/studio/debug/bug-report -
Please provide a simple sample project (exported zip Android Studio file) that reproduces the issue. This gives us the closest test environment to yours and allows us to inspect the code/structure used which will help analyze your issue.
-
Steps to reproduce issue specific to the provided sample project, including steps steps to reproduce with test certificates etc... [Be as specific as possible]
- 1
- 2
- 3
-
Expected Results:
-
Observed Results:
Note: Please upload to google drive and share the folder to
The more information we have, the more accurately our product and engineering team can solve the issue. Thank you so much for your time and for your cooperation.
jo...@gmail.com <jo...@gmail.com> #12
It seems to me that you are rather looking for an excuse to close this issue rather than try to fix it. KeyChain.createInstallIntent()
has been pulled, but has legit use cases. The scope of use is narrow, thus the posed resolution of add an adb command to import a certificate.
pi...@gmail.com <pi...@gmail.com> #13
This isn't a bug - it's an essential but missing feature. It's an issue on all Android 11+ devices, including Pixel devices, and all Google Play Android emulators.
It's not possible to make a screen recording, upload a bug report, or provide a sample or repro steps, because the functionality doesn't exist. The previous KeyChain.createInstallIntent() did provide similar functionality, but that's been removed (for good reasons).
In general, these security restrictions are good for normal users, but I think there is a strong argument that Android developers should still able to automatically configure user CA certificates on their own devices. Providing this capability via ADB only seems like a sensible way to expose that functionality only to developers. There's clearly a lot of support for this, as you can see from the other comments and stars here.
It looks like there are simple ways to implement this, if there is the appetite. For example, you could create a tiny on-device command runnable only by ADB which takes a path to a certificate and sends a certificate install intent with that path to CertInstaller (just like the settings do and as some apps used to do pre-Android 11), and then change CertInstaller to accept such intents from that command (or from the ADB user in general). That would be sufficient.
Right now CertInstaller is capable of automatically installing certificates, but it limits who can send the intents to do so, so that it's only possible from the Settings app. The specific CertInstaller lines that currently limit this access are here:
ja...@google.com <ja...@google.com> #14
Great update. Thanks. The product and engineering teams have been updated.
sa...@google.com <sa...@google.com>
ay...@gmail.com <ay...@gmail.com> #15
Why limit this to only user certificates? There is an important and legitimate use-case when a person would need to install a certificate to the system CA store. Security researchers need to be able to inspect Android apps traffic. Currently, the only way to do this is to use a rooted device which is hardly an acceptable way. Since this is a system CA store that, in theory, shouldn't be modified, I suggest providing an option that will install the certificate temporarily. For instance, until the device reboot.
da...@gmail.com <da...@gmail.com> #16
It is acceptable to prevent users from installing certificates If they do not READ AND ACKNOWLEDGE BIG SCARY WARNINGS ⚠️
It is not acceptable to prevent legitimate developers from installing CA certs, at least at the user store level, with sufficient trust to achieve their limited scope usage cases.
We can develop things; like for example your key icon for VPNs; to inform users that custom certificates are in use. Perhaps a secondary icon like a certificate with a key overlay on it.
While I think ADB can possibly be a vector of attack; I also believe it is protected now by modern RSA Fingerprint verification and appropriate SCARY WARNING ⚠️ dialogues to prevent casual exploitation.
It shouldn't be the mission of Android OSP to prevent social engineering attacks; only make them difficult enough by informing the end user of what they are doing. It isn't your fault if people choose to ignore prominent warning signs.
If we can't trust the current iteration of ADB security then we need to up it more; and that may even mean we start forcing users of ADB to generate and install debug bridge certificates in full to make them acknowledge the BIG SCARY WARNING ⚠️ at least once.
br...@gmail.com <br...@gmail.com> #17
si...@gmail.com <si...@gmail.com> #18
mr...@gmail.com <mr...@gmail.com> #19
fs...@gmail.com <fs...@gmail.com> #20
I completely understand the reasoning for making it difficult to install so the end-user can't be tricked. There is no way to use an Android device in an enterprise or schools environment with content filtering that requires trusting a RootCA, and even Apple has not gone so far as to make it impossible to install one.
Please fix this and provide a sane way for developers, companies, and schools to install RootCA! All system rootCAs are few selected and self-signed at the roots; you decide to trust for us; enable us to do the same for RootCA we choose to trust.
jo...@gmail.com <jo...@gmail.com> #21
Googles decision to remove the possibility to install certificates via apps (via API) has led to HUGE onboarding problems for eduroam users (millions of students, professors and staff across the world), since the onboarding apps no longer can install Wi-Fi certificates. Apps like the official "eduroam CAT" and "SecureW2 JoinNow" are rendered useless. These devices are BOYD and can't be managed through MDM's.
A clear information text (not a scary warning!) showing the user what it means to install a Wi-Fi certificat, should be enough.
Also, installing the certificate manually does not work on a lot of models that runs Android 11 (certificate is shown but can't be installed, it's greyed out on Sony Xperia, Oppo, OnePlus Nord).
Works fine on Samsung Galaxy.
In the end, this has just led to less security for the average user, since the users will now try to connect to any open WIFI network instead of a trusted one (EAP-TLS... or EAP-TTLS etc, that actually verifies that the RADIUS server is legit, before sending credentials).
eh...@gmail.com <eh...@gmail.com> #22
sa...@gmail.com <sa...@gmail.com> #23
da...@gmail.com <da...@gmail.com> #24
that it makes little sense at all.
I apologize to that commenter in advance if English just isn't their
primary language; but I could not understand a word of what it was trying
to say or imply.
On Sun, Oct 24, 2021, 12:56 AM <buganizer-system@google.com> wrote:
sr...@gmail.com <sr...@gmail.com> #25
Great article with sovereign securities and global stability implications. Indeed this is a most significant inherent, built-in vulnerability unnecessarily exploitative hidden from most and under appreciated to countless others already aware of this mechanism's existence embedded in our devices.
Commentary FYI: Admist a global pandemic as the United States and allied nations in Europe, Australia, and around the world grapple with increasingly more consequential cyber challenges, we individual citizens also struggle against the onslaught of micro-targeted dynamics of the same.
Europe (EC) has thankfully codified measures for individual protections and industry accountability to profit-first configurations on core ubiquitous consumer technologies, the US except California hasn't yet placed national security and its people above its more self-serving political class dynamics.
The issue of what de facto "trust relations" ride along with every purchase of smartphone, computer, TV, and home network and security components should and MUST be elevated highest priority for us all BOTH organizational institutions and citizen. This embedded hidden list -- unknown to most important of Trusted Root Certificate authentication spanning globally a RANGE OF Sovereign Nations and privacy-mining, corporate, comercial interests -- would concern any conscientious. organization or individual person.
Manually determining dependencies of each preloaded de facto "Trusted Authorization" to important services and aupplications for each of our devices has so far been a daunting, evolutionary endeavor.
da...@gmail.com <da...@gmail.com> #26
those comments appear to be properly ontopic or related to this bug
directly.
Could we possibly get a google maintainer to examine this pair of comments
and consider closing the thread to combat further spam?
On Sun, Nov 7, 2021, 9:37 AM <buganizer-system@google.com> wrote:
br...@gmail.com <br...@gmail.com> #27
ch...@gmail.com <ch...@gmail.com> #28
co...@gmail.com <co...@gmail.com> #29
Thanks to those educated Ph.D. google devs who forced users to root phones and increased their security.
tv...@gmail.com <tv...@gmail.com> #30
np...@gmail.com <np...@gmail.com> #31
cn...@gmail.com <cn...@gmail.com> #32
si...@gmail.com <si...@gmail.com> #33
tt...@gmail.com <tt...@gmail.com> #34
sh...@googlemail.com <sh...@googlemail.com> #35
su...@gmail.com <su...@gmail.com> #36
br...@gmail.com <br...@gmail.com> #37
bl...@gmail.com <bl...@gmail.com> #38
ah...@gmail.com <ah...@gmail.com> #39
בתאריך יום ו׳, 1 באפר׳ 2022 ב-14:18 מאת <buganizer-system@google.com>:
nu...@gmail.com <nu...@gmail.com> #40
nu...@gmail.com <nu...@gmail.com> #41
fl...@simplifier.io <fl...@simplifier.io> #42
am...@gmail.com <am...@gmail.com> #43
mo...@pitechniques.com <mo...@pitechniques.com> #44
re...@gmail.com <re...@gmail.com> #45
pi...@gmail.com <pi...@gmail.com> #46
One new change makes this issue higher priority imo: Chrome 99+ on Android now appears to enforce certificate transparency on all certificates in the system store.
That's relevant because many of us have worked around this issue by rooting all the relevant devices, and installing system certificates instead (since that is easily automated, on rooted devices). Since these are system certificates, they're treated differently to installed user certificates for cert transparency purposes, but this workaround now makes Chrome unusable in these environments.
It would be very helpful to have an official path to automatically install user certificates for debugging & development, so we can stop messing around with the system store to work around this.
ro...@gmail.com <ro...@gmail.com> #47
I work with a company that uses an Internal Certification Authority (CA).
It has been horrible to deal with our internal CA cause there are developers that do not allow Android User Certificate store, causing many App development and usability issues.
sh...@gmail.com <sh...@gmail.com> #48
ca...@gmail.com <ca...@gmail.com> #49
a0...@gmail.com <a0...@gmail.com> #50
נכון מאד וחשוב ביותר
30...@gmail.com <30...@gmail.com> #51
זה חשוב מאד גם בשבילי
sc...@gmail.com <sc...@gmail.com> #52
we...@gmail.com <we...@gmail.com> #53
nu...@gmail.com <nu...@gmail.com> #54
#1
ms...@gmail.com <ms...@gmail.com> #55
we...@gmail.com <we...@gmail.com> #56
I have tried to add the certificate again, but then it got duplicated certificates on the list of user certificates!
This is more than a regression! This should be considered a security bug, because the system may have some user certificates that shouldn't.
al...@gmail.com <al...@gmail.com> #57
na...@gmail.com <na...@gmail.com> #58
Whoever made this decision without a plan to prevent breaking systems like MobileIron etc. should be ashamed of themselves: They have harmed thousands of people and wasted tremendous resources during the midst of a global pandemic.
sa...@gmail.com <sa...@gmail.com> #59
ra...@gmail.com <ra...@gmail.com> #60
go...@gmail.com <go...@gmail.com> #61
to...@gmail.com <to...@gmail.com> #62
49...@mtnwilderness.family <49...@mtnwilderness.family> #63
be...@gmail.com <be...@gmail.com> #64
le...@gmail.com <le...@gmail.com> #65
vi...@google.com <vi...@google.com> #66
Re-
Hello, your comments were flagged for review. We understand that you’re frustrated, but please keep your language civil. If you continue to post abusive statements to the Google Issue Tracker, we will be forced to take action by removing your ability to make any comments or changes on the Google Issue Tracker.
my...@gmail.com <my...@gmail.com> #67
Good luck, hope you all figure it out B-)
Description
Android 11 removes the KeyChain.createInstallIntent() API, used by applications to prompt to install CA certificates. That's discussed in general here: https://issuetracker.google.com/issues/151858120 .
I'm happy to accept that for general usage this API shouldn't be available for normal use, or should be extremely tightly restricted, and I'm not suggesting that this API come back in the previous form - protecting normal users from these risks is a very good idea!
I do think there's a legitimate developer/tester use case for user-trusted CA certificates though, and that the current process (a fiddly manual process through a long list of settings screens) is very inconvenient for those purposes.
Some example use cases I'm interested in:
To support these use cases, I'd like to suggest a small change to the existing restrictions: make it possible to add a CA certificate to the user certificate store via a shell command, runnable only from ADB.
This would make automated CA setup possible only for user devices with a debugger attached, and would be very convenient for automatically & easily enabling CA certificates for developer use.
I don't think this allows any significant new attacks, since these certificates could in theory be trusted already by manually sending input events through ADB (although doing so is fiddly right now, and doing so reliably for test automation yet more so).
There's a further case I'd love to have supported: developers tools on the device, which want to prompt to install a CA certificate for interception & debugging. That could be done by allowing such an API only when developer options are enabled (whilst retaining the previous security confirmations) but I imagine that's not an acceptable safeguard. I'd be very interested if there are any related suggestions that might allow that too though.
Thanks,
Tim