In the last three years, the percentage of Android devices which trust our ISRG Root X1 has risen from 66% to 93.9%. That percentage will increase further over the next year, especially as Android releases version 14, which has the ability to update its trust store without a full OS update. In addition, dropping the cross-sign will reduce the number of certificate bytes sent in a TLS handshake by over 40%. Finally, it will significantly reduce our operating costs, allowing us to focus our funding on continuing to improve your privacy and security.
On Thursday, Feb 8th, 2024, we stopped providing the cross-sign by default in requests made to our /acme/certificate API endpoint. For most Subscribers, this means that your ACME client will configure a chain which terminates at ISRG Root X1, and your webserver will begin providing this shorter chain in all TLS handshakes. The longer chain, terminating at the soon-to-expire cross-sign, will still be available as an alternate chain which you can configure your client to request.
On Thursday, June 6th, 2024, we will stop providing the longer cross-signed chain entirely. This is just over 90 days (the lifetime of one certificate) before the cross-sign expires, and we need to make sure subscribers have had at least one full issuance cycle to migrate off of the cross-signed chain.
On Monday, September 30th, 2024, the cross-signed certificate will expire. This should be a non-event for most people, as any client breakages should have occurred over the preceding six months.
If you are a site operator, you should keep an eye on your website usage statistics and active user-agent strings during Q2 and Q3 of 2024. If you see a sudden drop in visits from Android, it is likely because you have a significant population of users on Android 7.0 or earlier. We encourage you to provide the same advice to them as we provided above.
If you are an ACME client author, please make sure that your client correctly downloads and installs the certificate chain provided by our API during every certificate issuance, including renewals. Failure modes we have seen in the past include a) never downloading the chain at all and only serving the end-entity certificate; b) never downloading the chain and instead serving a hard-coded chain; and c) only downloading the chain at first issuance and not re-downloading during renewals. Please ensure that your client does not fall into any of these buckets.
We appreciate your understanding and support, both now and in the years to come as we provide safe and secure communication to everyone who uses the web. If you have any questions about this transition or any of the other work we do, please ask on our community forum.
Let's Encrypt is a free, automated, and open certificate authority brought to you by the nonprofit Internet Security Research Group (ISRG). Read all about our nonprofit work this year in our 2023 Annual Report.
Which brings me to the Pixel 8a. There is no Pixel 8a yet, though rumors suggest we will see the phone soon at Google I/O. If Google follows the same pattern as previous A-series phones, I expect some cool colors, reduced camera specs, and a cheaper price tag than the Pixel 8.
The Pixel 8a should be a bargain phone. It will probably pack the same Tensor G3 chipset as the Pixel 8 because Google puts the same chips in everything launched in the same model year. It should also get the same 8GB of RAM as the Pixel 8, just like the Pixel 7a had the same RAM as the Pixel 7.
Just this once, I want Google to under-promise and over-deliver. Promise three years of updates for the Pixel 8a. Give us every single update on time, at the same time as the Pixel 8 and Pixel 8 Pro. Make it happen. You know, just like Apple.
Phil Berne is a preeminent voice in consumer electronics reviews, having reviewed his first device (the Sony D-EJ01 Discman) more than 20 years ago for eTown.com. He has been writing about phones and mobile technology, since before the iPhone, for a variety of sites including PCMag, infoSync, PhoneScoop, and Slashgear. He holds an M.A. in Cultural Theory from Carnegie Mellon University.
Phil was the internal reviewer for Samsung Mobile, writing opinions and review predictions about top secret new devices months before launch. He left in 2017. He worked at an Apple Store near Boston, MA, at the height of iPod popularity. He has been a High School English teacher at Title I schools, and is a certified Lifeguard. His passion is smartphones and wearables, and he is sure that the next big thing will be phones we wear on our faces.
The app is crashing when I'm trying to open a file. It works below Android Nougat, but on Android Nougat it crashes. It only crashes when I try to open a file from the SD card, not from the system partition. Some permission problem?
If your targetSdkVersion >= 24, then we have to use FileProvider class to give access to the particular file or folder to make them accessible for other apps. We create our own class inheriting FileProvider in order to make sure our FileProvider doesn't conflict with FileProviders declared in imported dependencies as described here.
I encountered a problem that if I use a content:// URI to send something, some apps just can't understand it. And downgrading the target SDK version is not allowed. In this case my solution is useful.
As mentioned in the comment, StrictMode is diagnostic tool, and is not supposed to be used for this problem. When I posted this answer a year ago, many apps can only receive File uris. They just crash when I tried to send a FileProvider uri to them. This is fixed in most apps now, so we should go with the FileProvider solution.
Problem is that my app is not lame, but rather doesn't want to be crippled by using content:// intents which are not understood by many apps out there. For example, opening mp3 file with content:// scheme offers much fewer apps than when opening same over file:// scheme. I don't want to pay for Google's design faults by limiting my app's functionality.
Google wants developers to use content scheme, but the system is not prepared for this, for years apps were made to use Files not "content", files can be edited and saved back, while files served over content scheme can't be (can they?).
Seems that fromFile() uses A file pointer, which I suppose could be insecure when memory addresses are exposed to all apps. But A file path String never hurt anybody, so it works without throwing FileUriExposedException.
Tested on API levels 9 to 29! Successfully opens the text file for editing in another app. Does not require FileProvider, nor the Android Support Library at all. And this will not work right on API level 30(Android 11) or newer, as getExternalStorageDirectory() has been deprecated.
@palash k answer is correct and worked for internal storage files, but in my case I want to open files from external storage also, my app crashed when open file from external storage like sdcard and usb, but I manage to solve the issue by modifying provider_paths.xml from the accepted answer
The MediaStore is primarily aimed at video, audio and image MIME types, however beginning with Android 3.0 (API level 11) it can also store non-media types (see MediaStore.Files for more info). Files can be inserted into the MediaStore using scanFile() after which a content:// style Uri suitable for sharing is passed to the provided onScanCompleted() callback. Note that once added to the system MediaStore the content is accessible to any app on the device.
The bottom line is you can't share anything from the app's scoped storage. Also in Android 12, the intent chooser bottom dialog shows the preview of the image you are sharing which is super cool by the way, but it can't load the preview from the scoped storage URI.
Note: The path xml/provider_paths.xml (.axml) couldn't be resolved, even after making the xml folder under Resources (maybe it can be put in an existing location like Values, didn't try), so I resorted to this which works for now. Testing showed that it only needs to be called once per application run (which makes sense being that it changes the operational state of the host VM).
@cliff-g: I'm sorry to hear of your disappointment. The Galaxy Tab S2 launched in 2015 on Android 5.0.1, and can be updated to Android 7, but there are no plans for further Android versions to made available for this model. I understand that this isn't ideal, however typically our phones and tablets will receive software updates for around 2 years from the release date.
Agreed, what gooid is it if it is 2-3 years old, still has good battery life and still would work fine if the OS could be updated for 4-5 years? Basically samsung is saying that you need to spend $1000+ on their device every 2 -3 years if you want it to work with today's apps. Remember to choose the more costly approach. You should buy a newly released device, not last years model, when it first comes out because the clock is already ticking on the OS. I do like my tab but really? Only two years? How about charging me $50 a year for the next 5 years to keep it current? I'd pay that.
After March Android 14 update , my phone has stopped receiving calls or SMS when it is idle for some time. After restart or toggling Airplane mode on/off ( sometimes), everything is back to normal. Phone is at the same spot. Wife's iPhone has no issues in the same location.
Issues with incoming calls and texts can be caused by different factors. However, we are aware that some Pixel users reported issues with their incoming calls and texts, only after installing the March Android software update.
I'm here with the April update and I'm still having issues with texts arriving hours later and calls being sent straight to voicemail. I will try a factory reset to see if it helps, but I'm not expecting it to work.
b37509886e