How To Guide April 17, 2024 AP1A.240405.002.B1 Global - Unlock bootloader / Root Pixel 7 Pro [Cheetah] / SafetyNet

Search This thread

davidgro

Senior Member
Jul 9, 2011
63
20
Seattle
I know this wasn't meant for me, but I add [--skip-reboot] to the flash-all myself too. I then add an extra line

fastboot flash init_boot **magisk patched init_boot.img**

Followed with

fastboot reboot

My method is just replace the init_boot.img inside the image-cheetah zip (Using 7-Zip, using Explorer causes it to fail to flash for some reason), then it flashes already-rooted in one pass.

(Edited to specify 7-Zip)
 
Last edited:

Lughnasadh

Senior Member
Mar 23, 2015
6,174
7,673
Google Nexus 5
Huawei Nexus 6P
1. Does pixel flasher keep verity etc diabled or do i need to tick disable verity and disable verification with advanced mode enabled?
Tick it, although I believe it may be able to save that choice for you. Double check to make sure.
2. If i use flash all bat or pixel flasher with verity/verfication option enabled to UPDATE the device will it wipe data?
No, but if you decide to disable verity & verification again you will have to wipe.
 

badabing2003

Recognized Contributor
Sep 17, 2012
4,931
9,138
Quick questions:
I like to keep the abillity to use custom kernels if i update and i know i need to edit the flash all bat like this:

fastboot update image-cheetah-buildnumber.zip --disable-verity --disable-verification

1. Does pixel flasher keep verity etc diabled or do i need to tick disable verity and disable verification with advanced mode enabled?
2. If i use flash all bat or pixel flasher with verity/verfication option enabled to UPDATE the device will it wipe data?

I'll answer it here now, but in the future, please post your question in PF thread to keep this thread relevant to the topic it covers.

These settings in PF are remembered, so unless you change them, next time you load PF, it will select what you last had.
1680288791472.png


Keep Data will keep Data (basically remove -w)
Disable Verity and Disable Verification are used for custom Kernels / ROMs

These settings only apply when you flash.
 

xtcislove

Senior Member
Jan 17, 2010
1,616
432
Gummersbach
Nothing Phone 2
OnePlus 12
Tick it, although I believe it may be able to save that choice for you. Double check to make sure.

No, but if you decide to disable verity & verification again you will have to wipe.
I'll answer it here now, but in the future, please post your question in PF thread to keep this thread relevant to the topic it covers.

These settings in PF are remembered, so unless you change them, next time you load PF, it will select what you last had.
View attachment 5877475

Keep Data will keep Data (basically remove -w)
Disable Verity and Disable Verification are used for custom Kernels / ROMs

These settings only apply when you flash.
Thanks. My question was a bit off maybe.

I like to know that if i update next month for example to a new version. Do i need to disable verity and verification AGAIN and will this wipe data AGAIN?

For me this question is not really pixel flasher specific thats why i asked here.
 
  • Like
Reactions: roirraW "edor" ehT

badabing2003

Recognized Contributor
Sep 17, 2012
4,931
9,138
Thanks. My question was a bit off maybe.

I like to know that if i update next month for example to a new version. Do i need to disable verity and verification AGAIN and will this wipe data AGAIN?

For me this question is not really pixel flasher specific thats why i asked here.
First time you disable them, it will wipe.
Subsequent flashing, if you don't want to wipe, then you have to make sure they remain disabled.

See it as a state, you change the state, it wipes.
 

xtcislove

Senior Member
Jan 17, 2010
1,616
432
Gummersbach
Nothing Phone 2
OnePlus 12
First time you disable them, it will wipe.
Subsequent flashing, if you don't want to wipe, then you have to make sure they remain disabled.

See it as a state, you change the state, it wipes.
Okay i think i got it thank you.

If i flash without:
fastboot update image-cheetah-buildnumber.zip --disable-verity --disable-verification

It would probably reenable verity/verification and result in a wipe.

But since i add --disable-verity --disable-verification the state will not change and there is no wipe.

English is not my native language so i needed clarification.
 

Lughnasadh

Senior Member
Mar 23, 2015
6,174
7,673
Google Nexus 5
Huawei Nexus 6P
Okay i think i got it thank you.

If i flash without:
fastboot update image-cheetah-buildnumber.zip --disable-verity --disable-verification

It would probably reenable verity/verification and result in a wipe.
If you flash without disabling the verity and verification flags it won't cause a wipe in and of itself. What causes a wipe is when you go from an enabled state to a disabled state.
But since i add --disable-verity --disable-verification the state will not change and there is no wipe.

English is not my native language so i needed clarification.
Correct, sort of. See first answer.
 

roirraW "edor" ehT

Senior Moderator
Staff member
I've been getting this with my notifications on my lock screen. As far as I recall, starting yesterday. The notifications always start out minimized like this for at least several seconds, sometimes longer (the Google Voice notification):
9cZZoYwpZu7rEF79cEBQHvkUDBP5O7_4NQY9l1cxqHLl3tABcH1w2_sL5wszQYO3iPdap1P0Bo5uFf1tFRlRr3jdktm9PeFp62OgmUq-SRoMZb5d84zMVKgaGwyNWtJ1gcueTSah5mjqThXcs5elV_2NetZKnzlsk24TnOkHXv74dzOpLJIf4jFDf3Txie_p8gB2ffulxRahasn2PBJRnS0ovOMLV32xIoeOKcexDYeJAoqI7qw5mxMlWdvU3jN2p2lm0z10sYaKCacQnwj2A1w68BJVnh6r0is-M3KuUuYhhME46kuUcoF4VrAY5YWiCGKXZ5wqSjXc7bvDYciGZHBaJGEp344OQ3UJvk0J4FDNtGcqH3yTGiRb7r33NKbEb6TCxES_ohZitXzzwdmMt2pNChpAewXjDr6OtA9qSf9QI1h4FzBSO5qiayNnAobVuUE-5rLgO2KyHn0OLkJY-lFPpxa6Qu0ReZQANHzrTq1N3TiADAWm3X-bl9C7IM41TJ_8I5PtRbMGGS9MOC8wEXe_b2Bh8G5uxNSmI8wvV1W2ENMTcbIWEuoqIc75clycuXYD9p0eoOOOPp6wmYO-SS71v_2iXIOk9OrICSql66xk91SA3w-2jJIHdAu2Ed7OHvEYNy7L3hLjDCUuTv2tsVfUJabceIPDrK77LONjXmmPnvM-UF7S06PbzbtIRtEzKdagVPlNjr_wjvcg9cUt1kvs2sVFMN33CMW7VYGnRrfEvaqPaHWmRvnp9kQsuY0cmKIXEoXkIVLE1OIfgFm_tHxC6NRM-vuBoCbJ21dZWNt-lH1aWB5m6TspHQSwMmY8kFKo-EuwEJU69J-godxy36FKPKvV_7IoUCDrRlr-7xZnaL75jEe5eJu7Rzhrjl55QUgIrvNO2lCkCZpprtGF4ucLbIwy-l8iG_em7Rbugh4MzSEsfQ=w631-h1247-s-no


Then it'll on its own switch to the expanded format I'm used to on the lockscreen (I obscured personal information):
ipt9_uZ7fRNcJntpLbY8ahykBAFVhMnfk3lYbR3VTlAvgrBGjKdXdNb6pcDFe1fqEIeRExYV6BcElNSDEncuasTKvlU9O3Ffy2Qym8YQDCSN4n9MQ_usXt1atJaLjw7yapl-cwEPa75cisRdY4DLfaM3htTP86fG0BGxDuJwQsLcF8N6QUU9-1r4DTqgYKrzS6pW19xSSaBrbxuga6wLk7XC30aEs2D3joL9hzyKMU5kuXRC0lsfeZzBfHgCtbUgxT1zGA5v4WDLAzfft9QXtaNnaXiA4Wp-pgXUAimJdBSyzoAl8T0pP1IvsiqW5Xhi4m2xWcLGRO9sQA-kYEOxyOf6nq7kI2BWfaY35kJio2Ht-mh25OIDNbw48pCVA6JnnvdvGIJChqNGF4yaX_KCQSWC4fVxhjgBfRg7j4bnH7qVdqBUlu0-XpBVPZeJ6y9dY8OTnHC835jQvLQO5bAyZrBEBZzhShyXv-mmQJwfZ6yg6TUI-zMe19WYT4vaycuz_IAumu94YWUPr291kWl_GZfMHLsNeg39Phj_JA1SGxTCZBetgopuwm5yUmWaleH8-HqJAirt9-NAHNHbqLXqeA8KKSmBPFJSJTpORAyOOXGNWT5ZUiuZqIRWLuGbJ0cw4YHGq6ZqNMOTEAsCcL0SdKTnKzF-Oobm3JjS_wJOxzY90Vyi8Pxf36w3_v5QO1sQ0fUxJY3DIMVI2T8r391pQBlZDUfrSPeMTkH0yIA5QQ-0hsShp5z2ZuaKZmHS8wJlF17n0fl1ib_pZuoW3Y4C4DIPcQ5roe_NZAU7vNHQCJHCwEq5OY7KFlX3Si67IyPSoTJdBXcy1hAmePKe2zeSrCm_8olOwZ7VEYCi2kIyKoeoVsF99g9yMAqAVO4IrFpRSG7XVAXUdyv15pdCtEBe-JPTDSipUqh0tacUWaVlr3Dy3YoDgQ=w627-h1247-s-no
 

simplepinoi177

Forum Moderator
Staff member
I've been getting this with my notifications on my lock screen. As far as I recall, starting yesterday. The notifications always start out minimized like this for at least several seconds, sometimes longer (the Google Voice notification):
9cZZoYwpZu7rEF79cEBQHvkUDBP5O7_4NQY9l1cxqHLl3tABcH1w2_sL5wszQYO3iPdap1P0Bo5uFf1tFRlRr3jdktm9PeFp62OgmUq-SRoMZb5d84zMVKgaGwyNWtJ1gcueTSah5mjqThXcs5elV_2NetZKnzlsk24TnOkHXv74dzOpLJIf4jFDf3Txie_p8gB2ffulxRahasn2PBJRnS0ovOMLV32xIoeOKcexDYeJAoqI7qw5mxMlWdvU3jN2p2lm0z10sYaKCacQnwj2A1w68BJVnh6r0is-M3KuUuYhhME46kuUcoF4VrAY5YWiCGKXZ5wqSjXc7bvDYciGZHBaJGEp344OQ3UJvk0J4FDNtGcqH3yTGiRb7r33NKbEb6TCxES_ohZitXzzwdmMt2pNChpAewXjDr6OtA9qSf9QI1h4FzBSO5qiayNnAobVuUE-5rLgO2KyHn0OLkJY-lFPpxa6Qu0ReZQANHzrTq1N3TiADAWm3X-bl9C7IM41TJ_8I5PtRbMGGS9MOC8wEXe_b2Bh8G5uxNSmI8wvV1W2ENMTcbIWEuoqIc75clycuXYD9p0eoOOOPp6wmYO-SS71v_2iXIOk9OrICSql66xk91SA3w-2jJIHdAu2Ed7OHvEYNy7L3hLjDCUuTv2tsVfUJabceIPDrK77LONjXmmPnvM-UF7S06PbzbtIRtEzKdagVPlNjr_wjvcg9cUt1kvs2sVFMN33CMW7VYGnRrfEvaqPaHWmRvnp9kQsuY0cmKIXEoXkIVLE1OIfgFm_tHxC6NRM-vuBoCbJ21dZWNt-lH1aWB5m6TspHQSwMmY8kFKo-EuwEJU69J-godxy36FKPKvV_7IoUCDrRlr-7xZnaL75jEe5eJu7Rzhrjl55QUgIrvNO2lCkCZpprtGF4ucLbIwy-l8iG_em7Rbugh4MzSEsfQ=w631-h1247-s-no


Then it'll on its own switch to the expanded format I'm used to on the lockscreen (I obscured personal information):
ipt9_uZ7fRNcJntpLbY8ahykBAFVhMnfk3lYbR3VTlAvgrBGjKdXdNb6pcDFe1fqEIeRExYV6BcElNSDEncuasTKvlU9O3Ffy2Qym8YQDCSN4n9MQ_usXt1atJaLjw7yapl-cwEPa75cisRdY4DLfaM3htTP86fG0BGxDuJwQsLcF8N6QUU9-1r4DTqgYKrzS6pW19xSSaBrbxuga6wLk7XC30aEs2D3joL9hzyKMU5kuXRC0lsfeZzBfHgCtbUgxT1zGA5v4WDLAzfft9QXtaNnaXiA4Wp-pgXUAimJdBSyzoAl8T0pP1IvsiqW5Xhi4m2xWcLGRO9sQA-kYEOxyOf6nq7kI2BWfaY35kJio2Ht-mh25OIDNbw48pCVA6JnnvdvGIJChqNGF4yaX_KCQSWC4fVxhjgBfRg7j4bnH7qVdqBUlu0-XpBVPZeJ6y9dY8OTnHC835jQvLQO5bAyZrBEBZzhShyXv-mmQJwfZ6yg6TUI-zMe19WYT4vaycuz_IAumu94YWUPr291kWl_GZfMHLsNeg39Phj_JA1SGxTCZBetgopuwm5yUmWaleH8-HqJAirt9-NAHNHbqLXqeA8KKSmBPFJSJTpORAyOOXGNWT5ZUiuZqIRWLuGbJ0cw4YHGq6ZqNMOTEAsCcL0SdKTnKzF-Oobm3JjS_wJOxzY90Vyi8Pxf36w3_v5QO1sQ0fUxJY3DIMVI2T8r391pQBlZDUfrSPeMTkH0yIA5QQ-0hsShp5z2ZuaKZmHS8wJlF17n0fl1ib_pZuoW3Y4C4DIPcQ5roe_NZAU7vNHQCJHCwEq5OY7KFlX3Si67IyPSoTJdBXcy1hAmePKe2zeSrCm_8olOwZ7VEYCi2kIyKoeoVsF99g9yMAqAVO4IrFpRSG7XVAXUdyv15pdCtEBe-JPTDSipUqh0tacUWaVlr3Dy3YoDgQ=w627-h1247-s-no
Looks like a different (i.e. weird) attempt at competing with the iPhone dynamic island...?

Do you know what might've been recently updated? I imagine maybe Pixel Launcher...
 
  • Like
Reactions: roirraW "edor" ehT

roirraW "edor" ehT

Senior Moderator
Staff member
Looks like a different (i.e. weird) attempt at competing with the iPhone dynamic island...?

Do you know what might've been recently updated? I imagine maybe Pixel Launcher...
Not that one, that's @Jawomo's [APP] dynamicSpot - iPhone 14 Pro Dynamic Island for android!. Sorry for not clarifying further. I mean in the middle of the screen, and Google Voice is just an example - all notifications were coming up minimized at first on my lock screen.

Then after a few seconds, they would maximize. In the last hour or two, the minimized lock screen notifications would no longer expand on their own, and not expand when I tried to manually expand them either, so I just checked, and my phone was set to hide sensitive content on my lock screen.

I can't swear which way I had it set most recently because there has been a time when I had sensitive content hidden, but I know my notifications had always used to come up as expanded on the lock screen - unless there were multiple notifications from the same app, that is.

Yesterday, I was fooling with BlueStacks Android emulator on my Windows PC, and I didn't set a lock screen or even fool with the lock screen settings, but I wonder if it synced some setting from there, but slowly in some strange way.

Either that or the whole thing is just some weird Google goings-on behind the scenes. So now I have it set to show sensitive content again, so the trouble should be over. Weird.

Edit: I don't use Pixel Launcher, I use Nova. I recently installed one 2FA app and a restaurant app, but I think that's all.
 
  • Like
Reactions: simplepinoi177

roirraW "edor" ehT

Senior Moderator
Staff member
I have another strange problem with a manufacturer's app to control their device I have. The problem again didn't coincide with the March release. It only started happening in the last week or less.

Since shortly after I stared using the app, I set it to Unrestricted for battery usage, which then kept the connection alive (via Wi-Fi) 100% of the time, even if I left the area and came back, it would reconnect without me having to do anything. The remote app hasn't been updated since 2021, FYI.

All of a sudden this past week, the remote app would eventually lose connection, and I'd have to back out twice to its main menu and go back in to choose Remote Control. After a couple of days of this, I checked the Battery usage setting for the app again, and it was back to Optimized. I switched it back to Unrestricted, but it still loses connection, just like it used to before I set it to Unrestricted the first time.

I even wiped app cache and data, uninstalled and reinstalled, with no luck, it still loses connection. Bummer.

I don't pay attention to Google Play System updates, so I don't know what version I was on when the remote would stay connected, but I'm on the March 1, 2023, Play System update now.

TQ2A.230305.008.C1 Global firmware, not that it's likely to matter.
 

WoKoschekk

Senior Member
Feb 25, 2019
1,661
1
533
Cologne
Moto G6
Moto G6 Plus
I don't pay attention to Google Play System updates, so I don't know what version I was on when the remote would stay connected, but I'm on the March 1, 2023, Play System update now.
FYI: Google Play System Updates are included in your monthly security patch.
If your manufacturer doesn't provide any OTAs for your device then Google is still able to update core components via the Google Play System Updates (Project Mainline).
 
  • Like
Reactions: roirraW "edor" ehT

simplepinoi177

Forum Moderator
Staff member
I have another strange problem with a manufacturer's app to control their device I have. The problem again didn't coincide with the March release. It only started happening in the last week or less.

Since shortly after I stared using the app, I set it to Unrestricted for battery usage, which then kept the connection alive (via Wi-Fi) 100% of the time, even if I left the area and came back, it would reconnect without me having to do anything. The remote app hasn't been updated since 2021, FYI.

All of a sudden this past week, the remote app would eventually lose connection, and I'd have to back out twice to its main menu and go back in to choose Remote Control. After a couple of days of this, I checked the Battery usage setting for the app again, and it was back to Optimized. I switched it back to Unrestricted, but it still loses connection, just like it used to before I set it to Unrestricted the first time.

I even wiped app cache and data, uninstalled and reinstalled, with no luck, it still loses connection. Bummer.

I don't pay attention to Google Play System updates, so I don't know what version I was on when the remote would stay connected, but I'm on the March 1, 2023, Play System update now.

TQ2A.230305.008.C1 Global firmware, not that it's likely to matter.
I don't know if this will resolve the issue -- or explain what the issue might be -- but if, somehow (if you are lucky), if you can enable the app in "device admin apps", it will force the app to be Unrestricted; Optimized and Restricted will actually be grayed out, so there's no choice but for the app to be Unrestricted. But I don't know what calls for an app to request/require device admin permissions, so I'm unsure if your app will be under that. But, if luckily it does, you can keep it at Unrestricted while you research the issue/problem and hopefully eventually not require it to have those permissions for it to stay.
I've noticed that I have to set some apps back to Unrestricted myself; but I wouldn't be able to recall what I had been doing when it had changed -- it was seemingly randomly me checking at any random time...
 
  • Like
Reactions: roirraW "edor" ehT

WoKoschekk

Senior Member
Feb 25, 2019
1,661
1
533
Cologne
Moto G6
Moto G6 Plus
if you can enable the app in "device admin apps", it will force the app to be Unrestricted;
Not at all. If an app requests DEVICE_ADMIN_ENABLED it doesn't have the permissions to do all the actions of an admin. The requested permissions are defined in policies. Nova Launcher for example could change the lock screen as device admin and nothing else.
 
  • Like
Reactions: roirraW "edor" ehT

roirraW "edor" ehT

Senior Moderator
Staff member
FYI: Google Play System Updates are included in your monthly security patch.
If your manufacturer doesn't provide any OTAs for your device then Google is still able to update core components via the Google Play System Updates (Project Mainline).
Are they always included in the regular monthly firmware updates? I recall at least on the Pixel 6 Pro, many users including me were not always on the same Play System Update as other users, even when running on the same firmware version.

Also, there's a separate place to manually check for new Google Play system updates. At least once or twice, I was able to get an update to the Play system by manually checking for it, although I'm sure it would've updated automatically eventually, and I don't really pay attention to what version I'm on, normally.

I don't know if this will resolve the issue -- or explain what the issue might be -- but if, somehow (if you are lucky), if you can enable the app in "device admin apps", it will force the app to be Unrestricted; Optimized and Restricted will actually be grayed out, so there's no choice but for the app to be Unrestricted. But I don't know what calls for an app to request/require device admin permissions, so I'm unsure if your app will be under that. But, if luckily it does, you can keep it at Unrestricted while you research the issue/problem and hopefully eventually not require it to have those permissions for it to stay.
I've noticed that I have to set some apps back to Unrestricted myself; but I wouldn't be able to recall what I had been doing when it had changed -- it was seemingly randomly me checking at any random time...
This app doesn't appear among those available in the Device admin apps list, but a good idea to check. Thanks.
 

WoKoschekk

Senior Member
Feb 25, 2019
1,661
1
533
Cologne
Moto G6
Moto G6 Plus
e they always included in the regular monthly firmware updates?
Yes, they have to. The Google Play System Update is updating /system/apex/ which part of your firmware. These APEX files are special extended APK formats, but including a payload.img. For those users without the latest patch Google can download the APEX files through the Play Store. Then using the payload.img to update /system. APEX files are packed - like APKs - as ZIP archive.
 

roirraW "edor" ehT

Senior Moderator
Staff member


Google's Nearby Share Beta is heading to Windows making file transfers from Android a breeze​

BYTIMI CANTISANO
PUBLISHED 2 DAYS AGO

A year after its announcement, Nearby Share is finally making an appearance for Windows.

Readers like you help support XDA Developers. When you make a purchase using links on our site, we may earn an affiliate commission. Read More.
Google has launched Nearby Share Beta for Windows. The app will allow users to transfer files between Android and Windows devices seamlessly. The beta app is available for anyone with a Windows PC running the 64-bit version of Windows 10 and newer. For those that are running Windows on an Arm-powered device, unfortunately, for now, the app isn't supported.
Google announced Nearby Share for Windows a little over a year ago at CES 2022. The company touted the app's ability to allow easy transfers between Windows and Android devices. If you're familiar with Apple's AirDrop, Nearby Share aims to emulate the experience, allowing users to connect to any compatible Windows PC, making it faster to transfer photos, videos, documents, audio files, and even entire folders when needed.


Best of all there are privacy features as well, giving users the ability to choose how their devices will interact. For those that aren't all that worried, you can have your device shown to everyone, while those trying to be more secure can have devices shared just with contacts. There's even a mode that will allow users to only show devices that they own. Regardless of which option is selected, you can feel confident knowing that all transfers are end-to-end encrypted.
While sending files to a computer is one application, Nearby Share will also be handy for transferring files to an Android device from a computer. In order to get this working, you can head to the download page, install it on your PC, and then just set your preferences and start sharing. Since all of this is done wirelessly, make sure to have your wireless connection and also Bluetooth on. Also be sure to have the same settings, along with your location enabled on your Android device.

Source: Android
 

simplepinoi177

Forum Moderator
Staff member

saw an article talking about this...am excited about it...

bluetooth transfer is finicky and slower, and opening particular apps (going all the way back to SuperBeam) could get clumsy and tedious...
I constantly transfer stuff between phones and my pc/laptop...
 
  • Like
Reactions: roirraW "edor" ehT

SimorghDroid

Member
Apr 14, 2013
22
3
Burlington, Ontario
Hi all,

Up untill the latest factory image update TQ2A.230305.008 there were no Canada version. I rooted my 7 pro to TQ1A.221205.011, Dec 2022 and haven't done any updates since then. I live in Canada, with Canadian carrier.

Should I grab the TQ2A.230305.008.A3, Mar 2023, WINDTRE/Canada or the Global, TQ2A.230305.008.C1, Mar 2023?

Would greatly appreciate your guidance.

Thanks
 
  • Like
Reactions: roirraW "edor" ehT

Gordietm

Senior Member
Sep 11, 2012
2,222
766
Toronto
Google Pixel 8 Pro
Hi all,

Up untill the latest factory image update TQ2A.230305.008 there were no Canada version. I rooted my 7 pro to TQ1A.221205.011, Dec 2022 and haven't done any updates since then. I live in Canada, with Canadian carrier.

Should I grab the TQ2A.230305.008.A3, Mar 2023, WINDTRE/Canada or the Global, TQ2A.230305.008.C1, Mar 2023?

Would greatly appreciate your guidance.

Thanks
I live in Toronto and I've tried the global and Canadian version and couldn't find any difference.
 
  • Like
Reactions: roirraW "edor" ehT

Top Liked Posts

  • There are no posts matching your filters.
  • 3
    Solution to my issue : flashing patched boot on slot a. Since i have my 7Pro, i always flash on slot b. Auto-update has probably change slot.
    So, if you are in the same case, you have to flash your Patched boot on the other slot.
    3
    Also related to this, I too use gestures but I hate the home bar/pill, so I hide it with Iconify or Fullscreen/Immersive Gestures module.

    I'm curious how Circle to Search would be triggered in a scenario like this. There's basically no bar and the space it occupies is also hidden.
    Hello,
    I've done the test. I've hidden the home bar pill with Pixel Expert, and Circle to Search still appear when I press the very bottom zone without the pill
    3
    anyone used this with the April update and root successfully?
    Me
    3
    Solution to my issue : flashing patched boot on slot a. Since i have my 7Pro, i always flash on slot b. Auto-update has probably change slot.
    So, if you are in the same case, you have to flash your Patched boot on the other slot.
    Yes, OTAs always install to the inactive slot. Flashing factory images install to the active slot.
  • 70
    Pixel 7 Pro [Cheetah]

    April 17, 2024:

    For what it's worth, this is apparently the response from Google to someone who asked about the 2nd April update:

    "We're starting to push an update to Pixel 7 and newer phones. This includes network stability and performance improvements. This update will roll out globally to the regions and carriers impacted over the coming weeks."





    Here there be dragons. 🐉 I am not responsible for anything at all. 😹

    VERY IMPORTANT - On the Pixel 7/Pro, we use Magisk to patch 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.​

    Thanks to @edcsxz, @Lughnasadh, and @AndyYan for news about that and confirming it.

    Moved @mariusnoor's provided zero-day OTA.zip to Post #8 - Old news from the OP.

    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.

    INDEX:

    • Post #2 - Unlocking Bootloader / Rooting / Updating | Play Integrity / SafetyNet | ADB/Fastboot & Windows USB Drivers:
      • How to Root the first time / aka How to unlock the Bootloader
      • Unlocking Bootloader (required in order to root)
      • How to update each month (and also how to root)
        [requires an unlocked bootloader for updating via this Factory Image / Android Flash Tool method]
        • Factory Image / Android Flash Tool method(requires an unlocked bootloader)
          • OPTIONAL: If you want to flash both slots, after this first time, then after do the following
        • Full OTA Zip method
      • SafetyNet
      • Optional steps when updating - flashing custom kernels
        • The two schools of thought on disabling Verity and Verification
      • ADB/Fastboot and Windows USB Drivers - direct download links and the most recent changelog
    • Post #3 - Other, most important resources:
      • A list of other important apps
      • TWRP [not made for the Pixel 7 (or 6) Pro yet - will update when or if ever it has - don't hold your breath]
      • Factory Images (requires an unlocked bootloader)
      • Full OTA Images(doesn't require an unlocked bootloader - you can ask questions in this thread, but I won't be providing the steps necessary, as I always use the factory image)
        • @mariusnoor's provided official URL to download the zero-day OTA to TD1A.220804.031.
      • Check warranty status
      • Official Google Pixel Update and Software Repair (reported as of January 23, 2022 to still not be updated for the Pixel 6/Pro - no idea if it has yet now, or if it will be for the 7/Pro)
      • Official Google Pixel Install fingerprint calibration software (also available at the bottom of the Update and Software Repair page above) - I believe this is only helpful if you've replaced the screen - if it's anything like the Pixel 6 Pro: if you have the screen replaced, then you *must* have the fingerprint reader replaced as well.
      • Find problem apps, Magisk, and LSposed Modules by (three different methods)
      • Official Google Android Flash Tool (OEM Unlocking needs to be toggled on - you do not have to manually unlock the bootloader - their site will do that on its own)
      • How to determine if you already have Verity and Verification disabled (required for custom kernels for now)
      • How to unroot
    • Post #4 - Build ID definitions
    • Post #5 - Blank
    • Post #6 - Regarding P7P 5G model numbers and capabilities, and how to determine your hardware version
    • Post #7 - My personal advice for how to get your device back up and running as you had it before a factory reset
    • Post #8 - Old news from the OP

    Thank you to the following users who have all contributed greatly to my knowledge of Pixels since I came back to XDA a year ago after a few years of mostly inactivity. Apologies if I miss anybody. In alphabetical order:

    47

    Unlocking Bootloader / Rooting / Updating | Play Integrity / SafetyNet | ADB/Fastboot & Windows USB Drivers

    Unlocking Bootloader / Rooting / Updating:

    How to Root the first time / aka How to unlock the Bootloader:
    Unlocking the bootloader will factory reset your device. There is no way around this. I highly suggest never re-locking your bootloader once you unlock it. If you do ever re-lock the bootloader, only do so after restoring the phone to 100% stock by using the latest Pixel 7 Pro Factory Image or Official Google Android Flash Tool.

    Verizon variants:
    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.

    T-Mobile and AT&T variants:
    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).

    The direct-from-Google (or other retailers who aren't U.S. Carriers), the factory Carrier Unlocked Pixels:
    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.

    The rest of the world's carriers:
    No idea. Feel free to ask in the thread and hopefully, someone with specific knowledge will answer.

    Other than trying the things I mentioned above, there is nothing else that anyone on XDA can do to help get OEM unlocking to be ungrayed.

    Unlocking Bootloader (required in order to root)
    The one-time first steps are:
    1. Android Settings
    2. About phone
    3. Click on Build number repeatedly, about seven times
    4. Go back to the main Android Settings
    5. System
    6. 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.
    7. How to actually root follows the same steps below as how to update each month.
    8. Download the latest ADB/Fastboot (SDK Platform Tools) and Windows USB Drivers.
    9. Unzip the Platform Tools and Drivers.
    10. 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).​

    11. The Windows USB Drivers may have to be installed twice:
      • The first time while your phone is running and unlocked as normal.
        1. In Windows, right-click on the Start Button and choose Device Manager.
        2. 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.
        3. Below Android Device, it should now show Android Composite ADB Interface
        4. Right-click the Android Composite ADB Interface and choose Update driver
        5. Choose Browse my computer for drivers
        6. Click Browse and navigate to where you unzipped the Windows USB drivers to.
        7. Follow the prompts to install the driver.
        8. 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.
        9. Open a Command Prompt and navigate to the platform-tools folder.
        10. Run command:
          Code:
          adb devices
        11. On your Android device, you'll get an ADB prompt. Check the box to always give ADB permission and click OK.
        12. 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.
    12. Run command:
      Code:
      fastboot flashing unlock
    13. On the phone, press either the up or down volume button once until you see Unlock the bootloader |>| beside the power button.
    14. Press the power button. The phone will go black for a second and then show near the bottom Device state: unlocked.
    15. After these first-time steps to unlock the bootloader, if you want to root, continue below at the step:

    NOTE that as @Lughnasadh has previously found and reported, both the factory image method using Flash-All.Bat, and the Official Google Android Flash Tool (webpage) cause only the most recently flashed slot to boot. If you want both slots to be bootable, you want the Full OTA Zip method a couple of sections down in this post.
    And it's a double warning if the device is brand new, the secondary slot does not even get into bootloader (because it is blank) if the active slot is becomes not bootable, automatic switching to the secondary slot bricks the device (no bootloop).
    At least with factory image flashed on both slots, even if the primary slot is not system bootable, you get bootlooped and you can flash again.
    Old habits are hard to break, specially if people never had issues with it in the past and are comfortable with the steps (I see a lot of people still doing factory flashing), for the very least if one chooses to stick with factory flashing, both slots should be flashed, specially with a brand new device.
    Although that is still a very high risk for brand new devices because anything goes bad it's likely to end up with a brick.
    OTA instructions should be the dominant guides, and factory would be used for downgrade (with a wipe).

    How to update each month (and also how to root)

    [requires an unlocked bootloader for updating via this factory image method, and for the Full OTA method if you're rooting]
    • These three instructions only apply if you're already rooted and updating from one firmware version to another:
      • Made sure all Magisk Modules have been updated.
      • Disable all Magisk Modules.
      • UNhide Magisk!
    1. If you are going to use the Official Google Android Flash Tool, then skip the steps I indicate with FAB(Flash-All.Bat).
      • If using the Android Flash Tool to update/dirty flash, you should have the following items notselected:
        • Deselect Wipe
        • Deselect Force Flash all partitions (which will also wipe)
        • Deselect re-lock bootloader
    2. Always use the latest ADB/Fastboot (SDK Platform Tools) and Windows USB Drivers.
    3. Unzip the Platform Tools.
    4. At this point, if you're going to use the Full OTA Zip method, go to the:
      Full OTA Zip method
      section below the next section.
    Factory Image / Android Flash Tool method:
    1. Download the latest Pixel 7 Pro Factory Image (at the bottom of the "cheetah" section).
    2. Unzip the factory image to the same 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.
    3. * FAB VERY important - Edit the 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.
    4. Extract only the init_boot.img file from the image-cheetah-etcetera.zip to the same platform-tools folder.
    5. Copy the init_boot.img from the PC to the phone's internal storage.
    6. On the phone: Apply Magisk Stable to the new stock 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.
      • Launch the Magisk app.
      • Beside "Magisk", click "Install".
      • Click "Select and Patch a File", and choose the init_boot.img that you just copied to the phone's storage.
    7. Copy the Magisk'd init_boot.img (filename similar to magisk_patched-25200_1a2B3c.img)back over to the computer.
    8. * FAB Run commands:
      Code:
      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)

      IMPORTANT - The flash-all will take several minutes and reboot on its own several times including to a mode called "FastbootD", and finally reboot into full Android when it's done. Do not interrupt this process. On the FastbootD screen on the phone, do not use any of the manual selection options - let the flash-all script do it's work. Do not unplug your phone until it has fully booted into Android.​

      Thanks to @PurppleMonkey and @xgerryx for suggesting a warning about this. Thanks to @simplepinoi177 for suggesting the "FastbootD" clarification.
    9. On the phone:
      • Wait for the phone to boot normally.
      • OPTIONAL: If you want to flash both slots, after this first time, then after do the following:

        • Code:
          adb reboot bootloader
          fastboot --set-active=other
          flash-all.bat
        So you're doing the flash-all.bat a second time on the second slot.
    10. On the computer:
      • Open a Command Prompt and navigate to the platform-tools folder.
      • Run command:
        Code:
        adb reboot bootloader
      • After phone has rebooted into Bootloader (Fastboot) mode, run command:
        Code:
        fastboot flash init_boot magisk_patched-25200_1a2B3c.img
        fastboot reboot
    11. Unlock the phone.
    12. Confirm that the phone boots completely normally.
    13. Cautiously re-enable Magisk Modules.
    14. Reboot.
    15. Confirm everything worked fine.
    16. If the phone won't boot correctly after having enabled Magisk Modules, see either of the two solutions below:
      • 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:
        Code:
        adb wait-for-device shell magisk --remove-modules
        I like to just do this first:
        Code:
        adb devices
        So the server is running, then I have the long one pasted and ready to go once the phone turns off.
      • Find problem apps, Magisk, and LSposed Modules by (three different methods) section in my next post. After following that link, you may have to scroll up a little bit and the section title will be highlighted.

    Full OTA Zip method:
    These instructions assume that you've already followed the directions for unlocking your bootloader (closer to the top of this post), which includes installing the necessary drivers and platform-tools.

    NOTE that it's optional to flash the Magisk'd (rooted) init_boot.img. You can flash it to both slots, you can flash it to just one slot if you need an unrooted copy of Android.

    Because of some details of how the factory image zip method works, you can't use that method twice (switching slots) to update both slots AND be able to switch slots. Only one slot will work.

    This Full OTA method will allow you to boot either slot.

    Thanks to @Lughnasadh and @badabing2003 for testing, detailing, and refining the steps. Thanks especially to @Lughnasadh for proof-reading these steps and giving great suggestions, and making me aware of options I didn't know about.

    1. [ONLY if you already had your phone rooted before] UN-hide Magisk on the phone.
    2. [ONLY if you already had your phone rooted before] Disable all Magisk Modules just in case they're not compatible with and cause a bootloop on the new firmware
    3. There are three ways to get the init_boot.img:
      • You can download the latest factory image zip from the bottom of the "cheetah" section, but that's a lot of wasted download for just the init_boot.img. In the factory image zip, the init_boot.img is inside the inner zip that's inside the zip you download. Put the init_boot.img in the same folder as the extracted platform-tools.
      • The more effecient method is to extract the init_boot.img out of the payload.bin file, which is inside the Full OTA zip:
        • Use @ssssut's (XDA thread [TOOL] A QUICK Android OTA payload dumper) OR directly from GitHub.
        • At the GitHub link, click the Releases link at the far right, down the screen a bit.
        • Download the latest payload dumper in the Assets section for the latest release, appropriate to whichever platform you're going to run it on. For Windows, you'll likely want the .tar.gz archive that ends in windows_amd64.
        • I use the free 7-Zip to extract the .tar.gz. I use it for zips, too. I use it for everything with rare exception.
        • Extract the payload dumper to the same folder you have ADB, Fastboot, and the OTA zip.
        • Extract the payload.bin out of the OTA zip.
        • Open a Command Prompt while in the same folder as the ADB, Fastboot, OTA zip, payload.bin, and payload dumper.
        • payload-dumper-go.exe -p init_boot -o . payload.bin
        • The period . after -o will cause it to put init_boot.img in the same folder as where you're running the command in.
      • Possibly the easiest way to get the init_boot.img out of the payload.bin (and patch it at the same time), and still two variations of this particular solution: Magisk does all the work.
        • Your choice - either copy the entire Full OTA zip, OR just the payload.bin from the zip to your phone.
    4. OPTIONAL - if you need to disable Verity and Verification (for custom kernels that require it), then use either of the first two init_boot.img extraction methods above for the vbmeta.img, substituting the correct partition/image name, as appropriate.
    5. If one of the first two methods were used (factory image zip OR using payload dumper on the payload.bin), copy the init_boot.img to your phone.
    6. Continue here for all methods:
      • Launch Magisk.
      • To the right of "Magisk", click "Install".
      • Click "Select and Patch a File"
      • Find and click on either the Full OTA zip, payload.bin, OR init_boot.img, depending on which method you decided to use.
      • As appropriate, Magisk extracts and generates the Magisk-patched init_boot.img.
      • Copy the Magisk'd init_boot.img back to the PC.
    7. adb reboot sideload
    8. adb sideload cheetah-ota-AB#a.YYMMDD.##-blah.zip
    9. Choose recovery menu optionreboot to bootloader
    10. OPTIONAL - if you need to disable Verity and Verification (for custom kernels that require it):
      • fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
    11. fastboot flash init_boot Magisk'd_init_boot.img
      • If your Magisk'd init_boot.img filename has spaces in it, then use Quotes " " around it:
      • fastboot flash init_boot "Magisk'd init_boot.img"
    12. Temporarily boot into the newly updated/rooted slot, to test to make sure it boots and all seems normal:
      • fastboot reboot
      • Unlock your phone to be assured things are working satisfactorily.
    13. The rest (except fastboot reboot at the end) is optional, if you want to update the other slot.
    14. NOTE that it it NOT necessary to tell the phone to change slots. Each time you flash the OTA, the phone changes slots already.
    15. adb reboot sideload
    16. adb sideload cheetah-ota-AB#a.YYMMDD.##-blah.zip
    17. Choose recovery menu optionreboot to bootloader
    18. OPTIONAL - if you need to disable Verity and Verification (for custom kernels that require it):
      • fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
    19. fastboot flash init_boot Magisk'd_init_boot.img
      • If your Magisk'd init_boot.img filename has spaces in it, then use Quotes " " around it:
      • fastboot flash init_boot "Magisk'd init_boot.img"
    20. fastboot reboot
    21. Unlock the phone.
    22. Confirm that the phone boots completely normally.
    23. Cautiously re-enable Magisk Modules.
    24. Reboot.
    25. Confirm everything worked fine.
    26. If the phone won't boot correctly after having enabled Magisk Modules, see either of the two solutions below:
      • 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:
        Code:
        adb wait-for-device shell magisk --remove-modules
        I like to just do this first:
        Code:
        adb devices
        So the server is running, then I have the long one pasted and ready to go once the phone turns off.
      • Find problem apps, Magisk, and LSposed Modules by (three different methods) section in my next post. After following that link, you may have to scroll up a little bit and the section title will be highlighted.

    If you ever need to switch slots, then from running Android:
    Code:
    adb reboot bootloader
    fastboot --set-active=other
    fastboot reboot

    Play Integrity / SafetyNet:

    You do not need more than one of these:
    and
    • I haven't actually used the second one by osm0sis, so I don't know for sure, but I use the first one by chiteroman, combined with:


    • Also for reference, @simplepinoi177's thread How to search & find your own fingerprints [noob friendly]: A Comprehensive Guide w/ tips & Discussion for Complete Noobs (from one)
    • 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.
    • Go to the Play Store/Settings/General/About and tap the Version 4 times til the Dev Options for the Play Store Opens, then back out.
      Go to those new Dev Options and check integrity there.
      The Play Integrity pop-up that appears should say:
      [MEETS_BASIC_INTEGRITY, MEETS_DEVICE_INTEGRITY]
      • 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.
      • Did you try clearing cache and data in Wallet, GPay, Play Services, Google Framework, make sure SELinux is Enforcing??
        Also I have the Deny List enabled.
    • 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.

    Optional steps when updating - flashing custom kernels:
    • 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.​

        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 extracted platform-tools.
    • Hook the phone up to your computer and run the following commands:

      • Code:
        adb reboot bootloader
        [wait for the phone to reboot to bootloader (fastboot mode)]
        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-husky-buildnumber.zip --disable-verity --disable-verification

    A relevant excerpt from @Freak07's Pixel 7 Pro Kirisakura custom kernel thread:
    F.A.Q:

    Question: How do I disable the vbmeta flags for verity/verification?
    Answer: The easiest solution is to use the android web flash tool and tick the correct checkbox.
    Alternatively extract the vbmeta.img from the matching factory image and flash it in fastboot via:
    Code:
    fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
    Please note that disabling those flags will require a full wipe for the device to boot if coming from flags enabled state!
    And a further note: You need to repeat this command every time you flash a full firmware zip ( a factory image or a full OTA.zip) to update the firmware of your phone as those contain a vbmeta image. Otherwise the flags will be reset to default enabled and it will require another wipe to disable them again! As with the firmware.zips, you need to tick the checkbox in the webflasher every month you update your phone or flash a firmware there!

    IF you forget to disable Verity and Verification:
    Verity enabled -> Verity disabled will require a wipe (every single time)
    Verity disabled -> Verity enabled does not require a wipe, but if this happened because you forgot to keep it disabled, then you would need to disable it again and it will require a wipe.

    Another caveat that you should be careful about, these devices have two slots, you might end up disabling verity on one slot, switch to the other intentionally or unintentionally which has it enabled, you can't switch back without a wipe.

    Hence why it is advisable that the very first time you want to disable Verity, you do the following.

    Code:
    adb reboot bootloader
    fastboot --slot all --verbose --disable-verity --disable-verification flash vbmeta vbmeta.img
    fastboot -w
    fastboot reboot

    This will disable verity on both slots, perform the wipe and bring your to OOBE
    At this point do what you want, and making sure that each time you keep Verity disabled.

    My own words:
    If you forget to disable Verity and Verification, then if you don't actually try to boot the phone, you can disable them and no factory reset will be required.

    If you forget to disable them, and you do try to boot the phone, then yes, you'll have to factory reset.

    Note that disabling or not disabling them doesn't actually wipe your device, no matter what. It's a small difference, but rather, they corrupt (or report as corrupt) your device until you wipe it manually (although that's not the only cause of corruption messages, and in at least one other case, a different solution is required).

    I have chosen to never disable them, but that's my personal preference. I have one or two accidents a year anyway where I forget some step on my phone, without having to worry about disabling them.

    I am hoping that the method that has been found recently on the Pixel 7 Pro, to not need to disable them for custom kernels that implement the fix, will apply to the Pixel 8 Pro, too. If not, then I won't be using custom kernels. Nothing against anyone at all, especially the Developers. I'm just too clumsy. :)

    Optional steps when updating - flashing custom kernels:
    • 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.​

        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 extracted platform-tools.
    • Hook the phone up to your computer and run the following commands:

      • Code:
        adb reboot bootloader
        [wait for the phone to reboot to bootloader (fastboot mode)]
        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

    A relevant excerpt from @Freak07's Pixel 7 Pro Kirisakura custom kernel thread:
    F.A.Q:

    Question: How do I disable the vbmeta flags for verity/verification?
    Answer: The easiest solution is to use the android web flash tool and tick the correct checkbox.
    Alternatively extract the vbmeta.img from the matching factory image and flash it in fastboot via:
    Code:
    fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
    Please note that disabling those flags will require a full wipe for the device to boot if coming from flags enabled state!
    And a further note: You need to repeat this command every time you flash a full firmware zip ( a factory image or a full OTA.zip) to update the firmware of your phone as those contain a vbmeta image. Otherwise the flags will be reset to default enabled and it will require another wipe to disable them again! As with the firmware.zips, you need to tick the checkbox in the webflasher every month you update your phone or flash a firmware there!

    IF you forget to disable Verity and Verification:
    Verity enabled -> Verity disabled will require a wipe (every single time)
    Verity disabled -> Verity enabled does not require a wipe, but if this happened because you forgot to keep it disabled, then you would need to disable it again and it will require a wipe.

    Another caveat that you should be careful about, these devices have two slots, you might end up disabling verity on one slot, switch to the other intentionally or unintentionally which has it enabled, you can't switch back without a wipe.

    Hence why it is advisable that the very first time you want to disable Verity, you do the following.

    Code:
    adb reboot bootloader
    fastboot --slot all --verbose --disable-verity --disable-verification flash vbmeta vbmeta.img
    fastboot -w
    fastboot reboot

    This will disable verity on both slots, perform the wipe and bring your to OOBE
    At this point do what you want, and making sure that each time you keep Verity disabled.

    My own words:
    If you forget to disable Verity and Verification, then if you don't actually try to boot the phone, you can disable them and no factory reset will be required.

    If you forget to disable them, and you do try to boot the phone, then yes, you'll have to factory reset.

    Note that disabling or not disabling them doesn't actually wipe your device, no matter what. It's a small difference, but rather, they corrupt (or report as corrupt) your device until you wipe it manually (although that's not the only cause of corruption messages, and in at least one other case, a different solution is required).

    I have chosen to never disable them, but that's my personal preference. I have one or two accidents a year anyway where I forget some step on my phone, without having to worry about disabling them.

    I am hoping that the method that has been found recently on the Pixel 7 Pro, to not need to disable them for custom kernels that implement the fix, will apply to the Pixel 7 Pro, too. If not, then I won't be using custom kernels. Nothing against anyone at all, especially the Developers. I'm just too clumsy. :)

    ADB/Fastboot & Windows USB Drivers:

    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?
    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 you adb reboot-bootloader, to be able to use ADB and Fastboot.
    33
    Please test this UNSF build. Should be passing basic/device integrity.

    Use updated version from main post instead
    25

    Other, most important resources


    A list of other important apps: - be sure to thank the respective OPs:

    How to unroot
    One of these two options:
    1. Official Google Android Flash Tool (OEM Unlocking needs to be toggled on - you do not have to manually unlock the bootloader - their site will do that on its own).
      Select the options to:
      • Wipe
      • Force flash all partitions
      • Re-lock bootloader
    2. Flash the completely stock init_boot.img from the same firmware version that you're on:
      Code:
      adb reboot bootloader
      fastboot flash init_boot init_boot.img

    TWRP [not made for the Pixel 7 (or 6) Pro yet - will update when or if ever it has - don't hold your breath]
    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.

    Factory Images (requires an unlocked bootloader)
    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.

    Full OTA Images (doesn't require an unlocked bootloader - you can ask questions in this thread, but I won't be providing the steps necessary, as I always use the factory image)

    Check warranty status - *may* reveal if a phone is refurbished, only if the phone was refurbished through Google - thanks to @Alekos for making me aware of the site.

    Official Google Pixel Update and Software Repair (reported as of January 23, 2022 to still not be updated for the Pixel 6/Pro - no idea if it has yet now, or if it will be for the 7/Pro)

    Official Google Pixel Install fingerprint calibration software (also available at the bottom of the Update and Software Repair page above) - I believe this is only helpful if you've replaced the screen - if it's anything like the Pixel 6 Pro: if you have the screen replaced, then you *must* have the fingerprint reader replaced as well.

    Find problem apps, Magisk, and LSposed Modules by (three different methods):
    1. Magisk Safe Mode.
      • This can be a lifesaver and keep you from having to do a restore to 100% complete stock or even from having to do a factory reset. This will deactivate all Magisk modules, and they'll remain deactivated even after you boot normally after briefly booting to safe mode. You can re-enable the Magisk modules as you wish to try to narrow down the problem if it was caused by a Magisk module. This can even get things working again after a Magisk Module wasn't finished installing and potentially causing a bootloop.
      • It has been pointed out to me (thank you, @Lughnasadh!) that Google's Help Page for Find problem apps by rebooting to safe mode only gets you into System Safe Mode, not Magisk Safe Mode.
      • One of the Alpha developers (I don't know which one): "Many people wait for the animation to appear before pressing keys. They are misled by the documentation into thinking that system safe mode will trigger magisk safe mode. This is wrong, the time is wrong.

        For safe mode to be recognized before the module is loaded, magisk must detect keystrokes earlier than the system. If you press the key after the animation appears, you will have missed the detection of magisk and will only trigger the system safe mode. You should press and hold volume down immediately after the bootloader unlock warning, and release it after the animation appears - if you do not want to trigger the system safe mode at the same time.

        Safe mode can also be triggered through prop. When the computer is powered on, long press the restart button in the power menu and click OK on the "Reboot to Safe Mode" pop-up window, and the prop will be set. If magisk and the system read this prop the next time they are powered on, they will enter safe mode. Only in this way can we guarantee that everything will be triggered. But it is not practical, or in other words, it is meaningless to save bricks."
    2. You can also follow @Jon8RFC's advice:
      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:
      Code:
      adb wait-for-device shell magisk --remove-modules
      I like to just do this first:
      Code:
      adb devices
      So the server is running, then I have the long one pasted and ready to go once the phone turns off.
      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.
    3. (May only be for mis-behaving LSposed modules):
      In the future try this

      adb wait-for-device shell su -c "touch /data/adb/modules/zygisk_lsposed/disable"
      adb reboot

      Official Google Android Flash Tool (OEM Unlocking needs to be toggled on - you do not have to manually unlock the bootloader - their site will do that on its own)
      OEM unlocking in developer options needs to be toggled on. I don't "believe" you have to actually do the "fastboot flashing unlock" command.

      How to determine if you already have Verity and Verification disabled (required for custom kernels for now)
      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 the update-binary script rather than the raw file than I care to admit. 🤦‍♂️ Off to bed.
      Alternative two more manual ways of checking:
      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 an avbctl 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
    22
    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.
    Indeed. My MOD is a temporary solution until kdrag0n release accurate fix.

    I didn't change the update channel in the module on purpose so that everyone can upgrade to the new official version automatically without any problems.