Discussion - How to use IFW (Intent Firewall) to block specific activities without breaking app functionality

IFW kicks in late… sure it’s safe?

Works with all my other rules…

Don’t see how a user could possibly click fast enough. This is only for gui package installer.

Ps: I think the below is for pm install. I’ll try later. I’ll also see if I can get through it while the phone is booting up. A kosher phone shouldn’t have developer options enabled anyway.

This is not it, can still use pm install.

Maybe something else

maybe delete the pm from system/bin

Yeah, I was just looking for a less invasive solution for those who are not editing roms as heavy.

Can delete the adb daemon entirely, though I’m not sure how the phone would react.

This seems to work great, clicking on an APK does absolutely nothing.

Block Factory Reset

May be different on your device, check the blocker app.

<rules>
   <activity block="true" log="false">
      <component-filter name="com.android.settings/com.android.settings.Settings$FactoryResetActivity" />
      <component-filter name="com.android.settings/com.android.settings.Settings$FactoryResetConfirmActivity" />
   </activity>
   <broadcast block="true" log="false" />
   <service block="true" log="false" />
</rules>

This works on my device running Android 16 (AOSP based).

Block install but not uninstall for package installer

<rules>
   <activity block="true" log="false">
      <component-filter name="com.android.packageinstaller/com.android.packageinstaller.DeleteStagedFileOnResult" />
      <component-filter name="com.android.packageinstaller/com.android.packageinstaller.InstallFailed" />
      <component-filter name="com.android.packageinstaller/com.android.packageinstaller.InstallInstalling" />
      <component-filter name="com.android.packageinstaller/com.android.packageinstaller.v2.ui.InstallLaunch" />
      <component-filter name="com.android.packageinstaller/com.android.packageinstaller.InstallStaging" />
      <component-filter name="com.android.packageinstaller/com.android.packageinstaller.InstallStart" />
      <component-filter name="com.android.packageinstaller/com.android.packageinstaller.InstallSuccess" />
      <component-filter name="com.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity" />
      <component-filter name="com.android.packageinstaller/com.android.packageinstaller.UnarchiveActivity" />
      <component-filter name="com.android.packageinstaller/com.android.packageinstaller.UnarchiveErrorActivity" />
   </activity>
   <broadcast block="true" log="false" />
   <service block="true" log="false" />
</rules>

Probably some extras in there (most)

Moovit

<rules>
   <activity block="true" log="false">
      <component-filter name="com.tranzmate/com.moovit.web.WebViewActivity" />
      <component-filter name="com.tranzmate/com.moovit.ui.common.web.WebViewActivity" />
      <component-filter name="com.tranzmate/com.usebutton.sdk.internal.WebViewActivity" />
   </activity>
   <broadcast block="true" log="false" />
   <service block="true" log="false" />
</rules>

Cant I just like transform this into writing for a blocklist in tripleumdm?

It’s activities not urls

I hear true ok so what do I do with this again?

Write a file called com.tranzmate.xml with the content above.

Push to /data/system/ifw (create folder if not exist)

chmod 644 /data/system/ifw/com.tranzmate.xml
restorecon /data/system/ifw/com.tranzmate.xml

There may be more browsers, that’s just what I found, 3 webview activities.

Thanks really appreciate it so will let you know if working

Pretty cool it worked thanks a lot

What’s this for the zygisk enhance thing?

What?

From github

Oh never mind about that