I have a Pixel 3XL on android 10 and a Pixel 3a on android 11. I had previously installed magisk on the Pixel 3a when android 11 was in beta. Recently I found that it had lost root, presumably because android 11 is out of beta and the phone had upgraded to the latest android 11 and was not using the magisk-patched boot image anymore. So, I patched the corresponding boot image for the latest android 11 factory image for pixel 3a, and fastboot flashed it, and it worked.
Unfortunately, I had mixed up my two phones in the fastboot flash step at first, and so then I ended up with the Pixel 3a with android 11 rooted again, but also with the Pixel 3XL stuck on boot, I guess because it had a wrong boot image (for pixel 3a actually) flashed into it. I tried to fix the Pixel 3XL by getting the latest android 10 factory image for it and patching the boot image with magisk. However, after fastboot flash of that patched boot image, it only worked partially. Namely, it could boot, adb shell works, etc., but it no longer responds to touch, so can't be used except for adb shell.
I'm guessing the problem is that I didn't know what was the factory image actually installed on my Pixel 3L, so I just guessed it was the latest, but the boot image from the latest might have some incompatibility with the actual factory image in the phone. I would like to find out what is the actual factory image installed on the Pixel 3L, so I can try to patch the matching boot image.
Hence, my question, how can I know what is the exact version of the android 10 factory image installed on my Pixel 3L? Googling doesn't seem to help, as most pages talk about how to install factory images, not how to find out what is the version installed. In answering my question, please note that I can't interact with the phone now through touch, so cannot check anything under "Settings" with the touch GUI, but can only see the fastboot info (see screenshot below) as well as anything I can access with adb shell (for example, any file in the phone I can check to find out the factory image version installed on the phone?)
The first crucial observation was that there are something like 18 different different versions of the factory images for Pixel 3 XL for Android 10. However, there is an interesting difference in the naming convention for the first 5 of these factory images, compared to the rest. The first 5 begin with "QP1A" where the rest begin with "QQ1A". See snapshot below for what I mean ..
Originally, I had just tried with the most recent factory image, which is QQ3A.200805.001, dated August 2020. Now, the most recent QP.. image, QP1A.191105.003, dated Nov 2019, was emerging as a candidate to try.
The second crucial observation was, looking at the factory image for QQ3A.200805.001, in the same zip file inside it that contains the boot.img, there is also an android-info.txt file, highlighted in blue in the screenshot below. So I was like, "duh .. why don't I see what it says?"
By the way, I also checked another of the QP.. factory images (QP1A.191005.007, Oct 2019), and the bootloader and baseband versions also matched. Whereas even the earliest of the QQ.. factory images, (QQ1A.191205.008, Dec 2019), didn't match.
In response to industry need, Brown built databases that allowed his customers to retrieve their images. From there, the business evolved to storing the images for the customers. Now, Pixel Factory Data Center stores the image content for many companies, including most of the top national NASCAR teams.
This release fixes major weaknesses in Android's verified boot. Android has working protection of the firmware images, OS images and out-of-band updates to APEX components through verified boot and provides verification for every read of the data rather than actually only verifying at boot. Firmware and core OS images are fully read and verified before use. High level OS images and out-of-band APEX updates are verified dynamically when data is read via dm-verity. Unfortunately, Android doesn't have anywhere near complete/correct verification of non-APEX APK-based components including many privileged OS components implemented as apps and the apps bundled with the OS. GrapheneOS now provides an implementation of this verification to extend verified boot and hardware-based attestation to these components correctly. We previously enhanced the downgrade protection check for system updates to require a greater version rather than equal or greater due to most Android OS components not having their versionCode consistently increased when they're changed, and this is now integrated into our new verification. Fully verifying signatures of system app updates at boot isn't enough to fully extend the verified boot guarantees to them, so we're shipping signed fs-verity metadata for all our system app updates through our app repository and we're enforcing having valid fs-verity metadata for system app updates at install time and boot time. This provides continuous verification of the data provided by out-of-band package updates.
This release also supports out-of-band updates for Vanadium going forward due to replacing incompatible SELinux hardening with these far superior verified boot improvements along with fixing a major upstream Android 13 regression in the original-package feature causing out-of-band updates to system apps using this feature to be rolled back on reboot. Vanadium used original-package to rename the browser app from org.chromium.chrome to app.vanadium.browser so it still uses the org.chromium.chrome app id for compatibility on older installs (factory reset counts as a fresh install). Both app ids will be able to receive out-of-band updates due to our bug fix.
Installations made before this project was renamed to GrapheneOS and before the first official release of the Android Hardening project will be forced to factory reset as part of this upgrade, due to lack of backwards compatibility with the unaltered AOSP encryption format.
I have a Qupath Project that contains images of tissue slides that have been scanned at 40x magnification in brightfield mode and at 20x magnification in polarised light mode. I have created annotations in the 40x BF images to mark out different tissue sections and would like to transfer these annotations to the 20x Pol images. The file names have a common denominator followed by the imaging modality, eg K1234.vsi - 40x_BF_01 and K1234.vsi- 20x_Pol_01. There are about 90 slides in the project folder following the same naming scenario.
You cannot simply copy annotations between two images unless the two images are exactly the same. If they scale differently, and that is the only thing, then yes you can rescale them during transfer. However, that only works when the field of view or area is exactly the same, down to the pixel. If that is the case here, you will probably only need a simple affine transform to move the annotations between images. I do not have time to dig into the details here, but there are a few threads on aligning and transferring objects around between images.
One of them was something I worked on with @smcardle. The idea was slightly different, as we were transferring objects from one image to many images, and then back again. Your case might be something like that but on a smaller scale, and possibly simpler if your affine transform is a perfect downsample.
It will probably take a little bit of playing with to get the hang of it, but I strongly recommend adding the image alignment extension to your copy of QuPath, and figuring out if a simple affine that only handles downsampling will work for your project. If you also need alignment, then you might want to use the full scripts we shared in that thread.
Figuring out the naming scheme will be project specific, but in case it helps, I have a bit of information for getting started with scripting here.
There are many ways to export many different types of image information from QuPath. Here you can find ways to export masks, areas with indexed masks (individual cells), measurement maps, pixel classifier predictions, and more. Also a section on...
The only reason I do this is to be able to run iode on my own unsupported device so their are no guarantees that I will continue to do this going forward. But generally it would be safe to assume I will post new builds here following at least the iodeOS official realease cycle. Updates can be sideloaded from recovery without factory reset thus preserving data.
The usual statements apply. Sometimes things go wrong updating and you may have to factory reset. This could be for any number of reasons and happened to me just recently so have those backups in reserve.
When working with the PixelGrabber, don't forget to extract the RGBA info from the pixel array before calling getImageFromArray. There's an example of this in the handlepixelmethod in the PixelGrabber javadoc. Once you do that, make sure the image type in the BufferedImage constructor to BufferedImage.TYPE_INT_ARGB.
The Pixels have an aluminium chassis, with a glass panel on the rear, a USB-C connector, 3.5 mm headphone jack, and a 12.3 megapixel rear-facing camera. At launch, the devices featured certain exclusive software features, including the 7.1 "Nougat" update to the Android operating system, integration with the Google Assistant intelligent personal assistant, live technical support services, and unlimited full-resolution Google Photos backup for the life of the device.
If your device is stuck in a boot loop after flashing the Google Pixel 8 Factory Images, you can try performing a factory reset from recovery mode. This will erase all data on your device, so make sure you have a backup.
Que: Can I revert to the original firmware after flashing a custom one?
Ans: Yes, you can revert to the original firmware by re-flashing the official factory image provided by Google.
For tech enthusiasts and developers, these factory images serve a dual purpose. They not only offer a chance to modify and customize the brand-new Pixel 8 or Pixel 8 Pro but also provide a failsafe to revert any changes, restoring the device to its original state. Additionally, for those eager to get the latest updates, manually sideloading the OTA can be a swifter alternative than the conventional update method.
760c119bf3