📳🔥 PixelFlasher, a GUI tool for flashing / updating / rooting / managing Pixel phones.

Search This thread

deepak jr

Senior Member
Apr 13, 2017
186
440
London
sneakytime.com
OnePlus 8 Pro
Hey there,
I just bricked my pixel 6 pro and i was wondering if you could somehow make pixel flasher show serial/com devices and flash bootloader from there? Also wanted to know if you could get a .tar version of the bootloader for the Pixel 6 pro.
Thanks :))
 

badabing2003

Recognized Contributor
Sep 17, 2012
4,900
9,037
Hey there,
I just bricked my pixel 6 pro and i was wondering if you could somehow make pixel flasher show serial/com devices and flash bootloader from there? Also wanted to know if you could get a .tar version of the bootloader for the Pixel 6 pro.
Thanks :))
Sorry to hear about your problems.

How did you brick your phone?
were you using PF?
If so, please generate support.zip file so that I can take a look at what might have happened.
I'm not sure if I follow you about showing Serial / Com devices.
Your phone is detected as a serial device?, how did it end up like that?
What do you mean by getting tar version of bootloader?
 
  • Like
Reactions: J.Michael

deepak jr

Senior Member
Apr 13, 2017
186
440
London
sneakytime.com
OnePlus 8 Pro
Sorry to hear about your problems.

How did you brick your phone?
were you using PF?
If so, please generate support.zip file so that I can take a look at what might have happened.
I'm not sure if I follow you about showing Serial / Com devices.
Your phone is detected as a serial device?, how did it end up like that?
What do you mean by getting tar version of bootloader?
Sorry for being blunt but I didn't flash A13 on both slots and when the boot failed, it switched to A12 and bricked it. I tried everything but no luck. The only thing that shows this as a com device is an old odin (1.3.x). In order to flash bl using that I needed the.tar image of the bootloader. Hope it clears that.
 

badabing2003

Recognized Contributor
Sep 17, 2012
4,900
9,037
Sorry for being blunt but I didn't flash A13 on both slots and when the boot failed, it switched to A12 and bricked it. I tried everything but no luck. The only thing that shows this as a com device is an old odin (1.3.x). In order to flash bl using that I needed the.tar image of the bootloader. Hope it clears that.
I doubt that it would work, but you can give this a try.
I think You can send it To Google and they would fix / replace it.
Lots of people have done that.
 

Attachments

  • bootloader.tar
    11.3 MB · Views: 23
  • Like
Reactions: J.Michael

badabing2003

Recognized Contributor
Sep 17, 2012
4,900
9,037
Unfortunately this didn't work :/
I did try sending it to Google but they denied it because the glue on the device was not original apparently xD
Really sorry to hear that, I find Google accountable for this mess, and they are denying to service a problem they created because of the glue not being original?
It sucks that you are left with an expensive brick. :mad:
 
  • Like
Reactions: deepak jr

J.Michael

Recognized Contributor
Jan 20, 2018
2,477
3,008
Samsung Galaxy Tab A series
Sorry for being blunt but I didn't flash A13 on both slots and when the boot failed, it switched to A12 and bricked it. I tried everything but no luck. The only thing that shows this as a com device is an old odin (1.3.x). In order to flash bl using that I needed the.tar image of the bootloader. Hope it clears that.
What is this A12 and A13 you have that do not include a bootloader?

If you have a bootloader image file, you can make a .tar file -- there's nothing special about the format. But Pixel is not Samsung, and Samsung is the only thing I've ever heard of using Odin and .tar files. Odin doesn't actually burn anything to the device, it just communicates with the download mode of the device -- which a non-Samsung device will not have the right one of.

How many times have you tried to boot? I thought there was a "failsafe" whereby after failing to boot some number of times, it would automatically switch slots. If the original problem was not flashing both slots, you might have a good boot in the other slot.
 

deepak jr

Senior Member
Apr 13, 2017
186
440
London
sneakytime.com
OnePlus 8 Pro
What is this A12 and A13 you have that do not include a bootloader?

If you have a bootloader image file, you can make a .tar file -- there's nothing special about the format. But Pixel is not Samsung, and Samsung is the only thing I've ever heard of using Odin and .tar files. Odin doesn't actually burn anything to the device, it just communicates with the download mode of the device -- which a non-Samsung device will not have the right one of.

How many times have you tried to boot? I thought there was a "failsafe" whereby after failing to boot some number of times, it would automatically switch slots. If the original problem was not flashing both slots, you might have a good boot in the other slot.
Google has apparently trips a efuse when theres A12 bootloader in one slot and A13 on the other and you manage to boot in A12 somehow. So kinda ****ed xD
 

J.Michael

Recognized Contributor
Jan 20, 2018
2,477
3,008
Samsung Galaxy Tab A series
Google has apparently trips a efuse when theres A12 bootloader in one slot and A13 on the other and you manage to boot in A12 somehow. So kinda ****ed xD

This thread, in amongst the doom and gloom, repeatedly has someone saying "try harder, and try for fastboot mode".

The cited post goes into more detail about how he thinks it can be done
 
Oct 19, 2022
9
0

After I updated pixel 6 to android 13,​

phone doesn't work became bricked and I can't fix it because when I plug it into my computer and see the device manager in windows,​

but it is not detected by `adb devices` or `fastboot devices`.​

I see it detected in seconds and disappear by watching device manager as a " USB serial port device (COM 3)" in windows 11
detected in win11.png

in windows 7 & ubuntu detected as pixel CDC- ACM (Pixel ROM Recovery )device because devices manager in win7 can't find any driver compatible so it detected as itself in "Other devices"​

detected in win7.png

in VM box :

info in vm box.png
while I hold down the power button so I can't fix it,​

how to restore my phone and flash it in this mode I think this mode is EDL

I tried to boot in bootloader by pressing press power + volume down and power + volume up and all together but nothing work , the phone is dead​

I have tried to fix by this post but unfortunately it doesn't work https://xdaforums.com/t/guide-unbrick-pixel-6-oriele-or-pixel-6-pro-raven.4441245/

I have escalated this issue in google tracker since 2 months but i got NO ANSWER and NO HELP https://issuetracker.google.com/issues/243636259


is anyone have any idea to fix my ? i will appreciate any try 😊 PLZ help me
 
Last edited:

badabing2003

Recognized Contributor
Sep 17, 2012
4,900
9,037
@mohamed_emad10
Just scroll up above your post, the same thing is discussed literally on this same page.
Short of sending your phone to Google, I'm not aware of any success stories unbricking due to the ABR issue.

Oh by the way, it's not cool to post the same thing in multiple threads.
I wish you good luck, and if you ever manage to unbrick it without sending out to Google, please do share your story and method.
 

krkhaha

Senior Member
Dec 28, 2013
673
146
Kraków
OnePlus 8
What's that mean verbose. Should I select that or no? I'd like to keep unlock bootloader, disable Verity, disable verification. What options should I select and deselect? Thank you.
 
Last edited:
@badabing2003
Too easy.
Here's the thing. From the Nexus 6 til now, I was out of the game, completely, so all this that goes into rooting and modifying has gotten very technologically advanced. WAY more commands to learn, files to patch, etc but this app makes it easy for an old guy like me. An old-school guy like me.

Instead of my head spinning over all these commands to do all these things, I flashed the Nov update, disabled Verity and Verification, wiped, updated/reinstalled Magisk while I did my dishes and now my files are being restored while Swift restores my apps/data so I can flash a kernel and any Magisk Mods that need to be restored.

I could learn the advanced methods, easily, and I will, but I'm going in 4 directions all day long. My time is limited between working long hours and raising two teenage girls on my own!

Dude, you're a genius. I can't express enough appreciation
 

badabing2003

Recognized Contributor
Sep 17, 2012
4,900
9,037
I could learn the advanced methods, easily, and I will, but I'm going in 4 directions all day long. My time is limited between working long hours and raising two teenage girls on my own!
Happy to see you found it time saving, focus on your daughters and work, let PF do it's thing.
The process should be the same each time there is a new update, although you don't have to wipe anymore, if anything changes and you need to do it differently PF should warn you, pay attention to those (don't expect to see many)

I can't express enough appreciation
You already did, thank you.
 
  • Like
Reactions: Skysurfer77
Happy to see you found it time saving, focus on your daughters and work, let PF do it's thing.
The process should be the same each time there is a new update, although you don't have to wipe anymore, if anything changes and you need to do it differently PF should warn you, pay attention to those (don't expect to see many)


You already did, thank you.
Right right. This wipe was only for verity and verification.
Mostly, I'm posting this so anyone with doubts can see it's nothing to stress over.

And you're welcome!
 

badabing2003

Recognized Contributor
Sep 17, 2012
4,900
9,037
Hey Badabing2003,

Just wanted to say thank you for this amazing PixelFlasher. I just did a November system update. Your program works like a charm!
Incredibly easy now to do a OTA update apply to a rooted Pixel 7.

Greetings,

Rudge79
Thanks
Just to be clear, you're doing OTA update?
Care to explain your process and reasons?
 
  • Like
Reactions: Skysurfer77
Hey Badabing2003,

Just wanted to say thank you for this amazing PixelFlasher. I just did a November system update. Your program works like a charm!
Incredibly easy now to do a OTA update apply to a rooted Pixel 7.

Greetings,

Rudge79
I basically said the same thing to him yesterday. It really is a great program he designed. Made it so easy to update to the November release.
 
  • Like
Reactions: Skysurfer77

Top Liked Posts

  • There are no posts matching your filters.
  • 12
    So thankful for your tools!

    I might be doing something wrong, but when I try to patch for Apatch for P6P I get the following error:

    ERROR: Encountered an error while patching with APatch
    Traceback (most recent call last):
    File "Main.py", line 4091, in _on_apatch_patch_boot
    File "modules.py", line 2325, in patch_boot_img
    UnboundLocalError: cannot access local variable 'init_boot_img' where it is not associated with a value
    Can you please provide a support file?
    Thanks

    Update:
    I don't need the support file, found the issue.
    Silly mistakes continued :(
    Will push a fix shortly

    Update 2:
    Update fix released.
    12
    New Release:
    Mar 26, 2024 v6.9.0.0 change log:
    • Add support for patching KernelSU LKM (Kernel modules, GKI only). This is in addition to the classic KernelSU support.
    • Add support for patching with APatch
    • Rename Install Magisk to Install Root App as it now supports directly installing KernelSU and Apatch through PixelFlasher.
    • Add Install ZygiskNext module option in Magisk tool options.
    • Use UTF-8 encoding for the logifile instead of ISO-8859-1
    • Miscellaneous minor improvements.
    11
    I see that @Nergal di Cuthah and @humb13 already have it working without any changes, so the assumptions are correct.

    In retrospect, turning off Internet temporarily till the program starts would have solved the issue.
    Appologies my friends.
    10
    Is anyone still having issues?
    I think I know what the issue is.
    If you're still having issues, though I suspect you shouldn't, it's probably because when I pushed my changes, Github actions didn't build the Ubuntu 22.04 build, so I reran them but picked the branch instead of the Tag.
    It looks like it set the version to 0.0.0 because the version is picked up from the Tag.
    And because PF checks on startup if there is an update, and although it should just not find one and continue, I suspect there is a missed exception handler in there, I'll dig into it tomorrow.
    I rebuilt the release from a Tag, so the version should be good now.
    If your current version still doesn't work, download the latest (although if my assumptions are correct, then things should be working now, without you having to do anything)

    Sorry folks for the mishap, take home message is don't release a new version and then head out.
    I'll do full analysis tomorrow.
    10
    New Release:
    Apr 05, 2024 v6.9.1.0 change log:
    • #181 Handle KernelSU new output filename format.
    • #187 register exit menu id for MacOS to OS's "Exit" menu.
    • KernelSU bug fix and improvements.
    • Improved logging to further easy troubleshooting.
    • Update banned kernels list.
    • Update and re-add Magisk zygote64_32 canary with a forked URL.
    • Minor typo corrections and other improvements.
  • 218

    PF_promo-banner_v4.png

    DESCRIPTION

    As the name suggests this is an application to flash (update) Pixelâ„¢ phones (possibly all Googleâ„¢ made phones/tablets, YMMV.)
    PixelFlasher at its core is a UI layer (with bells and whistles) on top of adb / fastboot commands, hence many of its features can be used on non Pixel devices as well. (YMMV).
    The executable is self contained and does not require Pythonâ„¢ to be installed on the system.

    Basic mode: Should suit most users. Some of the features in basic mode are:
    • Simple UI interface, click and go. No more command line, no more placing all files in one directory.
    • boot.img / init_boot.img management UI, select the boot / init_boot file to patch and click the patch button. Fully Automated patching with Magisk (without manual steps) and perform upgrades without losing root.
      No more manually extracting files transferring to the phone, patching / re-flashing and doing multiple reboots.
      No more setting airplane mode and clearing storage to retain Safetynet / Play Integrity passing.
    • Display details of boot.img (or init_boot.img for Pixel 7 or newer devices).
      • SHA1 checksum.
      • Origin (file it was extracted from).
      • Whether it is patched or not, and if it is patched.
        • What version of Magisk was used to patch it.
        • On what device it was patched.
        • Date of patching.
        • The SHA1 of the source boot.img file.
      • Option to Live boot from a choice of boot.img or patched image.
      • Flash just the boot / init_boot image.
    • Choose to keep data or wipe data while flashing (Full OTA flashing always keeps data).
    • Ability to flash even if multiple devices are connected to the computer.
    • Option to flash to inactive slot (Full OTA always flashes to inactive slot).
    • Display information about the phone.
      • ID
      • Hardware model.
      • Device architecture.
      • Current installed firmware (build).
      • If it is rooted with Magisk.
      • Magisk version (Magisk Tools).
      • Magisk Manager version (the app).
      • List installed Magisk modules.
      • Connection mode (Adb | Fastboot | Sideload | Recovery).
      • Bootloader version.
      • Active slot.
      • Android OS API version.
      • Convenient quick links to download Android platform tools or device firmware.
    • Magisk Manager installation UI, screenshot. Supported versions:
      • stable (official)
      • beta (official)
      • canary (official)
      • debug (official)
      • alpha
      • delta
      • special build that disables modules, used to recover from bootloops due to bad module(s) when safe mode does not work.
    • Magisk Backup Manager, screenshot.
      • List all Magisk backups currently on the device.
      • Highlight the one that is backup of the current installed version.
      • Delete backups.
      • Manually add backup from PC.
      • Auto Backup: PixelFlasher figures out what needs to be backed up, and if it finds it on the PC, it creates the backup.
    • Magisk modules management, enable / disable modules selectively, this comes in handy to disable suspect modules before an upgrade screenshot:
      • Name
      • Version
      • Description
      • Enabled / Disabled.
    • Display Android Platform Tools (SDK) version and warn / block if the version is old.
    • Install APK (an app) file from the computer onto the device.
    • Wireless Manager, to wirelessly connect to adb debug or adb wireless with pairing support.
    • Advanced features are hidden to keep the interface simple and easy to follow.
    • Easily open ADB shell to the device.
    • Support for Genymotion Scrcpy to mirror Android devices (video and audio) via USB or over TCP/IP, and allows to control the device with the keyboard and the mouse of the computer.
    • A lot of checks and validations for smooth operation with quite verbose console output to inform about every step of the operation.
    • Automatic check for program updates.
    • Package (Application) Manager, screenshot:
      • Disable (Freeze)
      • Enable
      • Uninstall
      • Install APK
      • Download APK
      • Multi-Select
      • Show Package Details.
      • Add app to Magisk denylist.
    Expert mode: (should only be turned on by experienced users). In addition to the basic features, you get:
    • The ability to flash custom ROM (with or without patching boot / init_boot)
    • Option to flash to both slots.
    • Option to flash to inactive slot.
    • Options to disable verity and or verification.
    • Ability to change the active slot.
    • Ability to live boot to custom boot / init_boot (temporary root).
    • Ability to boot to recovery, fastbootd, safe mode, download mode and sideload.
    • Ability to flash custom image: boot, recovery, radio, kernel, ...
    • Ability to sideload an image.
    • Lock / Unlock bootloader.
    • Option to gain temporary root (good for testing or checking things out).
    • SOS Disable Magisk modules to get out of bootloop.
    • Force option when flashing.
    • Option to skip rebooting.
    • Option to wipe.
    • Partition Manager:
      • Erase single or multi partitions.
      • Dump / create backup of single or multi partitions and save to PC.

    Prerequisites​

    Installation​

    PixelFlasher doesn't have to be installed, just double-click it and it'll start.
    Check the releases section for downloads.

    Supported platforms​

    • Windows
    • MacOSX
    • Linux

    Usage

    Basic Mode

    1. First thing to do is select Androidâ„¢ Platform Tools, if Androidâ„¢ Platform Tools is already in your PATH environment, the application will detect it and pre-populate it.
      Otherwise you'd have to select where it is installed.
      You can download the lastest Androidâ„¢ Platform Tools by clicking the Image of link next to it.
      If you have multiple versions, you can select another version, although it is best to always use the most recent version (The selected version will be identified and displayed).

    2. Hit the Scan button to detect connected devices, the application will detect all connected devices.
      (in adb, fastboot, sideload, recovery modes) and populate the combo box (2).

    3. Select your device from the list in the combo box. The following information about the connected device is displayed.
      • (1st field) Rooted devices will be identified with a checkmark ✓. Note: If you want PixelFlasher to detect root, or automatically use Magisk to patch boot.img, you need to grant root permissions to shell in Magisk.
        Image of shell root access

      • (1st field) Non-Rooted devices will be identified with a ✗.
      • (1st field) Devices in fastboot mode will be identified with a ? (in fastboot mode, root status cannot be determined).
      • (2nd field) (adb), (f.b), (sid) or (rec) to indicate connection mode adb / fastboot / sideload / recovery.
      • (3rd field) Device ID.
      • (4th field) Device hardware.
      • (5th field) Current running firmware (in fastboot mode current firmware cannot be determined).

    4. Next select the full OTA (recommended) or factory zip file (don't unzip), the application will recognize the phone model from the image name and validate the SHA-256 checksum.
      You can download full OTA images from here or clicking the right Image of link next to it. You can also download factory images by clicking the left Image of link next to it.
      Note: Because both firmware package and full OTA are complete images, you can upgrade to any newer version without worrying about jumping versions (downgrades with factory image are possible only with wipe data).

    5. Process the full OTA or factory image. PixelFlasher will extract boot.img (or init_boot.img for Pixel 7 or newer devices) file from the image and populate it in the list below (5).

    6. Select boot.img (or init_boot.img for Pixel 7 or newer devices) from the list, the selected file can be patched (6), or flashed (10).

    7. Optional: Select this option if you want to patch the boot.img (or init_boot.img for Pixel 7 or newer devices) with Magisk. If Magisk is not already installed on your phone, PixelFlasher will install it for you. Your phone does not need to be rooted to create a patched file. This would be the typical choice for monthly updates.
      This option will allow updating the phone without losing root (not even temporarily).
      Note: See note above for granting root permissions to shell.
      Whether the phone is rooted or not, the whole process is without any manual step.

    8. If you want to flash (10) a patched boot.img (or init_boot.img for Pixel 7 or newer devices) select the newly added entry.
      The following details are listed.
      • Image of patched-boot Indicates that the selection is patched.
      • SHA1 is (shortened for display only) sha1 of boot.img (or init_boot.img for Pixel 7 or newer devices)
      • Source SHA1 (shortened for display only) SHA1 of source boot.img extracted from the image (This should be the same as SHA1 of an unpatched boot.img)
      • Package Fingerprint is just the filename portion of the image (without the extension).
      • Patched with Magisk indicates the version of Magisk used to patch the image (if applicable).
      • Patched Method indicates what method PixelFlasher used to create a patch (possible options: root, app, uiautomator, manual)
      • Patched on Device indicates the device model that performed the patching. You should always use patched images that match the model of the device that it will be flashed on.
      • Date is the either the date the boot.img was extracted, or the date it was patched.
      • Package Path indicates the file from which boot.img (or init_boot.img for Pixel 7 or newer devices) was extracted.

    9. Select the Flash Mode, PixelFalsher will automatically select applicable flash mode based on the selected image type.
      • If full OTA imageis selected (recommended) in step 4:
        • Full OTA: Will flash full OTA image in sideload mode. Features of this mode:
          • This will always flash to inactive slot only, (hence why the option to flash to both slots is disabled) similar to how OTA updates happen on the phone.
          • It will always be Keep Data, there is no option for Wipe, hence why the option is disabled.
          • If something goes wrong during flashing, the active slot is unaffected and the phone boots back to active functional slot.
          • If you want to flash to both slots (ie flash twice in a row) then both slots would be bootable.
          • Your phone's bootloader does not have to be unlocked to be able to flash full OTA image (stock boot only).
          • You cannot downgrade with OTA, the version being installed has to be equal or higher.

      • If Factory image is selected in step 4:
        • Keep Data: In this mode -w flag is removed from the flash scripts so that data is not wiped. This is commonly known as dirty flashing.
        • WIPE all data: As the text suggests, this will wipe your data, use it with caution!
          If this mode is selected PixelFlasher will ask for confirmation during the flashing phase.
        • Dry Run: In this mode, the phone will reboot to bootloader, and then mimic the flash actions (i.e. reboot into bootloader) without actually flashing anything (it prints to the console the steps it would have performed if dry run was not chosen).
          This is handy for testing to check if the PixelFlasher properly is able to control fastboot commands.

    10. Optional: Open Magisk Modules Manager and disable (uncheck) modules known to cause issues during upgrades (highly recommended). (The list below has never caused issues for me, so I keep them enabled YMMV).


    11. Flash Pixel Phone This is the final step, to actually flash the phone in the selected Flash Mode.
      Note: Unlike the previous versions of the PixelFlasher, all the options are dynamic, i.e. depending on what you select before clicking the Flash button, there is no more concept of prepared package. PixelFlasher will first present you the selected options and ask for your confirmation if you want to proceed with flashing.

    12. Monitor the console output and observe the performed actions and their outcomes.

    13. In case of trouble, click on **Support** button to generate santized (redacted) support logs archive.

    Expert Mode
    To enable the export mode use the File Menu | Advanced Configuration and select Enable Advanced Options
    Image of PixelFlasher GUI
    Image of PixelFlasher GUI

    In this mode the following additional options are exposed (green bounding boxes), below notes are more for enumeration than a guide, as they should be trivial and obvious to an expert.
    1. Option to Change the Active Slot (the inactive slot is automatically selected).
      Option to reboot to Recovery.

    2. Options to Lock / Unlock bootloader, Option to disable Magisk modules when bootlooping.

    3. Apply Custom ROM. This replaces the factory ROM image with the selected file.
      PixelFlasher extracts boot.img from the ROM image and displays below for selection or patching. Please make sure to read the documentation of the chosen ROM, as each custom ROM instructions could be different.
      To be clear, this is what PixelFlasher does internally when this mode is selected, please understand it, and don't use it if the selected ROM guide does not fit the bill. You've been warned!
      • Keeps stock bootloader and radio images.
      • Replaces the stock ROM image with the selected custom ROM image.
      • Flashes in the chosen Flash Mode just like a stock image, i.e. bootloader, custom ROM and radio images in the original order that they were in the stock firmware.
      • Patching boot.img can be performed if the option is selected. You can select any of the listed boot.img.
      • Flash Mode is similar to basic flash mode described above in step 7.
    4. Custom Flash. select this to switch from flashing a Factory Image to flashing a single file.

    5. Browse to select a a valid image file (.img or .zip). Or select a boot.img from the list above and click on the paste button to paste the selected boot.img into the file selection. Choose the dropdown to select image type.
      • boot (can be flashed to Live or boot) - Expected file type .img
      • bootloader - Expected file type .img
      • dtbo - Expected file type .img
      • product - Expected file type .img
      • radio - Expected file type .img
      • recovery - Expected file type .img
      • super_empty - Expected file type .img
      • system - Expected file type .img
      • system_ext - Expected file type .img
      • system_other - Expected file type .img
      • vbmeta - Expected file type .img
      • vbmeta_system - Expected file type .img
      • vbmeta_vendor - Expected file type .img
      • vendor - Expected file type .img
      • vendor_boot - Expected file type .img
      • vendor_dlkm (the device will be put into fastbootd mode during this operation) - Expected file type .img
      • image - Expected file type .zip
      • SIDELOAD - Expected file type .zip
        Select the appropriate flash options. Note: For Tensor devices (Pixel 6 or newer devices) When Flash to both slots option is selected, Pixelflasher flashes each slot individually to overcome a Google bug that fails with the option --slot=all

    Credits

    • First and foremost Magisk by John Wu which made rooting Pixelâ„¢ phones possible, without it none of this would have mattered.
    • Big thanks to [ryder203], [t-ryder] for his valuable ideas, feedback and testing. Your contributions are very much appreciated.
    • [Homeboy76], [v0latyle] and [roirraW-edor-ehT] at xda for their excellent guides [here, here and here] on Pixelâ„¢ series phones. This program could not have been possible without their easy to follow guides.
      I strongly encourage all beginners to follow those guides rather than use this program, it is important to understand the basic steps involved before diving into one click tools or advanced tasks.
    • Marcel Stör's nodemcu-pyflasher source code which jump started my introduction to wxPython and eventually this program.
    • JackMcKew for pyinstaller Github Actions.
    • Endless counts of xda members and their posts that tirelessly answer questions and share tools. Too many to enumerate.

    Disclaimer

    Code:
    *******************************************************************************
    PLEASE DO YOUR PART AND READ / SEARCH / RESEARCH BEFORE USING THIS PROGRAM
    AND/OR ATTEMPTING ANY MODIFICATIONS ON YOUR DEVICE.
    THIS PROGRAM ASSUMES THAT YOU ALREADY KNOW HOW TO AND HAVE ALREADY UNLOCKED
    YOUR BOOTLOADER, ALREADY ROOTED YOUR DEVICE, AND KNOW HOW TO USE ANDROID SDK
    PLATFORM-TOOLS, ETC.
    THIS TOOL IS SIMPLY MY QUICK WAY OF UPDATING THE FIRMWARE WHILE ROOTED WITH
    MAGISK, WITHOUT LOSING DATA / REQUIRING A WIPE.
    MODIFYING YOUR DEVICE COMES WITH INHERENT RISKS, AND IT'S NOT MY RESPONSIBILITY
    IF YOU LOSE YOUR DATA OR BRICK YOUR DEVICE. THE TOOL I SHARE HAVE WORKED FOR ME,
    BUT THAT DOESN'T MEAN THAT YOU MAY NOT RUN INTO PROBLEMS. **BACKUP YOUR DATA.**
    *******************************************************************************

    No Donation
    I've been asked quite few times about donation, (here, here ... just to list a few).
    I'll put it here so that my stance is clear.
    This program will remain totally free, ad free, even donation free, it's my way to give a little back to the community that has given me years of support and joy.

    You can contribute by helping the next newcomer to learn the ropes and navigate through the maze of information.
    25
    UI Workflow for building / editing / testing pif.json from your PC

    If you are already setup, here's a quick and easy way to get operational.

    1. Click on Get Xiaomi Pif: First we want to get Xiaomi.pif because we expect their latest to be functional, hence we will use it to validate our setup.
    2. Click on Smart Paste Up button, this will:
      • Automatically sets the First API to 25 if it is not set, otherwise keeps the value.
      • Automatically reprocesses the output window content, to meet module / version requirements.
      • Automatically pastes the processed data into Active Pif window.
      • If Auto Update pif.json is checked:
        • Updates the correct pif.json on the device.
        • Kills the unstable GMS.
        • Runs Play Integrity Check if Auto Check Play Integrity is selected.
    3. Click on Update pif.json button if automatic options are not selected in the previous step.
    4. Select the test method and click on Play Integrity Check button to run the test (you can do this on the device if you want to skip doing it in PixelFlasher)
    5. If the test passes, click on Favorite button (the heart) to save the print in your favorites.
    6. If the test passed, you're ready to proceed on finding a random print from @TheFreeman193 collection.
      • Click on Get TheFreeman193 Random Pif button
      • Repeat steps 2 to 5
      • Rinse and repeat if the print fails, about 8-10% of TheFreeman193 prints should pass.


    If this is your initial setup, see below.
    Updated workflow for PixelFlasher v6.4.0.0 or Newer
    • First and foremost, read and understand the excellent guide @osm0sis has provided here, this is a pre-requisite to know what you need to do, where to find such build.prop and which ones are good to grab.

    • If you're very green at this, please also read beginner friendly guide written by @simplepinoi177 here.

    • The following thread by @V0latyle explains the history of Play Integrity and what it is about.

    • Download PixelFlasher 6.4.0.0 or newer from the main thread here at XDA or from Github (it is a single executable)
      Even though the name bears Pixel in it, the tools is just a UI layer on top of adb / fastboot commands, you can use it with any phone that supports Platform tools.

    • Play Integrity Fix Module by @osm0sis or by @chiteroman
      If you don't already have the module, you can install it from within PixelFlasher, otherwise just skip over step 4
      1. Click on the Browse button and select where platform tools is installed on your system.

      2. Connect your phone to the PC and hit the Scan button to find your phone.

      3. Select your phone from the list of devices.
        Obviously your phone must be rooted, but if PF does not detect that your phone is rooted, it's probably because you haven't granted su permissions to shell.
        See this note (step 3 bullet 1).

      4. Hit the Magisk Management button (Skip this step if you already have the module installed)
        1. Click on Install Pif Module.
        2. Select the module of your choice, the latest version of the module will be downloaded and installed on your device.
        3. Click on OK button to close the dialog
        4. Click on Reboot System button on the toolbar to reboot the phone.

      5. Hit the Pif Manager button
        • First time use, you will have Active Pif pane empty indicating that pif.json file is non-existent yet on the device.


        • Click on the Process build.prop(s), to navigate and select the donor build.prop files., multi-select is supported and order of precedence is as follows:
          • build.prop
          • system-build.prop
          • system.prop
          • product-build.prop
          • product.prop
          • vendor-build.prop
          • vendor.prop
          • Any other prop file.
            This will output json file into the console.

        • The output window will be populated with result of processing the props. (Note that the illustrated example is already banned, don't waste your time using it)


        • The paste button will be enabled, click on it to transfer the contents to the Active Pif window

          Create pif.json button will be enabled, and the red exclamation is an indictor that the contents of the Active Pif window is not the same as the contents on the device.

        • Click on the Create pif.json button to push the contents into device which should create the file.

          The change indicator should turn gray, meaning that both device and the Active Pif window are in sync.

        • Select the application you want to use for testing your print. One of:
          • Play Integrity API Checker (Needs to be pre-installed from Play Store)
          • Simple Play Integrity Checker (Needs to be pre-installed from Play Store)
          • TB Checker (Needs to be pre-installed from Play Store)
          • Play Store (Play store developer options need to be enabled prior to use)

        • Click on Play Integrity Check button to see if you got a good print.
          The result should be displayed in the Output window.

        • Click on the heart if you would like to save the current Active pif into your favorites.


          A dialog will appear to label the pif.


          The heart would turn red indicating the the current pif is saved in your favorites, the combo box will show the label you assigned.


          Clicking on the red heart again will remove the pif from your favorites and the heart will turn gray.
    Additional Notes:
    • Update pif.json button will push the Active Pif window contents to the device, if the button is disabled, it means that the contents is not a valid json.
    • You can paste json5 compatible contents into the Active Pif window, the pushed to device will always be converted to normal json.
    • Reload pif.json button will grab the pif from the device and replace the contents of Active Pif window with it.
    • Auto Update pif.json button is only applicable to Process build.props(s), it will automatically update the device with the result of the props processing without the need to press Paste or Update pif.json buttons
    • Auto Check Play Integrity button applies to updates, anytime a new content is pushed to the device, the Play Integrity Test is triggered.
    • Get Xiaomi Pif, gets the latest pif used by Xiaomi.eu, it's here to bootstrat beginners, it is hightly recommended that you find your own print for longevity.
    • Get TheFreeman193 Random Pif, gets a random pif from @TheFreeman193 curated prints using his original randomization login, all, credits to him.
    ,
    The below workflow is for PixelFlasher v6.3.3.0 or older
    UI Workflow for building / editing / testing pif.json from your PC
    • First and foremost, read and understand the excellent guide @osm0sis has provided here, this is a pre-requisite to know what you need to do, where to find such build.prop and which ones are good to grab.

    • Download PixelFlasher from the main thread here at XDA or from Github (it is a single executable)
      Even though the name bears Pixel in it, the tools is just a UI layer on top of adb / fastboot commands, you can use it with any phone that supports Platform tools.
      1702513958354.png
      1. Click on the Browse button and select where platform tools is installed on your system.

      2. Connect your phone to the PC and hit the Scan button to find your phone.

      3. Select your phone from the list of devices.
        Obviously your phone must be rooted, but if PF does not detect that your phone is rooted, it's probably because you haven't granted su permissions to shell.
        See this note (step 3 bullet 1).

      4. Hit the Magisk Management button

      1702514002604.png
      1. First select the application you want to use for testing your print. One of:
        • Play Integrity API Checker (Needs to be pre-installed from Play Store)
        • Simple Play Integrity Checker (Needs to be pre-installed from Play Store)
        • TB Checker (Needs to be pre-installed from Play Store)
        • Play Store (Play store developer options need to be enabled prior to use)

      2. Click on the Process build.prop(s), to navigate and select the donor build.prop files., multi-select is supported and order of precedence is as follows:
        • build.prop
        • system-build.prop
        • system.prop
        • product-build.prop
        • product.prop
        • vendor-build.prop
        • vendor.prop
        • Any other prop file.
          This will output json file into the console.

      3. If you select any of the following options, automatic actions will be taken (depending on what options you choose, steps 4, 5 could be skipped)
        • Auto Copy to Clipboard: will automatically copy the output json into clipboard.
        • Auto Push pif.json: will automatically push the output json to your device, respecting the modules pif.json / custom.pif.json location, and will kill the GMS process, so that you don't need to reboot to test the new print.
        • Auto Check Play Integrity: Will automatically trigger the selected test (equivalent of pressing #5).

      4. Hit the Edit pif.json button to edit the file on your phone, and paste what you got from step 2. (When you save, it will kill the gms process so that you don't have to reboot) This is preferable over automatic options because you have the chance to add / remove / change keys or values, finding the right working set is trial and error.

      5. Click on Play Integrity Check button to see if you got a good print.

      6. If not, repeat steps 1-5 with another build.prop, until you find a good donor print.
    Good luck
    21
    Latest Release:
    Apr 14, 2024 v6.9.2.0 change log:
    • Add a new experimental feature to downgrade without a wipe and potentially switch from Beta to Stable without a wipe (untested).
      Credit to @tbalden for the discovery and @capntrips for the details of the process.
    • Select any img file and get additional image info.
    • #190 fix, scrcpy launch improvement.
    • Improved Menu to disabled advanced features when it's not enabled in the settings. (Previously only other GUI elements were hidden or disabled).
    • If KernelSU or APatch is installed, report their version as part of device details.
    • Improved logging.
    • Improved santization.
    • Other minor improvements and added stability.


    Older Releases:
    Apr 09, 2024 v6.9.1.3 change log:
    • Fix regression introduced when refactoring code in KernelSU Patching.
    • #187 On MacOS, move the exit menu into PixelFlasher's file menu from the OS's native Exit menu.
    Apr 06, 2024 v6.9.1.2 change log:
    • #185 Further improvements for ADB shell on MacOS
    • Initial work to override KMI when patching with KernelSU
    • Typo fix.
    Apr 05, 2024 v6.9.1.0 change log:
    • #181 Handle KernelSU new output filename format.
    • #187 register exit menu id for MacOS to OS's "Exit" menu.
    • KernelSU bug fix and improvements.
    • Improved logging to further easy troubleshooting.
    • Update banned kernels list.
    • Update and re-add Magisk zygote64_32 canary with a forked URL.
    • Minor typo corrections and other improvements.
    Mar 27, 2024 v6.9.0.2 change log:
    • When patching with APatch, handle devices that don't have init_boot.
    Mar 26, 2024 v6.9.0.1 change log.
    • Bugfix #179 silly mistake with the filename in APatch patching.
    Mar 26, 2024 v6.9.0.0 change log:
    • Add support for patching KernelSU LKM (Kernel modules, GKI only). This is in addition to the classic KernelSU support.
    • Add support for patching with APatch
    • Rename Install Magisk to Install Root App as it now supports directly installing KernelSU and Apatch through PixelFlasher.
    • Add Install ZygiskNext module option in Magisk tool options.
    • Use UTF-8 encoding for the logifile instead of ISO-8859-1
    • Miscellaneous minor improvements.
    Mar 19, 2024 v6.8.4.0 change log:
    • When patching with KernelSu on devices that have init_boot partition, patch boot partition, not init_boot.
    • Added Dev Tools | keybox.xml validity checker (credit to @hldr4)
    • Extra Img Extraction setting now additionally extracts dtbo, vendor_boot, vendor_kernel_boot, super_empty (useful for some ROMs).
    • When custom patching, Paste button will automatically paste the path to the (extra) image type selected.
    • Improved logging.
    Mar 11, 2024 v6.8.3.0 change log:
    • Fix MacOS builds, we're finally back to buiding with MacOS 11 (fingers cross it lasts).
    • If internet is not available, do not try to build a menu with Google Devices.
    Mar 03, 2024 v6.8.2.1 change log:
    • Bundle in the executable the missing files android_version.json and android_devices.json otherwise patching with KernelSU won't detect your Pixel as Pixel device.
    • Add back Magisk Alpha install option, thanks to pull request from @hldr4
    • Make Magisk install window resizable.
    • Add right click option on the selected Magisk to download in case you just want it downloaded and not installed.
    • Update all old forum.xda-developers.com links to xdaforums.com
    • Make Pif Manager work without a device being connected (obviously for props / pifs management and not for updating / testing pifs).
    • Typo fixes and other minor improvements.
    Feb 29, 2024 v6.8.1.0 change log:
    • Update Xiaomi apk download function to handle exceptions and work with the latest version.
    • #160 Update readme to add pre-requisites for MacOS and Windows platforms.
    • #161 Auto detect file encoding before opening a file.
    • Don't check for Magisk path if in recovery mode.
    • Misc. bug fixes and improvements.
    Feb 17, 2024 v6.8.0.4 change log:
    • Use MacOS 13 to build with Github actions instead of MacOS 11, sorry to folks who use older MacOS, unless I get it to build it successfully on Github, MacOS 13 will have to do.
    • #158 Fix the App version.
    Note: The following versions have identical code 6.8.0.0, 6.8.0.1, 6.8.0.2, 6.8.0.3, 6.8.0.4, the differences are in Github actions.

    Feb 16, 2024 v6.8.0.3 change log:
    • Added untested support for patching with KernelSU for Pixel phones. Patching with APatch is in the works.
    • Detect known blacklisted kernel names, and notify the user. (list is current as of this release date).
    • Rename the SOS button to reflect that the modules would be removed instead of being disabled.
    • Removed bulk install APK feature which installed all APKs in a directory, instead reworked the Install APK feature to allow user choice multi-select, and added another option Bypass low target SDK block.
    • Report device Kernel and KMI.
    • Added Android Platform Tools 34.0.4 to known problematic versions list, which when detected warns the user.
    • Improved Pixel Watch flashing dialog messages.
    • New feature: #152 Show System Apps and Show 3rd Party Apps in Package Manager.
    • Bug Fix: #157 'PifManager' object has no attribute 'first_api' in some situations.
    • Bug Fix: scrcpy download link was not working.
    • Support for upcoming PlayIntegrity Fork v8 changes by @osm0sis.
    • Added Special Magisk 27001 install option when selecting Magisk install. (This is similar to Special Magisk 26401, just a version difference).
    • Support for SSL error fallback for all https requests (previously was only for PIF downloads).
    • Improved factory / image downloading with lower memory footprint.
    • Miscellaneous minor bug fixes and enhancements.
    Jan 29, 2024 v6.7.1.0 change log:
    • Added an checkbox in Pif Manager. Keep All Keys which allows any unrecognized key to be kept in the json file when using smart paste. This allows support for future keys that could be added but are unrecognized today. (Example: KERNEL)
    • Added Cleanup DG but in Pif Manager to clean up Droidguard cached files. Helps in some situations.
    • Miscellaneous small improvements.
    Jan 20, 2024 v6.7.0.0 change log:
    • Added history to device image selection (Max 16)
    • #133 Fix for Get Xiaomi.eu print when version_class is missing.
    • Improved device state detection with retry attempts.
    • Updated 7zip binaries to v23.01
    • Added line numbers to Active Pif window and Output Console window, along with an option to sort FP keys for easy visual comparison.
    • Pixel watches require user intervention after flashing OTA, added popup messages to guide the user for the next steps.
    • You can now easily save the Active Pif content into a pif json file (filename automatically build from print information, however user can change before saving)
    • Keep splash screen visible until the main window shows up.
    • Under the hood improvements and bug fixes, improved logging and refactoring code.
    Jan 10, 2024 v6.6.1.0 change log:
    • Changed PixelFlasher icons to dark icon (artwork provided by @T-Ryder).
    • Potential fix for #144, when getting firmware / ota download links, fallback to ignore ssl errors, if ssl errors are encountered.
    • Add ssl verify ignore fallback to any download (also display warning).
    • Add button in Pif Manager to convert key=value format (similar to env or older .prop format) to json format.
    • Device Info now gets props as root if the device is rooted.
    • Miscellaneous minor fixes and improvements.
    Jan08, 2024 v6.6.0.1 change log:
    • Bug Fix: Toolbar menus were interfering with the download menus and triggering a download when toolbar was modified.
    Jan 07, 2024 v6.6.0.0 change log:
    • New Feature: Download any Google device firmware or full OTA directly in PixelFlasher.
    • Automatic detection and notification if an update is available for the selected device.
    • New feature: Cancel / reset OTA update pushed by Google (need to be used prior to a reboot). Binary graciously provided by @capntrips.
    • Removed outdated links from help menu.
      • kdrag0n's safetynet-fix
      • Displax's safetynet-fix
    • Added new links to the help menu
      • osm0sis's PlayIntegrityFork
      • chiteroman's PlayIntegrityFix
      • TheFreeman193's Play Integrity Fix Props Collection
      • Full OTA Images for Pixel Phones / Tablets
      • Factory Images for Pixel Phones / Tablets
      • Full OTA Images for Pixel Watches
      • Factory Images for Pixel Watches
      • Full OTA Images for Pixel Beta 14
      • Factory Images for Pixel Beta 14
    • Enable Magisk Kitsune patch creation using Magisk core component (previously disabled due to incompatibility and patches were only created using the manager).
    • Miscellaneous improvements, bug fixes and code refactoring.
    Dec 30, 2023 v6.5.3.1 change log:
    • FORCEABI="arm64-v8a,armeabi-v7a,armeabi" on newer phones.
    • Fix remebered PI Selection option not properly enforced.
    • Revert to using monkey to launch the Play Integrity apps (more reliable).
    Dec 30, 2023 v6.5.3.0 change log:
    • Added Smart Paste Up to simplify getting operational for beginners.
      • It automatically sets the First API to 25 if it is not set, otherwise keeps the value.
      • It automatically reprocesses the output window content, to meet module / version requirements.
      • It automatically pastes the processed data into Active Pif window
      • If Auto Update pif.json is checked.
        • Updates the correct pif.json on the device.
        • Kills the unstable GMS.
        • Runs Play Integrity Check if Auto Check Play Integrity is selected.
    • Updated screenshot for the guide.
    Dec 30, 2023 v6.5.2.0 change log:
    • Pif Manager option to Force First API to 25 (some prints like Xiaomi.eu are missing the value and that would cause newer devices to fail Device Integrity).
    • Pif Manager options are now saved so that each time you open Pif Manager, the last settings are loaded.
    • Bug Fix: Enable checkboxes in Magisk Modules.
    • In Magisk Modules, add VersionCode column.
    • Better positioning of Pif Manager with respect to the parent window.
    Dec 29, 2023 v6.5.1.1
    • Support for PlayIntegrityFix 15.1 added keys.
    • Improved auto-fill (from device) missing fields.
    Dec 29, 2023 v6.5.1.0
    • Added Bulk Reprocess json file(s) (detects module flavor / version and outputs compatible format, similar to previously included Reprocess Pif feature which only applied to the Active Pif).
    • Get donor device's Pif print, now outputs @osm0sis v5 fork format print (needless to say, donor device must be connected).
    • Adding to Pif favorites now auto-fills the label with device brand and device model.
    • Other minor improvements.
    Dec 26, 2023 v6.5.0.0
    • Retry downloading with disabled SSL certificate verification if SSL error is encountered during TheFreeman193 pifs download. Print an alert to warn the user.
    • Added testing with YASNAC
    • Display a warning toast during Play Integrity test, when the Active Pif window content is not in sync with the device's pif.json.
    • Added Paste Down button to transfer the contents of Active Pif to Output Console (useful for reprocessing a pif.json.
    • Added Reprocess button to reprocess and produce pif.json compatible with the installed module version. Useful when different versions of modules require / depend on different fields / props. (Note: this is compatible with @osm0sis modules, @chiteroman modules change often and it's hard to keep up, I've done my best to keep compatibility with some of those versions).
    • Fill in missing build fields from fingerprint or vice versa.
    • Added an option to add missing fields with values from running phone (not the donor print)
    • Added an option to point to a directory full of json files and import them to favorites.
    • Added an option to disable UIAutomator (useful for devices that have a buggy UIAutomator). coords.json file can be manually created to run the automated tests. See #137
    • Did some code refactoring.
    Dec 23, 2023 v6.4.2.0
    • New feature: Label and save your working pifs into your favorites and load them quickly from a combo box.
    • Added Get TheFreeman193 Random Pif, credit to @TheFreeman193 for the print supplies and the original logic of randomization based on device architecture.
    • Other minor improvements.
    Dec 23, 2023 v6.4.1.0 release
    • Added Get xiaomi.eu pif, use it only if you don't manage to find working print, strongly recommended not to rely on it.
      • Support for caching of xiaomi.eu pif to avoid unnecessary downloads and processing.
      • All done in Python, hence no dependency on apktool or Java.
    • Support for @osm0sis native props.
    • Minor UI improvements.
    Dec 21, 2023 v6.4.0.0 release
    • A new resizable Pif Manager dialog decoupled from Magisk dialog.
      Pif Manager new features:
      • Two pane window, top pane always showing the active loaded pif.json (if one is present, it is automatically loaded), bottom pane showing the output of processing props or Play Integrity testing.
      • Easy to use paste button to paste the output of the processed props into active pif.
      • Real time json validation (input is handled as json5 to allow json5 formatting / commenting, however the saving to device is done in regular json to keep it backward compatible.
      • Pushing to device is disabled if the contents are not a valid json.
      • If you make changes to local active pif, an indicator will reflect that changes need to be pushed.
      • Reload pif.json which reloads from device and discards what is in active pif window.
      • Few other features and improvements in in the works.
    • #129 Resizable and scrollable settings dialog for smaller display resolution devices.
    • Improved Magisk manager.
    • Pif install modules allows you to select @osm0sis or @chiteroman module.
    • New forward looking feature to dump selected device's entire props as json.
    • Completely reworked device property handling, to make it future proof and extensible.
    • Improved device detection between reboots of various modes.
    • Dark splash screen, thanks to @T-Ryder for the artwork.
    • #131 Disable Magisk denylist for Magisk delta, which is not compatible with official Magisk.
    • Miscellaneous fixes and improvements.
    Dec 09, 2023 v6.3.3.0 release
    • When selecting build.prop to generate pif.json, you can now do multi-select, PixelFlasher will process them in a priority order based on the filename. build.prop being the highest priority.
    • Added Auto Copy to Clipboard which automatically copies the generated pif.json content to clipboard.
    • Added Auto Push pif.json which automatically pushes the file to the device and kills GMS process (after generated build.props processing).
    • Added Auto Check Play Integrity which automatically triggers the selected Play Integrity checker after editing or auto-pushing pif.json.
    Dec 09, 2023 v6.3.2.1 release
    • Add VNDK_VERSION to pif print
    • Bug fix: add the missing comma in the generated pif.json.
    Dec 08, 2023 v6.3.2.0 release
    • Added Dump Screen XML (uiautomator).
    • With SPIC and Play Integrity Api Checker apps, when they hit quota limits, detect and report.
    • Added Playintegrity testing using Play Store (Developer options need to be enabled. First run takes longer as PixelFlasher tries to find the coordinates of the elements).
    • Added a setting to disable Firmware / OTA image hash validation, useful for firmware images that are for Pixel devices (example CalyxOS) but don't follow Google's naming convention.
    • Detect and report cases where a device rebooted into bootloader mode is not detected by the PC, provide suggestion on how to fix / continue.
    • Make the Magisk management window resizable and remember and load last size on startup.
    • Support for older Pif modules PROPS-v2.1 and PROPS-v2.0 as they store pif.json in a different location.
    • Improve pif.json extraction by detecting and using (if need be) ro.product.vendor.name ro.product.vendor.device ro.product.vendor.manufacturer ro.product.vendor.brand ro.product.vendor.model ro.vendor.build.fingerprint ro.vendor.build.security_patch
    • add pif print BUILD_ID extraction.
    • Other minor improvements.
    Dec 02, 2023 v6.3.1.0 release
    • When processing build.prop extract values from ro.system.* and ro.product.product.* if ro.product.* values are not found, just like @osm0sis script does.
    • Bug Fix: On Linux, set permissions to readable before attempting pull.
    Dec 02, 2023 v6.3.0.4 release
    • Support for @osm0sis Play Integrity Fork which uses a different path for the print file: /data/adb/modules/playintegrityfix/custom.pif.json
    Dec 02, 2023 v6.3.0.3 release
    • Make Magisk dialog resizable
    • Add support for PlayIntegrityFix-resetprop
    Dec 01, 2023 v6.3.0.2 release
    • Add debug message for module troubleshooting.
    • Handle unpdateJson entry for modules on Linux / Mac
    Nov 30, 2023 v6.3.0.1 release
    • Update pif.json editing to use the one in /data/adb/pif.json, Playintegrityfix changed the location in version 14.0 beta
    • Bug Fix: #125, handle exception when a module's update link is broken.
    • Other silly oversight bug fixes.

    Nov 29, 2023 v6.3.0.0 release
    • New feature: Process build.prop, browse for the build.prop and it will extract PIF relevant fields, no fancy checking of dates or anything, if it is in there it will extract the values.
    • Added Magisk module uninstall / restore functionality.
    • Added PlayIntegrity API checking, can use one (or more) of the three apps from Playstore (user has to install the app)
    • pif.json editing automatically kills the com.google.android.gms.unstable process, no need to reboot.
    • Magisk Management UI improvements
    • Bug fixes and improvements
    Nov 27, 2023 v6.2.1.2 release
    • Added Magisk delta (Kitsune) canary and debug install options.
    • Removed Magisk zygote64_32* installers as the links are broken.
    • Workaround for the broken Magisk canary release notes link in canary.json.
    Nov 26, 2023 v6.2.1.1 release
    • Show Magisk application / root versions in the Magisk UI.
    • Disable Push file menu when a device is not selected
    • Disable Bulk Install menu when a device is not selected
    • Bug Fix: When opening a windows explorer to Working directory, handle space characters in the path.
    Nov 26, 2023 v6.2.1.0 release
    • New feature: Added Bulk apk install capability. Point to a directory where the apk files are and all of those would be installed.
    • New feature: Extract current device's Pif print.
    • New feature: Push a file to /data/local/tmp
    • New feature: Push a file to /sdcard/Download
    • New feature: Kill Google GMS (for testing different pif.json files without needing a reboot)
    • Updated pip.prop editing to pif.json (with syntax coloring).
    • Option to create pif.json if one is missing.
    • Miscellaneous improvements.
    Nov 22, 2023 v6.2.0.0 release
    • Added Magisk module update detection and updating.
    • Add button to install Play Integrity Fix module by @chiteroman
    • Added gui to pull / edit and push pif.prop file. (If there is interest I will add the ability to pull pif.prop values from system, using @osm0sis script)
    • Added Systemless Hosts module install button.
    • Maintain a list of unlocked bootloaders in memory to skip over extra unlock checks.
    • #121 Removed Delta Magisk from Magisk Install options (update json no longer published).
    • Removed the functionality that automatically finds and adds platform tools from the system, it is now required to select the desired platform tools.
    • Bug fixes and improvements.
    Nov 18, 2023 v6.1.0.0 release
    • Renamed Magisk Modules button to Magisk as it now offers additional settings management.
    • Add features to manage Magisk settings through PixelFlasher. Needed for Pixel watches, as Magisk Manager app is not watch friendly.
      Features available so far:
      • Enable / disable Magisk modules
      • Install Magisk module.
      • Enable / disable Zygisk
      • Enable / disable Magisk denylist
      • Add / remove application to Magisk denylist
      • Grant / deny / SU permissions to an app, with control of: screenshot
        • Enable / disable notifications
        • Enable / disable logging
        • Grant until (Forever, 10 min, 20 min, 30 min, 60 min)
      • Revoke SU permissions
    • Added Pixel watches to the devices list to provide additional details when a Pixel watch is selected.
    • Added icons to the popup menu in App Manager. screenshot
    • Factory / OTA download link is now a single button with a dropdown list of:
      • Full OTA Images for Nexus and Pixel Devices
      • Factory Images for Nexus and Pixel Devices
      • Full OTA Images for Google Pixel Watch Devices
      • Factory Images for Google Pixel Watch Devices
    Nov 16, 2023 v6.0.2.0 release
    • Removed Magisk alpha from Install Magisk module (update link is broken).
    • Added Special Magisk build based on versionCode 26401 that disables loading modules but keeps root, to help getting out of bootloop due to bad modules.
    • Bug Fix: #117 check for disk flag finally working correctly.
    • Bug Fix: #118 add wrap boot path in quotation marks.
    • With dry run selected, don't attempt to flash the patch file.
    • Block patch flashing if bootloader is locked.
    • Add settings option to bypass block flashing if bootloader is locked.
    • Added more debug messages on failures to further ease the troubleshooting efforts.
    Nov 15, 2023 v6.0.1.3 release
    • Cleanup temporary created files when using low memory option.
    • Don't wait for device to be available in adb when wipe option is selected. (The user would need to setup the phone for the first time, enable developer options and enable debug, which could take a while)
    • Add more debug messages for troubleshooting.
    Nov 15, 2023 v6.0.1.2 release
    • #117 psutil is not reporting free storage correctly on Linux platform, use shutil module instead.
    • Print available memory when processing Image.
    Nov 14, 2023 v6.0.1.1 release
    • Bug fix: Make sure Low memory settings are loaded at startup.
    • After flashing factory or OTA, on last reboot to system, increase the wait from 60 to 90 seconds to make sure the device loads all the way to system and does not timeout PF. Although the error message is benign, it creates unnecessary anxiety seeing an error message in the console and thinking that something is wrong.
    • Bug fix: Available storage was not computed correctly on Linux platform.
    • Fix and speed up MacOS platform build.
    Nov 13, 2023 v6.0.1.0 release
    • Added settings option to enable / disable free storage space check.
    • Improve storage check to follow symlinks and return the partition free space where the data resides instead of where the symbolic links resides.
    • Added command line support for specifying PixelFlasher config json file, use -c or --config flag followed by full file path of configuration json file.
    • Added command line --console (only useful on Linux / Mac) to display all PixelFlasher output to console, useful when troubleshooting.
    • Further improved handling of large file extraction on low memory computers.
    Nov 12, 2023 v6.0.0.0 release
    • More verbose logging and additional debug messages for troubleshooting.
    • Renamed the Verbose label to Debug.
    • Improve UI responsiveness when running background tasks.
    • Automatically detect vbmeta state for both slots, and warn if the selection would have wipe implications (this is for verity / verification disabling).
    • Removed Check Verity button, (verity / verification), replaced with vbmeta state reporting for both slots as part of device details.
    • Show Bootloader version as part of device details.
    • Show slot related details such as slot-retry-count, slot-unbootable, slot-successful as part of device details.
    • Added Reboot to Sideload option.
    • Graphical display of device's slot and root status.
    • In most cases long background processes are automatically killed with proper timeouts (when possible) and reported to unfreeze PixelFlasher.
    • Reworked device detection / update / refresh, reboots, PixelFlasher now automatically detects device state changes and waits exactly the time until the device state changes to the expected state. Less dependency on arbitrary timeouts.
    • Improved support logs sanitization.
    • Detect free space on the computer and block flashing if less than 5G of storage is available.
    • Refactor flashing function.
    • More response console widget log messages.
    • Detect currently installed OS version and block flashing older OTA (Android by default allows flashing but fails to boot).
    • Detect, warn and block flashing if bootloader is locked for flashes that require bootloader to be unlocked.
    • Added wipe option for custom flashing to easily wipe the phone when flashing vbmeta to disable verity / verification.
    • Report if the device is unlockable.
    • Bug fixes, lots of changes under the hood and miscellaneous improvements.
    • Added option to delete specified libraries from the PixelFlasher bundle, to let the system library be loaded instead. Needed for newer OSes that require updated libraries. See Symbol Lookup Error #109, and After a large system update (manjaro), do not work now. #111
    • Additional support for Scrcpy of non-Windows platforms.
    • Updated XDA links
    Oct 18, 2023 v5.8.2.0 release
    • Added `Wipe` option (only available in custom flashing), this will wipe userdata after flashing, required for first time vbmeta verification disabling.
    • Added validation checks to make sure A and B slot vbmeta verity / verification states match.
    • Added a warning when toggling `Disable Verification` to inform about the the potential wipe implications.
    • Display both slots verity / verification states when displaying device details.
    • Extract vbmeta.img if found to easily select it for patching.
    • Improved paste button which now dynamically selects what to paste based on the custom flash option selection.
    Oct 11, 2023 v5.8.1.0 release
    • Added data for Pixel 8, Pixel 8 Pro
    • Build workflow update, sha256 checksums are now published along the binaries.
    Oct 06, 2023 v5.8.0.3 release
    • Improved debug messages for troubleshooting.
    Sep 26, 2023 v5.8.0.2 release
    • Bug Fix: Initialize a variable when flashing Magisk_zygote64_32
    Sep 24, 2023 v5.8.0.1 release
    • Bug fix: #99 Settings not opening on linux/arch based distro
    Sep 19, 2023 v5.8.0.0 release
    • Added support for scrcpy (Screen Copy), you can now launch scrcpy to the attached device, configuration is done in the main settings window.
    • Completely redid the wireless connection, there is now wireless manager, that shows history, status and quick selection from history, and supports wireless debugging which requires pairing and is the only option for newer OS-es.
    • For crDroid and other non Pixel firmware automatically set to Full OTA mode (ie sideload) if payload.bin is detected.
    • Added a button to reboot to userspace fastboot (fastbootd).
    • Added system menu to be able to move, resize, minimize, maximize. (useful when the window is of the screen)
    • When extracting from payload.bin, optionally also extract (if available) dtbo.img, super_empty.img, vendor_boot.img, vender_kernel_boot.img in addition to boot.img and init_boot.img (configurable in the settings), as some of these images are needed for 3rd party firmware flashing.
    • On Linux, display a message when terminal app is not set and open shell feature is used.
    • For Samsung devices, when creating a tar file of a patched boot, use POSIX tar format.
    • Miscellaneous fixes and improvements.
    Aug 15, 2023 v5.7.2.0 release
    • Regression Bug fix: Refresh UI to display / hide flash options after changing advanced settings.
    • Use Python 3.11 instead of 3.10
    Aug 13, 2023 v5.7.1.0 release
    • Print available memory when starting PixelFlasher.
    • Option to sacrifice speed in favor of using less memory (used when processing large firmware files, turn it on only if you run into out of memory errors).
    Aug 09, 2023 v5.7.0.0 release
    • Rework the settings window: code refactoring and bug fixes.
    • Bug Fix: In some cases log files were not saved.
    • Bug Fix: Custom font size changes were not always applied.
    • When getting device details, get battery details.
    • Don't set ASH_STANDALONE=1 when using busybox, it encounters selinux related issue.
    • Extra check to make sure the created patch is not zero bytes long.
    Aug 07, 2023 v5.6.0.0 release
    • Added configurable toolbar.
    • Added device controls buttons to the menu.
    • Added feature to Magisk Manager, ability to install modules from the PC.
    • After flashing OTA, detect if the slot switched as expected, if it didn't, skip patched boot flashing (if selected).
    • Added feature to Package Manager to be able to manage (add, remove, list) Magisk denylist.
    • Added export csv formatted package list feature.
    • When sanitizing DB, wipe write-ahead logs (WAL) for better privacy.
    • Under the hood optimizations.
    • Verity / Verification status check.
    • Counter in package manager.
    • Added a quick link to Android security and update bulletins.
    July 16, 2023 v5.5.1.1 release
    • #84, further UI improvements for smaller screens.
    • Better dark mode handling for MacOS and Linux.
    • #86, improved handling of space characters in paths.
    July 14, 2023 v5.5.1.0 release
    • Bug fix #85 Can't enable/disable Advanced option in v5.5.0
    • A little improvement #84 UI elements not optimized for monitors with low screen resolution
    July 13, 2023 v5.5.0.0 release
    • Added a patch method Other Magisk App to be able to select any Magisk apk and use it to create a patch without installing Magisk, handy when a patch needs to be created with an older version of Magisk (in case the current version has issues) and Magisk daemon gets in the way and replaces the older version with a stub.
    • UI improvements
    • Added Kill Application in Package Manager.
    • Added Clear Application Data in Package Manager.
    • Now that Full OTA flashing is the preferred method, added a direct link to the device's full OTA download page from Google.
    • While flashing, disable the Flash Pixel Phone button to avoid accidental clicking.
    • Improved root detection.
    • Bug fixes and other improvements.
    July 03, 2023 v5.4.0.0 release
    • Add Pixel Fold (Felix)
    • Add sorting capability to boot list.
    • Add warning about Magisk a8c4a33e:26103
    • Improved auto-resize of boot columns.
    • Improved internal DB management.
    • Handle beta or similar words in the firmware name to not trigger hardware mismatch warning.
    • Improved tracking the origin of a patched image.
    • Display Kernel version as part of device details
    • Refresh package manager list when packages are updated to reflect the changes.
    • Miscellaneous other improvements.
    • Update Readme.
    June 23, 2023 v5.3.3.0 release
    • #79 Bug-fix: Package Manager column stays unsorted when filtered.
    • Warn users that extract the contents of firmware and use the image inside as firmware, which is no good.
    • Warn users of Android Platform-Tools 34.0.3 about potential issues and suggest using 33.0.3
    • Package manager bug fixes and improvements.
    June 21, 2023 v5.3.2.0 release
    • Added support for Pixel tablet (tangorpro).
      For future devices, fixed a bug to auto detect init_boot partition and flash init_boot instead of boot even if the device is newer than the PixelFlasher and is not in PixelFlasher's list.
    • Disable Patch buttons if device is not in adb mode.
    • Reboot to system after lock / unlock bootloader if No Reboot option is not selected.
    • Increase sleep after reboots to various modes to assure that slow devices have time to be detected.
    • Updated Readme and screenshots.
    • Minor improvements and bug fixes.
    June 16, 2023 v5.3.1.2 release
    • Set Active slot now automatically reboots to system after setting the slot, unless "No Reboot" option is selected.
    • Update Ubuntu 20.04 build to be aligned to the same methods that Ubuntu 22.04 build uses.
    • Improve confidence value calculation when comparing compressed sha1 against normal sha1 to account for shift.
    • Do not abort when the sha1 comparison confidence value is low, leave the choice to the user.
    • Update Windows builds (both) as wxPython wheel path changed, rely on a more persistent URL instead.
    June 06, 2023 v5.3.0.0 release
    • Added Github Action build on Windows 2019 with Python 3.8 to support Windows 7.
    • PixelFlasher now supports loading and processing Samsung Firmware (at least my Samsung's 😀), it would extract AP, BL, CSC, Home_CSC ... and then extract boot.img.lz4 from AP and unpack the lz4.
      When creating a patch from the set boot.img, PixelFlasher will also create boot.tar to be flashed as AP to retain root.
      If there was a way to pre-load odin with the extracted files, flashing could also be automated.
      I know, what does PixelFlasher have anything to do with Samsung firmware? I added it for my own use.
    June 03, 2023 v5.2.0.2 release
    • #76 Get a better build with Github action to support more Linux based platforms (no functionality changes).
    June 01, 2023 v5.2.0.1 release
    • Bug fix #78 Error when opening a shell console on Linux / Mac
    June 01, 2023 v5.2.0.0 release
    • Update build workflows
    • Add payload_dumper functionality to PixelFlasher to handle OTA files, thanks to vm03 for sharing source code.
    • Added rules engine code to better / easier management of the UI widgets enabling / disabling.
    • Auto detect Pixel OTA image and extract boot / init_boot / vbmeta for patching and flashing.
    • Add Full OTA mode, which flashes full OTA image, while optionally retaining root, and best of all, for A/B devices, both slots are bootable, you can even have one rooted and one not.
    May 25, 2023 v5.1.0.2 release
    • Skip testing fastbootd in dry run mode if Android platform tools version is > 34, is it no longer supports fastbootd (at least 34.0.3 does not)
    v5.1.0.1 release notes:
    • Exception handling when device is not in the listed Pixel devices.
    v5.1.0.0 release notes:
    • Support for Android platform tools version 34.0.3, and automatic setting of ANDROID_PRODUCT_OUT environment to workaround a regression introduced in version 34.0.3
    • Temp workaround to avoid selecting root method patching when Magisk Delta is detected.
    • Nicer looking / clearer manual patching dialog.
    • When a Pixel device is selected, PixelFlasher now displays additional information about the device's support.
      Things like: Device name, version end date, security update end date, Android version, name, codename, release date, end date.
    • Boot image list box now displays the applied PixelFlasher patch method.
    • Auto-resize boot image list box columns for better readability.
    • Precautionary cleanup up of leftover files on the phone in case root detection software keys on presence of such files.
    • #77 added attrict3 to requirements.txt in case it helps with certain builds (it shouldn't be needed).
    • Bug fixes and improvements.
    May 21, 2023 v5.0.1.0 release
    • Added workflow for building on MacOS 13.
    • ComboBox behavior on Mac is different than Windows, make adjustments.
    • Ability to set PixelFlasher working directory (no UI).
    • Speed up startup.
    • Popup device selection after Wifi adb connect.
    • Clear Device list after adb kill-server.
    May 19, 2023 v5.0.0.1 release
    • #75 Bug fix, when device is in bootloader, type error.https://github.com/badabing2005/PixelFlasher/issues/74
    • #74 Added Support for Pixel 7a (lynx)
    • Configuration option to define the file manager to use on Linux (default: Nautilus)
    • Configuration option to define the terminal emulator to use on Linux (default: gnome-terminal).
    • Support for additional types of Factory / ROM files.
    • Checksum validation of firmware / ROM files (if part of the checksum is in the name, otherwise just display)
    • New advanced option, ability to choose the patching method (with recommendations).
    • Added Recovery Image patching option.
    • Advanced option to enable the use of busybox shell (default off).
    • Auto detect firmware / rom with init_boot and use init_boot for creating patches, this way future firmware don't have to be manually added to PixelFlasher.
    • Auto detect devices with init_boot and use init_boot for flashing, this way future devices don't have to be manually added to PixelFlasher.
    • Auto-popup the detected devices dropdown after a scan, to make it obvious to select that next. (Thanks @pndwal for the idea)
    • Show SHA-256 of adb and fastboot binaries, as Google keeps on messing up Android Platform-tools, it's necessary to whitelist / blacklist specific binaries.
    • #66, when checking the patched files internal SHA1, provide a confidence rating.
    • Check, valdiate and warn if necessary when flashing an image patched with Magisk Zygote64_32, as there are wipe implications, provide links to documentation.
    • Added fastbootd testing to Dry Run.
    • Added Github actions to build all the targets on Github.
    • Code refactoring, bug fixes and improvements
    Apr 30, 2023 v4.10.0 release
    • Added no reboot option, with this option selected, after flashing is completed, the phone will not reboot to system, giving a chance to take other actions before reboot.
    • Added built-in file editor, you can now edit the flash script before running, in case you want to customize it (needless to say, should only be used if you know what you're doing)
    • Added a button to open an explorer in working directory, useful for people who want full control, perform manual actions by following guides, but using PixelFlasher to do the prep work.
    • Made the Firmware and Rom Process buttons, full with text. It wasn't obvious for some.
    • Detect and handle Magisk Zygote64_32 automatically, thanks to @Namelesswonder for adding the necessary marker.
    Apr 27, 2023 v4.9.0 release
    • Added support for installing / creating patch with @Namelesswonder Magisk zygisk64_32 (stable, beta, canary, debug versions).
    • Support for recognizing Lineage firmware and extracting / patching boot.
    • Display 32 bit capabilities of the device.
    • Utilize New Magisk 26.x flags as needed (patch support for more devices).
    • Disable Flash to Inactive slot and Flash to both slots button if the device is not A/B device.
    • Partition Manager can now list the partitions even if the devices is not rooted.
    • Added Custom Patch button, which allows selecting a boot file from disk and getting a patched file back to save to disk (all on the PC).
    • Added Open Folder button to open a file browser to the directory of the selected boot image.
    • Added Reboot to Download button (Odin mode).
    • Added Reboot to Safe Mode button.
    • Storage reorganization, store patched files next to the stock file, and set the patch name to clearly indicate both source and target sha1.
    • Various additional validation checks.
    • Bug fixes and other improvements.
    Apr 10, 2023 v4.8.2 release
    • Include additional Magisk versions in the check to display a warning dialog when the user has installed one of the known versions to have issues.
    • Display USNF related flag values when selecting a device.
    • Check the downloaded Google firmware checksum to match the one in the filename and warn if it does not.
    • Link to download Google USB Driver is added in the help menu.
    • Added more visual troubleshooting event flows.
    • Install APK now defaults to Non Market.
    • Added Install APK cancel option.
    • You can now select an app in package manager and right click to launch it on the phone.
    • Minor bug fixes and other improvements.
    Mar 14, 2023 v4.8.1 release
    • #47 Feature request: Added partition manager - Allows to erase partitions, and / or dump / backup partitions to PC.
    • Added more visual troubleshooting event flows.
    • Added warning message for when Android platform tools versions 34.0.0 and 34.0.1 are used.
    • Improved support.zip redactions.
    • Added Support.Zip generator button on the Main screen.
    • APK Install option can now set the ownership to Play Store Market (useful for Android Auto)
    • Check and warn the user when Magisk Canary versions 25207, 25208, 25209 and 25210 are being used.
    • Bug fixes and other improvements.
    Feb 12, 2023 v4.8.0 release
    • #50 Support for Android 14 Developer Preview for Pixel 7 and Pixel 7 Pro
    • #48 Do not allow patching with hidden Magisk (stub) and adb shell not granted root rights.
    • Block using Android Platform Tools version 34.0.0 and display a warning because it has known issues
    • Disable Magisk Backup Manager button if root access to adb shell is not granted.
    • Button to Open adb shell connected to the selected device.
    • Work in Progress: Generate graphical activity log to visualize the activity and speed up troubleshooting.
    Feb 05, 2023 v4.7.0 release
    • Added Magisk Backup Manager:
      • List all Magisk backups currently on the device.
      • Highlight the one that is backup of the current installed version.
      • Delete backups.
      • Manually add backup from PC.
      • Auto Backup: PixelFlasher figures out what needs to be backed up, and if it finds it on the PC, it creates the backup.
    • Added Reset on Magisk Manager package name setting to reset to default: com.topjohnwu.magisk
    • Linux / Mac build.sh now switches to the PixelFlasher folder if it is run from elsewhere.
    • Magisk installer improvements:
      • When installing Magisk Alpha or Delta, PixelFlasher updates the configuration to match the package name to the respective Magisk package.
      • Magisk installer window displays the package name.
      • You can now copy to clipboard, the download URL and package ID.
    • Magisk Manager columns are now wider for better readability.
    • Package Manager improvements:
      • Added Search / Filter option.
      • Show count of filtered packages.
      • Application Name (label column).
      • "Get Application Names" Button to resolve all package application names. This is a slow process, hence PixelFlasher caches them.
      • Button to download (pull) APKs from the device. (Multiple downloads in one shot is also supported).
      • Other under the hood improvements.
    • When selecting a firmware or ROM file, sha256 is printed to console and displayed on hover, to validate if it matches the published sha256.
    • More verbose logging that helps with troubleshooting.
    • Double click on "ADB Connected Devices" to invoke adb kill-server which is handy at times, specially when dealing with Wifi ADB.
    • Moved existing links under Help Menu | Links, and added few more handy links.
    • Added timestamp to support.zip filename.
    • On request, spinning cursor with text "Please be patient ..." is now displayed in red.
    • Flashing to inactive slot is now in basic configuration instead of advanced configuration.
    • Preparation work for version 5.0 DB improvements.
    • #40 Handle locale related exceptions which were causing PixelFlasher to not launch on some Windows 11 systems.
    • Add the ability to download and install a special Magisk version that has modules loading intentionally disabled. Required to get out of bootloops and manage to disable modules.
      Credit to gecowa6967 at XDA.
    Dec 05, 2022 v4.6.0 release
    • Added single click button to easily flash just the boot/init_boot (stock or patched) to the phone.
    • #39 Display Flash Option changes in the console, and allow flashing to inactive slot in basic mode.
    • #39 Do the Magisk backup only when rooted.
    • Decouple OTA sideload from needing factory image.
    • Other minor improvements.
    Dec 04, 2022 v4.5.0 release
    • New look (Artwork / Icons), compliments of @t-ryder (thank you), based on Material design icons.
    • New Feature: Package Manager, Install / Uninstall / Freeze (disable) / Unfreeze (enable) packages even system ones (root not required). Handy with Wifi ADB.
    • Use latest Python updated packages.
    • Ubuntu 22.04 support.
    • Miscellaneous improvements.
    Nov 09, 2022 v4.4.0 release
    • New feature: Font and Font size should be configurable by the user #33
    • New feature: Added WiFi-ADB connect / disconnect button. Left click to connect, Right click to disconnect.
      Handy to access a device remotely.
      Note: This only works in adb mode, so no fastboot or flashing features work for remote devices, but for patching / installing apks, managing Magisk modules it works well (basically anything that is done in adb).
      I personally use this to test patching on remote devices, and also use it to access / install apps to my watch.
    • Ground work for future features: Get installed Package list, and list which are disabled, enable / disable / uninstall apps. (Will be available in future release).
    • Move Flash Option Flash to inactive slot to Basic mode from Advanced mode..
    • Minor UI Improvements
    • If Magisk does not create a backup attempt to trigger Magisk to create one.
    • Update readme to include Pixel 7 / 7P specific info.
    Oct 27, 2022 v4.3.1.0 release
    • Bug Fix: Magisk modules not listed on MacOS / Linux
    Oct 16, 2022 v4.3.0.1 release
    • Bug fix: #30 Error during firmware processing file extraction phase.
    • PixelFlasher-Linux is now labeled PixelFlasher-Ubuntu (It is built on Ubuntu which is not compatible with all Linux flavors. Even though PixelFlasher-Kali is more compatible, it is still not a one size fits all solution.)
    Oct 15, 2022 v4.3.0 release
    • New: You can now download and install alpha and delta Magisk versions in addition to the official stable, beta, canary and debug versions.
    • Bug fix: Generating support.zip file was modifying the main db file unnecessarily.
    • Bug fix: When patching with Magisk Manager the version of Magisk Manager was not being displayed in the boot images table.
    • Bug fix: MacOS downloaded Magisk had space in the file path, which was causing failed installation.
    Oct 13, 2022 v4.2.0 pre-release
    • Support for Pixel 7, 7p (init_boot extraction and patching / flashing).
    • Added Pixel 7 / 7p partitions flashing options to custom flash.
    • Improved patching process using boot_patch, add more patch file validations.
    • Check for Magisk backup and trigger Magisk to backup if missing.
    • Add more logging messages for troubleshooting.
    • Code optimization / improvements.
    • Bug Fix #28 Error when opening download link without a device selected.
    • Added set_version script to easily set the product version.
    • Print path of the selected boot to console, for easy copy / paste.
    Oct 05, 2022 v4.1.4 release
    • Rooted Magisk patching will now automatically back up stock-boot.img (more to come).
    • Bug Fix #27, handle version exception.
    Oct 05, 2022 v4.1.3 release
    • Bug Fix: Extract Magisk Manager version properly.
    Oct 04, 2022 v4.1.2 release
    • include busybox binaries for different Android architectures (arm64-v8a, armeabi-v7a, x86_64, x86)
    • don't use hidden Magisk for patching, as it is a stub only.
    Oct 03, 2022 v4.1.1. release
    • Bug Fix: Bundle busybox with PixelFlasher to be used for unzipping Magisk.
    • Bug Fix #25, use the Magisk Manager version number instead of Rooted Magisk version number.
    • Cosmetic changes and a bit more logging.
    Oct 03, 2022 v4.1.0 pre-release
    • Patching is now fully automatic with or without root.
      PixelFlasher uses installed Magisk Manager binaries to create a patch (root binaries are only used if Magisk Manager is not available / accessible)
      UIAutomator no longer necessary, neither asking the user to manually patch and click ok when done.
    • Added an option to set a hidden Magisk package name so that PixelFlasher can find the Magisk and use it, the user still has a choice to use root binaries.
    • Speed improvements for device property reading.
    • Speed improvements for Magisk modules reading.

      NOTICE:
      I'm marking this release as pre-release because I just found out that unzip is not normally available on the phone, which this new patching mechanism uses.
      On my test phones they were available.
      Unless you have unzip on your phone, you should avoid using this version.
      Sorry about this oversight.
    Sep 25, 2022 v4.0.0 pre-release
    • New Feature: On supported devices, where device is not yet rooted (or adb shell su not allowed), an option to control the Magisk Manager GUI (drive UI) to programmatically control the app through UIAutomator and create a patched boot.img
      See Patching flow chart for details.
    • New Feature: Detect if Magisk Manager is at a higher version than installed Magisk, warn the user of a potential rare corner case and offer a choice of patching method.
    • New Feature: Temporary Root, when flashing if you choose this option, the phone will be flashed with unpatched boot.img, but Live boot to patched boot.img to provide a temporary root.
    • New Feature: Warn the user to flash both bootloader slots if their device is a Tensor device (Pixel 6, Pixel 6a, Pixel 6 Pro), if current version of OS is lower than Android 13.
    • New Feature: Flash to inactive slot. Unlike OTA flashing factory image flashing is always done on the current active slot, with this option selected, PixelFlasher will write to inactive slot. This allows one to revert to current working state in case anything goes wrong. This feature combined with Temporary Flash provides best method to test a new firmware without risking losing current working setup.
      Note: You should avoid this option if you are on a Tensor device and are upgrading from Android 12 to Android 13 (see the previous feature).
    • New Feature: Detect and operate on devices that are in Sideload or Recovery mode.
    • New spinner to indicate PixelFlasher activity.
    • Renamed Reload button to Scan, to better reflect the button's function. After a scan print the count of devices found.
    • PixelFlasher previously used MD5 to uniquely identify boot images (patched or otherwise), with version 4.0.0 PixelFlasher now uses SHA1 instead of MD5.
      This has no bearing on the functionality, it just better aligns with Magisk way of identifying and tagging boot images.
    • PixelFlasher now extracts the embedded SHA1 of a Magisk Patched images (only available in newer devices) and assures that it matches the source boot.img's SHA1.
      This is just an extra validation.
    • Code cleanup / refactoring, adding more validations and exception handling.
    • Print debug details when encountering non compliant Magisk modules.
    • Firmware link now takes you to the device's download page instead of just the general download page.
    • To better reflect the file details, transferred and stored boot.img files are now suffixed by their shortened SHA1, while magisk_patched.img files are now suffixed by shortened SHA1 of their source boot.img.
    • Allow sideload even if bootloader is locked.
    Sep 04, 2022 v3.7.0 release
    • New Feature: Install Magisk into the phone, PixelFlasher displays information about the latest available Magisk versions (stable, beta, canary, debug) and offers the choice to install a selection.
    • New Feature: Install compatible apk file onto the device from PixelFlasher menu.
    • Check Android Platform Tools version and warn if it is old.
    • Block flashing when stock flash_all.bat file is tampered with.
    • Don't bother with flashing if bootloader is locked.
    • More validations and exceptions handling.
    • Improved logging.
    Aug 24, 2022 v3.6.0 release
    • When a device is selected, the Bootloader version is displayed. (Useful for Pixel 6* devices with ARB). Works in adb and fastboot modes.
    • Added a button to dump full device info (useful for troubleshooting). Works in adb and fastboot modes.
    • Improved tooltips.
    Aug 21, 2022 v3.5.1 release
    • Fix: Incorrect warning is displayed when Flash on both slots is selected.
    • The contents of the generated flash-phone.bat file will now be displayed on console even if verbose option is not selected, this helps the user know exactly what commands would be executed before clicking the OK button.
    Aug 19, 2022 v3.5.0 release
    • Add support for fastboot --force flag (to help fix partition issues, caution it will wipe data) see this.
    • Split image flashing to all slots into two separate single slot flashing to bypass a Google bug on Pixel 6* devices, see this by @Namelesswonder
    July 18, 2022 v3.4.0 release
    • Improvements to the boot extraction / categorization.
    • Live boot option directly from the selected boot.img UI, even though it was possible to live boot previously through the advanced menu, it is now super easy to select a boot.img (patched or otherwise) and Live boot to that image with a click of a button.
    • Added warning message in the splash screen and the help about menu, to inform users not to fall for opportunists who are claiming to be the developer of PixelFlasher with a donate button next to the download link. Reminder to all, this program will always be free, ad free, donation free; you should not be solicited for any form of payment.
    June 26, 2022 v3.3.5 release
    • Fix Lock / Unlock bootloader buttons being reversed.
    June 12, 2022 v3.3.4 release
    • Bug fix on MacOS / Linux
    • Improved notice message about Fastboot process.
    June 06, 2022 v3.3.3 release
    • Bug Fix: When choosing custom ROM, the ROM file was not being copied to the package directory.
    • Update Documentation and screenshots.
    May 25, 2022 v3.3.2 release
    • Handle system codepage.
    • Add configurable codepage setting in advanced settings to be able to override the value.
    • Selected boot color is now blue instead of red to avoid thinking that it has a problem.
    • After Flashing, clear connected device to avoid using device in case it is not yet ready.
    • Fix: Paste boot button should be hidden in basic mode.
    • Always print md5 of Magisk_patched (previously only verbose mode displayed it).
    • Wait 10 seconds instead of 5 seconds after reboot before issuing next command.
    May 21, 2022 v3.3.1 release
    • Change encoding from utf8 to ISO-8859-1
    • Button to paste the currently selected boot.img into custom flash file selection.
    • Several Mac version improvements, thanks to rhetorican for reporting and testing.
    • UI improvements
    • Fix: On low resolution screens, the application startup position is high enough to clip the top part.
    • Fix: On low resolution screens, the patch icon is too large and dis-proportional to the rest of the UI
    • Better dark mode handling on Mac / Linux
    • Increase the wait during flashing to account for slower devices.
    • Further improvements on support.zip redaction process.
    • Other minor fixes and additional validations.
    May 05, 2022 v3.3.0 release
    • MacOS build.
    • Handle Magisk module.prop with comments.
    • Exception handling on magisk module errors.
    • boot.img management improvements.
    • Removed old Powershell script.
    • More checks and validations.
    • support.zip now includes sanitized PixelFlasher.db
    May 04, 2022 v3.2.0 release
    • Help menu option to create support.zip file, which sanitizes (redacts user names and device IDs) of the log files.
      This makes it super easy to provide support.zip file when something goes wrong and need to report it.
    • In boot management, delete firmware cache of the selected boot.img if it is the last boot.img used from that firmware.
    • Handle space characters in username.
    • Console is now responsive when processing firmware file.
    • More checks and validations.
    • Update readme with instructions on how to build PixelFlasher on MacOS.
    May 02, 2022 v3.1.1 release
    • Handle UTF-8 Encoding.
    May 02, 2022 v3.1.0 release
    • Fixed a missing step in the final flashing of boot.img
    • Decoupled Firmware / ROM processing from selecting the files, now we have a separate button to process, makes it clearer and does not give the impression that selecting the file is hanging.
    • Added splash screen (v3.0.1), the GUI refresh hiccup is gone.
    • Made the boot.img management delete function more extensive.
    • I flashed my phone with the May drop using this version.
    April 30, 2022 v3.0.0 release
    • New workflow, no more package preparation, select options and flash all dynamic.
    • boot.img caching and management UI with details about the state of boot.img files.
    • Faster as there is no more need to zip a package.
    • Other optimizations and improvements.
    • Update documentation.
    April 20, 2022 v2.4.1 release
    • Bug Fixes: Error message during flashing, introduced by code reshuffle.
    • It turns out that some Magisk Modules don't set the id, which was expected to be present, which caused Magisk module management screen not to display.
    April 19, 2022 v2.4.0 release
    • Magisk modules management, enable / disable modules selectively, this comes in handy to disable suspect modules before an upgrade.
    • Autoscroll the console.
    • Code cleanup.
    April 17, 2022 v2.3.0 release
    • Optional automatic check for updates feature.
    • Added help menu links to:
      - Report an issue
      - Feature Request
      - PixelFlasher Project Page
      - PixelFlasher Community (Forum)
      - Homeboy76's Guide
      - V0latyle's Guide
      - Open Configuration Folder
      - Check for New Version
    • Icons for menu items.
    • Link to download Pixel Firmware.
    • Link to download Android Platform Tools.
    • Unlock Bootloader.
    • Lock Bootloader.
    • SOS (experimental) - disable Magisk modules to get out of bootloop.
    • Additional flashing options:
      - product
      - system
      - system_ext
      - system_other
      - vbmeta_system
      - vbmeta_vendor
    • Added sideload flashing option.
    • Updated documentation.
    • Further improved console messages for troubleshooting.
    • Linux build using Github Actions.
    • Manual build for Kali Linux.
    April 11, 2022 v2.2.2 release
    • Linux support.
    • Remember last window position.
    • List Magisk modules, when Magisk is detected.
    • Added fastboot verbose option.
    • Added more checks and validations.
    • Added more details when errors are encountered.
    • Cleaner message box (better formatting).
    • Notice to the user in case fastboot drivers are not setup properly.
    • More plumbing work for the new upcoming workflow.
    • Add notes on how to build the Linux version.
    April 06, 2022 v2.1.0 release
    • Setup dedicated profile directory.
    • Put logs in the profile directory and maintain log history.
    • Plumbing for Linux support (just the flashing part is left to do).
    • Plumbing for new workflow.
    • Bugfix to handle name conflict in ROM filename.
    • Various minor improvements.
    • Update documentation.
    April 03, 2022 v2.0.1.0-pre release.
    • Major refactoring
    • Added Advanced (Expert) mode UI.
    • Basic mode keeps UI simple and hides expert features.
    • Support for setting active slot.
    • Reboot options (recovery, system, bootloader)
    • Moved custom ROM options to expert mode.
    • Added custom flashing to expert mode, can now flash to live (temporary root), or custom flash any image to any partition.
    • Moved flashing to both slots, disabling verity / verification to expert mode.
    • Many other improvements, validations and checks.
    • Updated documentation.
    March 24, 2022 v1.2.0.1-alpha release.
    • Added Advanced Configuration menu which unlocks advanced features such as:
      - Flashing to both slots
      - Disabling Verity
      - Disabling Verification
      - (More features to come)
    • The UI will now display the chosen Android Platform Tool's version.
    • Added an option to toggle verbose console output (help troubleshooting, more verbosity to come).
    • Stability fixes.
    March 22, 2022 v1.1.5-alpha release.
    • Some users were having issues with 7zip, add 7z.dll to the bundle.
    • Add fallback mechanism to use python libraries for unzipping when 7zip fails (it would be slower)
    March 22, 2022 v1.1.4-alpha release.
    • Bug Fix: Handle space characters in paths.
    March 17, 2022 v1.1.3-alpha release.
    • Visual indicator if the phone is root and Magisk Tools is found.
    • Bug Fix: KeyError 'flash_vbmeta'
    March 17, 2022 v1.1.0-alpha release.
    Changelog
    • 10x speed improvement for full package creation, down from 180 seconds to 18 seconds.
    • Bug Fix: When using patch option with custom ROM, the boot.img of the custom ROM is now correctly patched.
    • Add support for flashing vbmeta (experimental) with or without disabling verity and or verification. (This is currently only supported through preferences file)
    19
    New Release:
    Jan 20, 2024 v6.7.0.0 change log:
    • Added history to device image selection (Max 16)
    • #133 Fix for Get Xiaomi.eu print when version_class is missing.
    • Improved device state detection with retry attempts.
    • Updated 7zip binaries to v23.01
    • Added line numbers to Active Pif window and Output Console window, along with an option to sort FP keys for easy visual comparison.
    • Pixel watches require user intervention after flashing OTA, added popup messages to guide the user for the next steps.
    • You can now easily save the Active Pif content into a pif json file (filename automatically build from print information, however user can change before saving)
    • Keep splash screen visible until the main window shows up.
    • Under the hood improvements and bug fixes, improved logging and refactoring code.
    17
    Device specific support threads:

    IMPORTANT:
    Please do not ask questions the answers of which are already stated in the OP.
    I will simply ignore the request, as I'm fed up of referring people to the post that has the answers.

    Troubleshooting:
    If you need support or assistance, please generate and provide a support file from within PixelFlasher.
    You can hit that big Support button on the main screen, or select it from the Help menu.
    The generated support.zip file is sanitized (redacted) to keep your sensitive information (username device id ...) private.
    And no, a screenshot of the console or an excerpt from the console, does not make a support file.
    Clearly state the issue you're encountering, what actions did you take, and what outcome you observed, and what outcome you had expected.
    Do NOT modify the support file, keep it intact.
    • See this post.
    • Generate Sanitized support.zip file (File Menu) and submit that with your report.
    • If your anti-virus program is telling you that PixelFlasher is a malware, or you are concerned in any way, please check this post.