I'd wish they would just skip to 35.
Public congratulations @simplepinoi177!



I'd wish they would just skip to 35.
I think I've seen 3 or so people who say their phone was "bricked" because of this. Not good...I'd wish they would just skip to 35.34.x has been bad enough, especially for the at least one user whose phone is unrecoverable.
Public congratulations @simplepinoi177!![]()
I'd wish they would just skip to 35.34.x has been bad enough, especially for the at least one user whose phone is unrecoverable.
I think I've seen the same people (me and @Lughnasadh definitely roam the same threads)...I think I've seen 3 or so people who say their phone was "bricked" because of this. Not good...
The issue that is linked is related to Windows 32bit, but it's another problem. No related to the issue discussed here regarding the bricked devices.
Thanks...I had assumed (but wrongly)...The issue that is linked is related to Windows 32bit, but it's another problem. No related to the issue discussed here regarding the bricked devices.
They already do. There're a few devs working on different parts of this repo. Here's the log:God....I really would've thought that would've been top priority considering all of us
When editing the flash-all line to remove -w what should it look like this after editing?The step to edit the .bat file IS NOT USELESS! I very much caution not to skip this step as this step is what directs the flash-all to NOT wipe your phone back to stock! Especially when doing this each time you flash an update -- probably each month...!
I believe @roirraW "edor" ehT directed to put the init_boot.img file to the platform-tools folder simply for the reason of merely keeping track of the file -- for when you transfer it to your phone for Magisk to patch. You actually can put it anywhere you wish, as long as you can keep track of it for when you transfer it to the phone.
Having the magisk patched init_boot.img file (magisk_patched_######.img) is best in the platform-tools folder so when running the fastboot command, it automatically knows where the file is as it's in the same folder vs. it somewhere else and you would need to specifically type out the whole filename with its folder details in the syntax...
yes, removal of any (although normally there is just 1 instance) instance of "-w" works best; just keep in mind spacing before and/or after...so the line looks goodWhen editing the flash-all line to remove -w what should it look like this after editing?
fastboot -w --skip-reboot update image-cheetah-2023032000.zip
fastboot --skip-reboot update image-cheetah-2023032000.zip ( is this correct)?
Thanks for the reply.yes, removal of any (although normally there is just 1 instance) instance of "-w" works best; just keep in mind spacing before and/or after...so the line looks good
Also I'm curious as to why you added "--skip-reboot"?
I've only ever experienced adding that command for when flashing to both slots (although I'm sure there are other reasons to, I just can't recall what they are or seeing them); as a reboot would clumsily boot into the OS after the flash-all and you'd have to go through some trouble to get back into the bootloader and switch slots to flash again...
Do you mean this is a Flash-All.bat for the Graphene OS?Thanks for the reply.
I didn't add the "--skip-boot" text. This is how it comes in the Flash-all text.
This is from the Graphene OS. After updating the ROM I'll be flashing the Magisk patched boot to re gain root.
-w
:fastboot update image-cheetah-tq2a.230305.008.c1.zip
This is a commit for "libsparse: Fix allocation failures on 32-bit systems."
Just click on bugs links in the head of commit...The issue that is linked is related to Windows 32bit, but it's another problem. No related to the issue discussed here regarding the bricked devices.
which resolves to:
libsparse: Fix allocation failures on 32-bit systems.
libsparse uses mapped files for length computation checks and writing
output data. The platform-tools package for Windows is 32-bit, and if
an embedded file in the stream is large enough, mapping will fail. In
theory, this failure mode could happen on 64-bit systems as well.
As a workaround, map files in chunks of 256MB instead. This is
implemented by adding a new "fd_chunk" callback to the sparse ops
struct.
Bug: 273933042
Bug: 268872725
Test: fastboot update on Windows
Change-Id: Ic40696b34a1d0951787c899db701fc2fa204eb18
Yes, but I don't see any connection between this commit and the bug regarding the flashall command.
I certainly won't find out first hand once the fix is released. I will wait for the positive reports!Yes, but I don't see any connection between this commit and the bug regarding the flashall command.
This is the error people are getting:Yes, but I don't see any connection between this commit and the bug regarding the flashall command.
Sending sparse 'super' 1/1 (4194303 KB) FAILED (Sparse file is too large or invalid)
fastboot: error: Command failed
People root graphene? I thought that was counterproductive for graphene theory? how's it work as compared to the stock Google ROM for p7p? I've considered it. Using xprivacy Lua has been the closest I've gotten to using privacy-centric apps and ROMs.Thanks for the reply.
I didn't add the "--skip-boot" text. This is how it comes in the Flash-all text.
This is from the Graphene OS. After updating the ROM I'll be flashing the Magisk patched boot to re gain root.
Let me explain the error in v34.0.0:This is the error people are getting:
Sending sparse 'super' 1/1 (4194303 KB) FAILED (Sparse file is too large or invalid) fastboot: error: Command failed
Seems like the mapping fails because the file is too big, so they will map files in chunks of 256MB instead.
fastboot flashall
is used by Google. The flashing process starts in bootloader mode to flash bootloader.img + radio.img and then the flashing routine behind fastboot flashall
has to decide whether to stay in bootloader mode or to switch into fastbootd mode. For Pixel devices fastboot should switch into fastbootd mode to flash the single dynamic partitions. But it won't and that's the error in v34.0.0.!Sending sparse 'super' 1/1 (4194303 KB)
FAILED (Sparse file is too large or invalid)
fastboot: error: Command failed
RetCode FastBootDriver::Download(const std::string& partition, struct sparse_file* s, uint32_t size,
size_t current, size_t total, bool use_crc, std::string* response,
std::vector<std::string>* info) {
prolog_(StringPrintf("Sending sparse '%s' %zu/%zu (%u KB)", partition.c_str(), current, total,
size / 1024));
auto result = Download(s, use_crc, response, info);
epilog_(result);
return result;
}
RetCode FastBootDriver::Download(sparse_file* s, bool use_crc, std::string* response,
std::vector<std::string>* info) {
error_ = "";
int64_t size = sparse_file_len(s, true, use_crc);
if (size <= 0 || size > MAX_DOWNLOAD_SIZE) {
error_ = "Sparse file is too large or invalid";
return BAD_ARG;
}
without having to go through most of the post and explanation and just having a cursory glance...I really would rather have waited the extraLet me explain the error in v34.0.0:
As we all know the partition /super contains a few dynamic partitions. These dynamic partitions only can be handled in userspace by fastbootd mode (which is an executable binary inside the recovery's ramdisk). To flash /super there are two existing methods:
1. In bootloader mode by flashing a super.img to /super.
2. In fastbootd mode by flashing the single dynamic partitions inside of /super.
The firmware of a Pixel has got no super.img inside it, but instead of this another zip archiv (imagesXXX.zip) with all dynamic partitions and a super_empty.img. The super_empty.img is only a partition table of /super with all start/end blocks of the dynamic partitions. These start/end blocks may change with every new firmware build and that's why they are called "dynamic".
For flashing the Pixel's firmware the commandfastboot flashall
is used by Google. The flashing process starts in bootloader mode to flash bootloader.img + radio.img and then the flashing routine behindfastboot flashall
has to decide whether to stay in bootloader mode or to switch into fastbootd mode. For Pixel devices fastboot should switch into fastbootd mode to flash the single dynamic partitions. But it won't and that's the error in v34.0.0.!
Instead of this fastboot remains in bootloader mode and tries flashing /super with a super.img. Let's have a look again at the error message that users get:
Code:Sending sparse 'super' 1/1 (4194303 KB) FAILED (Sparse file is too large or invalid) fastboot: error: Command failed
Due to the fact that there's no super.img (neither as a raw image nor as a sparse image) fastboot outputs that error message above. The reason for getting this error you'll find in the source (line 249):
C++:RetCode FastBootDriver::Download(const std::string& partition, struct sparse_file* s, uint32_t size, size_t current, size_t total, bool use_crc, std::string* response, std::vector<std::string>* info) { prolog_(StringPrintf("Sending sparse '%s' %zu/%zu (%u KB)", partition.c_str(), current, total, size / 1024)); auto result = Download(s, use_crc, response, info); epilog_(result); return result; } RetCode FastBootDriver::Download(sparse_file* s, bool use_crc, std::string* response, std::vector<std::string>* info) { error_ = ""; int64_t size = sparse_file_len(s, true, use_crc); if (size <= 0 || size > MAX_DOWNLOAD_SIZE) { error_ = "Sparse file is too large or invalid"; return BAD_ARG; }
In short: If sparse_file size is 0 Byte or less (= no sparse_file) than output error text "Sparse file is too large or invalid".
Why does this error occure since v34.0.0?
The developer David Anderson thought it was a good idea not to boot into fastbootd mode as much as really, really needed. He wanted to save time during the flashing process (round about 50 sec.). See fully detailed in the spoiler below.
fastboot: Avoid reboots to userspace when using flashall/update.
Reboots to fastbootd (userspace fastboot) take a long time, particularly
due to the orange AVB screen and the likelihood of devices having uart
enabled. For "flashall", there is rarely a need to actually go into
userspace, because all of super is getting thrown away. We can just
flash super in the bootloader.
In the past we didn't do this because computing super.img is expensive -
both in terms of time (due to reading dependent images) and in terms of
space (it's easily over 5GB).
But we don't actually need to fully compute super.img. We can build a
sparse_file containing the metadata/headers, with additional references
to each image file containing partition data. Liblp provides the API to
do that, and here, we simply need to translate the layout to libsparse.
On Pixel, this reduces flashall time by around 35-50 seconds, or around
20% of total time, depending on whether uart is in use.
There are some caveats, in which case we'll fall back to normal
fastbootd. This does not work on non-A/B devices, on retrofit dynamic
partition devices (Pixel 3), and in some other edge-casey scenarios. If
it fails, -v will add logging information about why.
Bue: 266982466
Test: fastboot flashall on Pixel 5+
Change-Id: Ie040da597d739faa7f834202184cec8f8e412076
(source: https://android.googlesource.com/platform/system/core/+/667b1efadd8ce8d8cf19d0684a871125cce203d3)
But something went wrong during the execution of his code. As a result of this the flashing process ends with an error and without flashing the contents of /super.
Following the log of the repo /android/platform/system/core/refs/heads/master/./fastboot several changes were made till today. But we'll have to wait for the next update, which will (hopefully) be officially released soon.
I hope it is somewhat understandable.
Yes rooting and having an unlocked bootloader is strongly discouraged by the Graphene developers, but I have a call recording app that only works with root.People root graphene? I thought that was counterproductive for graphene theory? how's it work as compared to the stock Google ROM for p7p? I've considered it. Using xprivacy Lua has been the closest I've gotten to using privacy-centric apps and ROMs.
I know this wasn't meant for me, but I add that to the flash-all myself too. I then add an extra line
Yes. Replaces it entirely.
Is this an alternative to USNF? This one?Play Integrity Fix replaces it. Also, you may need to wipe Play Store cache/storage afterwards.
13.0.0 (TQ3A.230901.001, Sep 2023) | Flash | Link | 6b946f4db4b28d04ff436924f9e9dbf18f989df22c2298bbf7889f1a7db9d515 |
13.0.0 (TQ3A.230901.001.C2, Sep 2023, Verizon, Verizon MVNOs) | Flash | Link | 5f2b98dc82b80b7f2753ecb2ed02d08689c3ccf53ceae6542b183da8f19e1e36 |
Betas for Android OS versions are released before the stable versions, but these are separate from the QPR betas, which they started with the Pixel 6 series being released. The A14 QPR1 betas (there should be 3 of them, at least, one in each month) are to test the stable release of A14 QPR1, which will be released in December. Then they will start the A14 QPR2 betas, which will test the A14 QPR2 stable release in March. Finally, there will be the A14 QPR3 betas which will test the stable release of A14 QPR3 in June. Of course, all of this assumes they will continue with what they have been doing.I'm not really understanding your complaint. Once stable Android 14 is out, won't the next beta be Android 15 QPR1?
I also don't understand the article either. Aren't Betas released before the stable of that android version?
For what it's worth...September Security Bulletin is up, but nothing else, yet.
Android Security Bulletin—September 2023 | Android Open Source Project
source.android.com
Anyone that updated their platform tools and needs to downgrade can use these links.
Windows
Mac
Linux
init_boot.img
, NOT boot.img AND we flash the patched init_boot to the init_boot partition - do not flash it to the boot partition.Unlocking or locking the bootloader will wipe the device every single time, so be sure to have your data backed up before doing so, or better yet, just unlock it as soon as you get the device.
Keep in mind that unlocking the bootloader or rooting might affect your phone's capability to use banking apps such as Google Pay, your local bank's app, or even the ability to install some apps like NetFlix. See Post #2 - Unlocking Bootloader / Rooting / Updating | SafetyNet | ADB/Fastboot & Windows USB Drivers.
If you're going to re-lock the bootloader, make sure the ROM you have on your phone is completely stock (by flashing the latest official firmware) BEFORE re-locking it.
There are no permanent negative consequences if you unlock or re-lock the bootloader other than it will wipe your phone, and while your bootloader is unlocked you get a brief screen when you boot the phone telling you (and anyone who sees your phone at the time) that it's unlocked. You will also continue to receive updates (if you've merely unlocked the bootloader, you can take updates as normal) unlike Samsung, Sony, et cetera, which have permanent major consequences with reduced functionality even if you un-root and re-lock your bootloader. If you're actually rooted (not just bootloader unlocked), you'll have to perform extra steps to manually update each month, and to keep root/re-root.
TD1A.220804.031
.
- @AndyYan
- @anirudhgupta109
- @Az Biker
- @bosox284
- @capntrips
- @Chainfire
- @DespairFactor
- @direwolf1
- @Displax
- @edcsxz
- @Eleo
- @flar2
- @foobar66
- @Freak07
- @j4velin
- @Jawomo
- @Jon8RFC
- @jorrik98
- @kdrag0n
- @kevin@TeslaCoil
- @LLStarks
- @Lughnasadh
- @mariusnoor
- @Namelesswonder
- @PurppleMonkey
- @Quinny899
- @rovo89
- @siavash79
- @Sib64
- @simplepinoi177
- @StrangerWeather
- @tbalden
- @topjohnwu
- @TotallyAnxious
- @Tulsadiver
- @Typhus_
- @V0latyle
- @VR25
- @xgerryx
- @xike456
- @xstefen
- And many others from all of the previous years who I thanked in my previous OPs.
Will never be able to have their bootloader unlocked. It's like winning the lottery, and just as rare and relatively random. There is nothing that anyone on XDA can do to help you unlock your Verizon variant.
Can be unlocked once you pay the phone off, then you contact the carrier and arrange to Carrier unlock the phone. Once the phone is Carrier unlocked, then you can unlock the bootloader with the usual caveats (will wipe the device and there's no way around it).
Can be bootloader unlocked at any time. I'd try it first before putting a SIM card in the phone. If OEM unlocking is grayed out, try connecting to Wi-Fi, and reboot if necessary. If it's still grayed out, try with your SIM card, and reboot again. Historically on Pixels, most of the time you can toggle OEM unlocking immediately, but occasionally some users have found it took a little while after being either connected to Wi-Fi or having your SIM card installed in it, and then eventually (hours? day? days?) you can toggle OEM unlocking.
No idea. Feel free to ask in the thread and hopefully, someone with specific knowledge will answer.
How to update each month (and also how to root) [requires an unlocked bootloader for updating via this factory image method]The one-time first steps are:
- Android Settings
- About phone
- Click on
Build number
repeatedly, about seven times- Go back to the main Android Settings
- System
- Developer options
- Toggle
OEM unlocking
on. See @Namelesswonder's tip below (this won't help with variants that are supposed to be bootloader locked):
Also a little tip for anyone trying to enable OEM unlocking on a device and it is grayed out, you can force the phone to check for eligibility by connecting to the internet in whatever way, going to the dialer, and dialing*#*#2432546#*#*
(CHECKIN).
You should receive a notification from Google Play services with "checkin succeeded" and OEM unlocking should be available immediately if the device is eligible.
Google account not needed, SIM not needed, no other setup required. Works on completely-skipped-setup-wizard. Just need to make sure to connect to the internet and select the connection as metered to avoid any updates.- Toggle
USB debugging
on.- [Optional] I highly suggest you also disable
Automatic system updates
. Note that in a situation such as the Android 12 serious bootloader security issue, this setting will not keep Google from forcing an update to come through anyway.- How to actually root follows the same steps below as how to update each month.
- Download the latest ADB/Fastboot (SDK Platform Tools) and Windows USB Drivers.
- Unzip the Platform Tools and Drivers.
NOTE: If you have USB drivers for other Android devices installed, like Samsung, they can alternately sometimes work and not work with Google Pixels. I recommend uninstalling those drivers, or at least updating that driver to Google's driver as instructed below (the Device Manager entry may be different with other OEMs).
- The Windows USB Drivers may have to be installed twice:
- The first time while your phone is running and unlocked as normal.
- In Windows, right-click on the Start Button and choose
Device Manager
.- Plug your phone into the computer and look for the new hardware entry in Device Manager. Near the top of Device Manager should be
Android Device
. Click the drop-down arrow to the left of it.- Below
Android Device
, it should now showAndroid Composite ADB Interface
- Right-click the
Android Composite ADB Interface
and chooseUpdate driver
- Choose
Browse my computer for drivers
- Click
Browse
and navigate to where you unzipped the Windows USB drivers to.- Follow the prompts to install the driver.
- Keep Device Manager itself open - you'll need it again in a minute, but you can close any other Device Manager windows after you have installed the driver.
- Open a Command Prompt and navigate to the
platform-tools
folder.- Run command:
Code:adb devices
- On your Android device, you'll get an ADB prompt. Check the box to always give ADB permission and click
OK
.- Confirm that the command results in a list of Android devices. When doing these producedures, you should only have the one device you want to work on connected, to keep things simple.
- The second time to install the driver is while the phone is in Bootloader (fastboot mode), notFastbootD (fastbootd) mode. I know it's confusing.
- Run command:
Code:adb reboot bootloader
- Repeat the instructions above starting with "Right-click the Android Composite ADB Interface".
- This second time installing the drivers while in Bootloader (fastboot mode), it will show up as "Android Bootloader Interface". Thanks @simplepinoi177 for the suggestion to add this detail.
- Run command:
Code:fastboot flashing unlock
- On the phone, press either the up or down volume button once until you see
Unlock the bootloader |>|
beside the power button.- Press the power button. The phone will go black for a second and then show near the bottom
Device state: unlocked
.- After these first-time steps to unlock the bootloader, if you want to root, continue below at the step:
- Download the latest Pixel 7 Pro Factory Image (at the bottom of the "Cheetah" section).
platform-tools
folder, i.e. so that flash-all.bat and all other files are in the same folder as ADB and Fastboot from the platform-tools.flash-all.bat
(on Windows) or flash-all.sh
(on Linux) and remove the -w
from the fastboot update image-cheetah-etcetera.zip
line. This will keep the script from wiping your phone when you run it.init_boot.img
file from the image-cheetah-etcetera.zip
to the same platform-tools
folder.init_boot.img
. NOTE: It is always possible that an Android Update (Monthly, QPR [Quarterly Platform Release], new major Android versions, and Beta versions) might need a new version of Magisk Stable, Beta, or Canary from GitHub to work correctly. XDA forum for Magisk is here.magisk_patched-25200_1a2B3c.img
)back over to the computer.adb reboot bootloader
flash-all.bat (on Windows)
or
flash-all.sh (on Linux)
(Note: At least two Apple Macintosh users had trouble using the flash-all.sh - at least one of those users, everything went smooth once they used a Windows PC for this part of the process)
adb reboot bootloader
fastboot --set-active=other
flash-all.bat
platform-tools
folder.adb reboot bootloader
fastboot flash init_boot magisk_patched-25200_1a2B3c.img
fastboot reboot
For the future, you don't need to go into safe mode unless that's your preference. I forgot what all it resets, but it's many settings and it's bothersome. I'd rather just reinstall my modules and not have to figure out those Android settings/changes which I come across days or weeks later when I infrequently do something. Have your phone reboot and run this:
I like to just do this first:Code:adb wait-for-device shell magisk --remove-modules
So the server is running, then I have the long one pasted and ready to go once the phone turns off.Code:adb devices
- Launch the Magisk app.
- Go to Magisk's Settings (Gear in top right).
- Click
Hide the Magisk app
.- When you hide it, you'll have the optional opportunity to change the Magisk app's name to whatever you wish. It doesn't have to be complex to fool apps that check for Magisk.
- Important: When you have the Magisk app hidden or renamed, you can accidentally install a new copy of Magisk. This situation won't work at all - neither copy of Magisk will work with two installed. This is one reason why I don't completely hide Magisk, so I can tell it's installed because I have it renamed as something easily recognizable.
- Back to the Magisk app's Settings...
- Click
Systemless hosts
. This adds a Magisk Module to Magisk, which you can verify in a later step.- Toggle
Zygisk
on.- Toggle
Enforce DenyList
on.- Click
Configure DenyList
.
- Add every app that you want to explicitly deny root and the existence of root.
- You can click the 3-dot menu and choose the options to display system and/or OS apps, if necessary.
- Note that for many apps, it is not enough to click the single checkmark to the right of the app name in this list. For many but not all apps, you should click on the app name and you'll see it expand to two or more entries, each with its own toggles. In this expanded state, you can now check the single top checkbox beside the main app name and it'll toggle all individual sub-entries.
- Some apps add new entries to this list from time to time, so if you find that an app used to work for you when rooted and doesn't now, check this list again and look for the entries that aren't fully checked. There will be an incomplete horizontal line above the apps that don't have all of their sub-entries toggled.
- You can use the Search button at the top of this list to find specific apps quickly.
- The most common apps you should definitely fully check in this list are:
IMPORTANT - There are some things, such as
Google Play Services
which it's fine to add to the DenyList, but it's perfectly normal when used in combination with the Universal SafetyNet Fix (USNF) that it is back to being unchecked the next time you visit the DenyList. Since USNF takes care of Google Play Services, you don't even have to add it to the DenyList in the first place.- Google Play Store
- Google Services Framework
- Google Play Protect Service
- Wallet
- GPay
- Any banking apps.
- Any streaming apps that use DRM.
- Any 2FA apps, especially those for work.
- Some of those Google apps might not need denying, but it doesn't hurt to deny them.
- Any time you toggle more entries in this list, it may be necessary to reboot the phone for it to take effect.
- From the main screen in the Magisk app, go to
Modules
at the bottom.- Confirm that the
Systemless hosts
Magisk Module is added to this list, and enabled.- Install the appropriate Magisk Module: Universal SafetyNet Fix referenced above these numbered instructions.
- Reboot.
- Install from the Play Store:
- YASNAC - SafetyNet Checker
- Launch it.
- Click
Run SafetyNet Attestation
.- It should say:
- Basic integrity: Pass
- CTS profile match: Pass
- Evaluation type: BASIC
- Play Integrity API Checker
- Launch it.
- Click
Check
.- It should have the following with a green checkmark:
- MEETS_DEVICE_INTEGRITY
- MEETS_BASIC_INTEGRITY
- It's normal for
MEETS_STRONG_INTEGRITY
to have a red X.- You don't have to keep these installed, although I keep them handy.
- Sometimes, clearing app cache and/or data for apps like the Google Play Store, GPay, Wallet and others (and then rebooting) after these steps may help pass SafetyNet as well.
- See @V0latyle's explanation (and further linked post) for why we can't achieve
STRONG_INTEGRITY
with an unlocked bootloader.- See @V0latyle's [DISCUSSION] Play Integrity API regarding why SafetyNet, per se, is actually defunct and replaced with Play Integrity - and New Official Universal SafetyNet Fix released by @kdrag0n v2.4.0 referenced in the steps above takes care of the latter.
- Download the custom kernel of choice on the phone.
Be sure to read the particular installation instructions in the kernel threads' OP - any instructions in their OPs takes priority over anything I say here, which is generalized.
For now even the AK3 Zip versions of custom kernels requires Verity and Verification to be disabled.
How to determine if you already have Verity and Verification disabled - see section in Post #3 - Other, most important resources- The two schools of thought on disabling Verity and Verification:
- My post here. If you want to discuss it any, please do so in my thread, or at least not in that custom kernel thread, so as to keep the thread on-topic.
- Extract the
vbmeta.img
file from the inner Zip of the factory image zip and put it in the same folder with the latest extracted platform-tools.- Hook the phone up to your computer and run the following commands:
[wait for the phone to reboot to bootloader (fastboot mode)]Code:adb reboot bootloader
Code:fastboot flash vbmeta vbmeta.img --disable-verity fastboot reboot
- Unlock the phone once it's booted up.
- Make sure the Kernel Flasher app is up to date. XDA thread for the Kernel Flasher app is here.
- Launch Kernel Flasher.
- Select the slot that's mounted.
- Choose Flash AK3 Zip.
- Select the custom kernel zip just downloaded.
- When it's done flashing, head to Android Settings and perform a Factory Reset, as is currently needed for Despair kernel.
- If you failed to disable Verity and Verification ahead of time, if you have to, just force the phone off using these instructions: Turn your Pixel phone on & off, then press the Volume Down and Power buttons for a couple of seconds to get into the bootloader (fastboot mode). You'll still have to factory reset after disabling Verity in combination with this kernel, for now.
- Whenever you use the flash-all to flash your phone, as long as you want to continue to disable Verity and Verification, you'll have to further modify the flash-all script as such:
Code:fastboot update image-cheetah-buildnumber.zip --disable-verity --disable-verification
Anyone that updated their platform tools and needs to downgrade can use these links.
Windows
Mac
Linux
Release Notes https://developer.android.com/studio/releases/platform-tools:
33.0.3 (Aug 2022)
- adb
- Don't retry adb root if first attempt failed.
- Fix track-devices duplicate entry.
- Add receive windowing (increase throughput on high-latency connections).
- More specific error messages in the "more than one device" failure cases.
- Reject unexpected reverse forward requests.
- Fix install-multi-package on Windows.
- fastboot
- Remove e2fsdroid as part of SDK platform-tools.
- Print OemCmdHandler return message on success.
You'll need this if you're going to unlock the bootloader on your Pixel 7 Pro: SDK Platform Tools (download links for Windows, Mac, and Linux). Note that you can find links to download the tools elsewhere, but I wouldn't trust them - you never know if they've been modified. Even if the person providing the link didn't do anything intentionally, the tools could be modified without them being aware. Why take a chance of putting your phone security further at risk?
You can alternately use the tools from the SDK Manager, but most of us will want to stick to the basic tools-only without the complications of the full development manager.
For Windows, get Google's drivers here Get the Google USB Driver (ADB will likely work while the phone is fully booted, but if you're like me, you'll need these drivers for after youadb reboot-bootloader
, to be able to use ADB and Fastboot.
adb reboot bootloader
fastboot flash init_boot init_boot.img
I would guess that this should be the appropriate URL for official TWRP custom recovery for the Pixel 7 Pro, but who knows when/if that will actually be made available, and it may become available unofficially in these forum sections before being made official. I'll adjust this URL as needed. https://twrp.me/google/googlepixel7pro.html.
It's also handy to have to the full official firmware available, whether it's to recover from accidents or for actual development. Note the official link to the general Factory Images for Nexus and Pixel Devices page. The following link goes directly to the Pixel 7 Pro (Cheetah) section: Pixel 7 Pro Factory Images. I prefer to actually bookmark a link to the device listed immediately below the device I want the firmware for, because Google dumbly (in my opinion) puts the latest firmware at the bottom of the list for each particular device, and that ends up making you scroll a lot after a year or two of monthly updates.
Worked for me yesterday when I accidentally tried some old version of a Magisk Module. You have to reinstall your Magisk Modules, but if you're using a third-party widget, it won't disable them like Safe mode does.For the future, you don't need to go into safe mode unless that's your preference. I forgot what all it resets, but it's many settings and it's bothersome. I'd rather just reinstall my modules and not have to figure out those Android settings/changes which I come across days or weeks later when I infrequently do something. Have your phone reboot and run this:
I like to just do this first:Code:adb wait-for-device shell magisk --remove-modules
So the server is running, then I have the long one pasted and ready to go once the phone turns off.Code:adb devices
In the future try this
adb wait-for-device shell su -c "touch /data/adb/modules/zygisk_lsposed/disable"
adb reboot
OEM unlocking in developer options needs to be toggled on. I don't "believe" you have to actually do the "fastboot flashing unlock" command.
Alternative two more manual ways of checking:I keep seeing this asked, so I added a Magisk module for it to the linked Github release. With the module installed, you can just run:
Code:su avbctl get-verity avbctl get-verification
I spent way more time debugging that I downloaded Github's HTML of theupdate-binary
script rather than the raw file than I care to admit.Off to bed.
Since you´re probably already rooted anyway if you plan to flash this kernel, simply reboot your device. After you enter the device immediately take a kernel log with for example EXKM or any other app that allows to do that, terminal, etc.
Look for that line
[ 1.273480] init: [libfs_avb]AVB HASHTREE disabled on: /vendor_dlkm
If you see this line, verity/verification should be disabled.
I've seen several cases where having the ability to check would have been handy, so I pushed anavbctl
binary built against the latest aosp sources here.
The simplest way to use it would be the following:
Code:adb push avbctl /data/local/tmp adb shell su cd /data/local/tmp chmod +x avbctl ./avbctl get-verity ./avbctl get-verification
Indeed. My MOD is a temporary solution until kdrag0n release accurate fix.I would expect that once 2.4.0 is released publicly, we should probably go back to using the official release, but conversely, as long as something works for you, there's also not necessarily a need to fix what isn't broken. Personally, I plan on switching once it's made completely public.
Note that @Displax wasn't trying to replace the official version - they always kept it the same version as the most recent official along with "Mod", "Mod 2", or "Mod 2.1", so that suggests to me they were merely making temporary workarounds until/if the official was updated.