Release Date: 13/06/2026
THIS UPDATE IS MANDATORY
Compare changes: v34.3...v36
Good luck, Remember me in your prayers 🤲🏻
🏆 Click here to support my work
What's New:
Miscellaneous
-
Added per-app spoofing for granular device fingerprint control
-
Fixed ADB offline bug
-
Integrated debug logging toggle for verbose module diagnostics
-
Fixed zygote crash during module initialization on certain ROMs
-
Improved compatibility with Android 17 Beta 4 runtime changes
-
Updated cleanup script with broader artifact removal
-
Refined fade transition timings across all WebUI screens
-
Replaced legacy status indicators with updated dashboard readouts
-
Removed unused legacy code paths and deprecated functions
-
Removed standalone cleanup interface (functionality merged into core)
-
Updated local fingerprint WebUI with refreshed layout
-
Replaced legacy fingerprint picker with new selector
-
Updated Hide My Apps configuration template
-
Added Hide Custom ROM backend toggle
-
Added Hide SUS Files backend toggle
-
Added Beta/Nightly channel support for over-the-air updates
-
Fixed ROM spoofing disabler not persisting after reboot
-
Added volume key navigation for flag selection
prop.sh (backend)
- The following ROMs will now be spoofed via BeastMode: LineageOS, Evolution X, crDroid, ArrowOS, MistOS, Axion, Infinity, PixelOS, RisingOS, Lunaris, Halcyon, HavocOS, AlphaDroid, Avium, Bliss, Calyx, DerpFest, GrapheneOS, LMO Droid, Lumine, MatrixX, Sakura, Statix, SuperiorOS, Clover, Witaqua, YAAP, and Mica.
post-fs-data.sh :
-
Bumped the security patch to 01 June 2026
-
Added
persist.sys.pihooks.enabled_featuresto the GMS toggle logic. -
Switched all GMS prop calls from
set_resetpropto plainsetpropin both the enable and disable blocks. -
Removed
shamikoboot script entirely. the whole Shamiko boot script block is gone, along with its entry in the permissions loop.
service.sh :
-
PIFvariable now points to/data/adb/modules/playintegrityfixandPROPis built from it instead of the hardcoded full path. -
Removed
autopif.log(LOG3) declaration -
sys.usb.adb.disabledandservice.adb.rootprops are gone. The inline resetprop logic for them got stripped out entirely, and the remaining USB/ADB props lost their quotes around the prop names. -
sedpatterns in the spoof blocks got fixed${PROP1},${PROP2},${PROP3}instead of the broken$LINEand bare$PROP2/$PROP3that were in the old code.
action.sh
Pvariable switched fromcustom.pif.proptopixel.txt. That's the main config file reference now.
-PATCH_DATE bumped from 2026-05-01 to 2026-06-01.
-
Simplified
log_step "CREATED"message fromDumped PIF config to $OUTJSONtoPIF.json to $OUTJSON. -
Flipped execution order. Fingerprint spoofing now runs before migration instead of after.
-
sh "$UPDATE"lost its|| { sleep 10; exit 1; }error handler. If the update script fails now, the main script keeps going instead of bailing out. -
osm0sis.shcall lost the>/dev/null 2>&1redirect. Output now goes to stdout instead of being swallowed. -
Root cleanup
findpattern changed*_action_log_2025*to*_action_log_2026*. Now matches 2026 logs alongside the install logs. -
echobefore theRUN STEPScomment block got moved earlier, right after the update script call instead of before the mode flags section.
migrate.sh
-
Script name and all references flipped from
custom.pif.proptopixel.txt. The help text, default file detection, and output path all point topixel.txtnow. -
Default
SECURITY_PATCHbumped from2026-05-01to2026-06-01. -
spoofProviderdefault flipped from0to1when Google Wallet is NOT installed. -
ADVSETTINGSgained two new entries:verboseLogsandspoofApps. Both default to0and1respectively. Every profile block now explicitly sets these alongside the existing settings. -
File extension check in the
keep_advancedfallback switched from*.propto*.txt. -
New block at the top preserves
Released On:andEstimated Expiry:comment lines from the input file, then appends them back at the bottom of the output. -
spoofApps=1andverboseLogs=0hardcoded into every profile mode including Pixelify, Legacy, and the default fallback.
osm0sis.sh
-
Root check and Termux environment check stripped out. No more
if [ "$USER" != "root" ]or*termux*exit at the top. -
item()function removed entirely. -
Nuked
echo "$PRODUCT_LIST" | wc -w, no more device count output. -
wgetredirects changed from2>&1to>/dev/null 2>&1. All network fetches are now fully silent. -
All
catoutput outputs gets swallowed now. -
mv -fvandcp -fvredirects added>/dev/null 2>&1to silence them. -
export_json_from_propcall now redirects to>/dev/null 2>&1too. -
All file references flipped from
custom.pif.proptopixel.txtandpif.proptopif.txt. Thegrep_configcase statement updated from*.propto*.txt. -
PROP_FILEinexport_json_from_propnow points topixel.txtinstead ofcustom.pif.prop. -
ADVSETTINGSgainedverboseLogsandspoofApps. -
tee pif.propchanged totee pif.txt >/dev/null. Still pipes through tee but output hidden. -
SECURITY_PATCHin the dumped config bumped from2026-05-01to2026-06-01.
common_func.sh
-
recommended_settings()used to create seven flag files:migrate_force,run_migrate,nodebug,encrypt,build,twrp, andtag. Now it only creates two:migrate_forceandrun_migrate. The other five flags are no longer auto-generated. -
Updated Integrity Box ASCII banner
customize.sh
-
enable_recommended_settings()reduced from nine flag files to four. Removednodebug,encrypt,build,twrp, andtagfrom auto-creation. These are now created using consent.sh -
install_module()execution order changed.prepare_directoriesandhandle_module_propsnow run beforesetup_environmentandhizru. Addedbutter_chicken()call beforerelease_source. Ts fixes grep error on fresh installation -
butter_chicken()introduced. Executesconsent.shfromMODPATH. It's gonna ask u whether u want to enable recommended settings or not. You've to make choice through volume button. -
All
custom.pif.propreferences migrated topixel.txt. Fingerprint fallback copy logic, source paths, and destination paths updated accordingly. -
prepare_directories()target directory corrected from/data/adb/modules/playintegrityto/data/adb/modules/playintegrityfix. Aligns with current module ID. -
Default security patch date updated from
2026-05-01to2026-06-01in the TrickyStore patch file template. -
detect_lineage_official()andget_key()removed. Interactive ROM spoofing prompt during installation eliminated. Stock ROMsafemodeflag creation dropped as a consequence. -
ROM detection block simplified.
elsebranch removed, no longer auto-createssafemodeflag on stock ROMs. -
rm -rf $MEOW/systemadded to zygiskless cleanup. Previously only cleaned fromMODPATH, now also wipes from active module directory. -
Banner ASCII art replaced.
[WebUI] : IntegrityBox Main Dashboard
-
Dashboard status items reorganized and renamed
-
"Config" status added
-
"Expiry" status added
-
"Spoofed" status added (per-app spoofing count)
-
"Android" and "Zygote" status items removed
-
"Spoofing" status added (GMS spoofing state)
-
"Spoof" status added (pixel spoof state)
-
"Denylist" status added
-
"Button group "Miscellaneous" changed: "Beast Mode" renamed to "Utility Box"
-
"Spoofing Menu" group removed entirely
-
"Device Spoofing", "ROM Spoofing", "Play Integrity" buttons moved out of "Spoofing Menu" group
-
"Play Integrity" button renamed to "Spoofing Menu" (data-type
pifforkkept) -
"Prop Spoofing" button renamed to "Prop Spoofer" (data-type
propspooferkept) -
"Toolkit" group expanded: "Hide Sus Files" moved from "Spoofing Menu" into "Toolkit"
-
"Extra" group: "Advanced Mode" included "Zygiskless Mode"
-
Removed "Cache" UI
-
"Tricky Store & TEE Simulator" group: buttons reordered
-
Removed inline
onclickhandlers from all buttons (moved toscript.js) -
Removed commented-out legacy buttons (Spoof Lineage Props, Inject HMA, Hide PIF Detection, Hide PIF Hook Detection, Enable Whitelist, Reset ZygiskNext, Spoof SeLinux, Set AOSP Keybox, Kill GMS)
-
Removed
data-scriptattributes from several buttons (now handled viadata-typeonly) -
data-scriptattribute removed from "Spoofing" button -
data-scriptattribute removed from "Cache" button -
data-scriptattribute removed from "Assistant" button
[JS] : IntegrityBox Main Dashboard (script.js)
-
messageMapentry changed:"beast"renamed to"utility" -
messageMapentry added:"pixel"with start message "Spoof your device to app" -
readExpiry()function added for parsing keybox expiry dates from pixel.txt -
updateDashboard()status items reorganized and reduced from 11 to 8 entries -
Removed
status-android(Android version detection with case statement) -
Removed
status-zygisk(Zygisk module detection) -
Removed
status-gms(GMS property detection with complex shell logic) -
Removed
status-whitelist(Denylist/whitelist mode detection) -
Added
status-apps(app spoof count from apps.txt) -
Added
status-expiry(keybox expiry days remaining with color coding) -
status-pixelcommand changed fromcustom.pif.proptopixel.txt -
status-autopilotcommand expanded: now checks forautopilotflag file existence, returns "DISABLED" if missing -
status-LineagePropcommand expanded: now checks forsafemodeflag file, returns "OTA" if present -
status-selinuxclass mapping changed: "Enforcing" now maps to"play", fallback maps to"aqua" -
status-appsadded with"aqua"class -
status-autopilotdisplay logic rewritten: "DISABLED" shows as "Disabled", "XTREME" as "Xtreme", else "Keybox"; all use"aqua"class -
status-LineagePropdisplay logic rewritten: "OTA" shows as "OTA", "FOUND" as "90% Spoofed", else "Spoofed"; all use"play"class -
Default status class changed from
"neutral"to"aqua" -
pathMapentry changed:"beast"renamed to"utility"pointing to"./Utility/index.html" -
pathMapentry added:"pixel"pointing to"./Pixel/index.html" -
attachButtonListeners()type array updated: replaced"beast"with"utility", added"pixel"
[CSS] : IntegrityBox Main Dashboard (style.css)
-
.dashboard::afterradial gradient changed fromtransparent 70%totransparent 60% -
.dashboard::afteranimation duration changed from4sto3s -
.dashboard::afterdashboardGlowkeyframe timing changed from50%to40% -
.btn::beforeradial gradient changed fromtransparent 70%totransparent 80% -
.status-indicator.aquacolor changed from#5BB5FFto#43CDF9 -
#modal-titletitleGlowanimation duration changed from2sto4s
[WEBUI] : Integrity Status
-
Explained "Integrity Verdicts" status
-
CONFIG.fingerprintPathchanged fromcustom.pif.proptopixel.txt. The WebUI now reads from the new config file. -
infoTexts.fingerprintmodal text updated.Config: <code>custom.pif.prop</code>changed toConfig: <code>pixel.txt</code>. -
DOM.fpSdkassignment simplified. Old code checkedfp.DEVICE_INITIAL_SDK_INT || fp['*.api_level']. New code only checksfp.DEVICE_INITIAL_SDK_INT. The*.api_levelfallback removed.
[WebUI] : Control Centre
-
Complete redesign from 2-column card grid to single-column toggle-list layout with iOS-style switches
-
Visual theme upgraded to glassmorphism with radial-gradient background, backdrop blur, and glow animations
-
Accent color changed from
#1592FFto#4da3ff -
Background changed from flat
#1f2233toradial-gradient(circle at 30% 20%, #1c2045 0%, #0e1020 100%) -
Font changed from Inter to system/SF Pro Display stack
-
Card-based interaction replaced with proper toggle switches per row
-
Added "Auto Run" toggle that controls whether action items auto-execute scripts
-
Action items now run
action.shvia shell when toggled on with Auto Run enabled -
Added loading spinner state on rows during action execution
-
Added "Refresh States" button to re-check all flag files
-
Popup system replaced with multi-fallback toast (window.toast > kernelsu.toast > ksu.toast > custom animated popup)
-
Header icon changed from custom SVG shield to Material Icons
settings -
Added card entry animation on mount
-
Enhanced hover/active states with translateY lift, box-shadow, and border color transitions
-
Status dot now glows green when active
[WebUI] : Profile Menu
-
Layout changed from single-column list to 2-column grid for profile cards
-
Profile cards redesigned as centered icon+name tiles instead of left-aligned rows with subtitles
-
Pixelifyprofile accent color changed from#30D158green to#5AC8FAlight blue -
Title changed from "Play Integrity Box" to "Play Integrity Profile"
-
Removed segmented hint bar
-
Added info modal with detailed profile and action descriptions
-
"Get Play Store" button restyled as
btn-success(green) instead ofbtn-primary(blue) -
Added "Which profile should i use?" info button spanning full width
-
Notes section expanded from 3 to 6 bullet points
-
Profile card subtitles removed from grid view (now only in info modal)
-
Card hover effects enhanced with translateY lift and accent glow
-
Active state checkmark repositioned from right-center to top-right corner
-
Item icon size increased from 22px to 35px with larger container
-
sh()function simplified, removed async wrapper, directksu.execcall -
Profile info modal added with backdrop blur and scale animation
-
Mobile responsive adjustments for smaller screens
[WebUI] : IntegrityBox Toolkit
-
Complete redesign from multi-column module layout to single-card toggle-list layout
-
Visual theme upgraded to glassmorphism with radial-gradient background, backdrop blur, and glow animations
-
Accent color changed from
#1592FFto#4da3ff -
Background changed from animated multi-layer radial gradient to static
radial-gradient(circle at 30% 20%, #1c2045 0%, #0e1020 100%) -
Card container added with entry animation and glow pulse effect
-
Layout changed from
auto-fitgrid modules to fixed-width card with sections -
Added "OTA" toggle with Stable/Beta channel switching via
updateJsonin module.prop -
Added "Developer Mode" toggle controlling
verboseLogsin pixel.txt -
Added "Lite Mode" toggle controlling
spoofAppsin pixel.txt andautopilotflag -
Processing modes redesigned from pill buttons to 2-column grid cards with icons
-
Output toggles redesigned from list rows to grid cards
-
Added info tooltip for processing modes
-
Added status dots and iOS-style toggle switches
-
Added multi-fallback toast popup system
-
Shell execution rewritten with
run()helper using callback pattern instead of directksu.exec -
Added
read()/write()helpers for pixel.txt property management -
setMode()now sets both top and depth simultaneously -
Initialization now async with 250ms delay for mode detection
-
Removed "Export Valid Keybox" and "Generate PIF.json" as list items, converted to grid cards
[WebUI] : Beast Mode
-
Complete redesign from "Utility Box" to "Beast Mode" single-card layout
-
Title changed from "Utility Box" to "Beast Mode" with bolt icon
-
Script execution changed from instant-run buttons to toggle-select grid with "Let's Go!" main execution button
-
Script grid redesigned from 4-column instant-action buttons to 2-column selectable cards with checkmark badge on selection
-
Script selection state persists to
beastmode_prefs_scriptsfile -
Scripts changed: replaced Spoof Lineage Props, Hide Lineage Props, Hide PIF Props, Update HMA Config, Update Targets, Kill GMS Process, Reset ZygiskNext, Spoof Silenux Status with Update Spoofing, Update Keybox, Update HMA, Spoof Lineage, Delete Lineage, Hide ROM Props, Update Targets, Hide SUS Files
-
Execution flow changed from individual instant runs to sequential queue with per-script completion popup and progress counter
-
Banking Mode state persistence changed from
settings get global sys_oem_unlock_allowedread-back to flag file at/data/adb/Box-Brain/banking_mode -
Banking Mode toggle uses
touch/rm -fon flag file instead of settings-only approach -
"Remove Dex2OAT Flags" moved from secondary action button to standalone section under "Hide LSPosed"
-
Log file path changed from
utility.logtobeastmode.log -
Shell execution rewritten with
run()callback helper with 15-second timeout andsh()synchronous helper -
Added
popup()multi-fallback toast system (window.toast > kernelsu.toast > ksu.toast → custom DOM) -
Added
savePrefs()/loadPrefs()for script selection persistence -
Added
renderScripts()dynamic grid generation -
Added
executeScripts()queue runner with 800ms delay between scripts -
Loader text updates dynamically with
setProgress()showing "Running X of Y tasks" -
Loading overlay changed from CSS toggle class to opacity transition with display toggle
-
Removed info modal system
-
Removed
resetZygiskNext()function -
Removed
showInfo()/closeModal()functions -
Material Icons changed from "Material Icons Round" to standard "Material Icons"
-
Card layout changed from full-width stacked cards to single centered 420px card with internal sections
-
Header changed from icon + title + subtitle block to compact title row with gradient icon
-
Section labels added as uppercase text labels instead of card-based section titles
-
Status indicators removed from header, replaced by inline badge next to Banking Mode title
-
Log panel animation changed from
slideUpto direct display toggle
[WebUI] : Key Simulator
-
Title changed from "Keybox Selector" to "Key Simulator"
-
Header layout changed from flex
space-betweento centeredtitle-sectionblock -
Action buttons moved from header row to centered
action-rowbelow title -
Bulk controls (keybox select, mode select, add/remove buttons) split into separate centered
action-rowcontainers -
Search input moved to dedicated centered
search-rowwith max-width 500px -
Table columns reduced from 3 to 2 (removed "Keybox / Mode" column)
-
App row layout changed from side-by-side icon+name+controls to stacked vertical layout
-
Icon, segment buttons, and mode select now grouped in
app-row-topflex row -
Package name moved below controls as
app-row-namewith 48px left padding -
Package name click target changed from
.pkgcell to.app-row-namespan -
Keybox option renamed from "AOSP" to "Personal" (value changed from
aosptokeybox2) -
CSS class renamed from
pkg-aosptopkg-keybox2with color#ffb347unchanged -
Constant renamed from
KEY_AOSPtoKEY_KEYBOX2 -
Segment button data attribute changed from
data-k="aosp"todata-k="keybox2" -
App icon size increased from 32px to 38px
-
App icon border radius increased from 8px to 10px
-
Table row and cell padding increased from 10px to 14px
-
th:first-childwidth set to 40px for checkbox column -
Removed
td.pkgleft padding override andpkg-textclass -
Removed
pkg-wrapflex container -
Removed
#previewButtonscontainer from controls -
createRow()HTML structure completely rewritten for stacked layout -
applyPkgColor()target selector changed from.pkg[data-pkg]to.app-row-name[data-pkg] -
refreshRowBindings()secName mapping updated forkeybox2instead ofaosp