Asset Bundles deleted by cleaner app

Hello.
Big part of Android users of our game uses cleaner apps (like this one https://play.google.com/store/apps/details?id=com.cleanmaster.mguard) for phone storage. After we’ve introduced asset bundles into game users had start to complaining that their cleaner app keeps deleting asset bundles from storage. We don’t use built in cache for asset bundles and saves asset bundles this way

string path = Path.Combine(Application.persistentDataPath, assetBundleDirectory, assetBundleUID, fileName);
FileInfo assetBundleFileInfo = new FileInfo(path);
using (FileStream fs = assetBundleFileInfo.Open(FileMode.Create, FileAccess.Write)) {
    if (assetBundledata != null && assetBundledata > 0) {
        fs.Write(assetBundledata, 0, assetBundledata.Length);
        fs.Flush();
    }
}

I’ve also tried save asset bundles via UnityWebRequest.GetAssetBundle, but cleaner app anyway detects asset bundles as cache to be deleted.

Does any one have a solution for hide asset bundles from that type of apps?

It would help if we knew what kind of heuristics those apps are using do identify “problematic” files. If they just remove all large files they can access, there really isn’t any reasonable way to avoid the issue.

I don’t know anything about this cleaner app’s algorithms, but I know at least one Unity game with asset bundles that is not affected by cleaner. I’ve compared directory’s and file’s access permissions, app’s manifest but I’ve found no differences.

  • In case I move all my own asset bundles in another game’s asset bundles directory - cleaner doesn’t detect any asset bundles in that game.
  • In case I move all another game’s asset bundles into my asset bundles directory - cleaner app detects my and another app’s asset bundles.