[Miscellaneous Android Development] badabing2003:
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.

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.

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.

Click on Update pif.json button if automatic options are not selected in the previous step.

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)

If the test passes, click on Favorite button (the heart) to save the print in your favorites.

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

Click on the Browse button and select where platform tools is installed on your system.

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

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).

Hit the Magisk Management button (Skip this step if you already have the module installed)

Click on Install Pif Module.

Select the module of your choice, the latest version of the module will be downloaded and installed on your device.

Click on OK button to close the dialog

Click on Reboot System button on the toolbar to reboot the phone.

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.

,

Spoiler content hidden.