From Newsgroup: comp.mobile.android
Maria Sophia wrote:
Can't use Fluffy for degoogled devices (requires Google Play account).
Can't use Ultimate File Manager (requires Google Play account)
Woo hoo!
I have had success on my unrootable heavily-degoogled Samsung following getting past the Google Play Integrity check for the Fluffy File Manager.
1. I installed the Fluffy File Manager <app.fluffy> using Aurora
<
https://play.google.com/store/apps/details?id=app.fluffy>
2. Unfortunately, Aurora wouldn't save the APKs
(as Aurora's cache was empty right away)
3. So I used Muntashirakon to save it to
/storage/AppManager/apks/Fluffy_4.1.8.apks
4. I then deleted the app <app.fluffy> on the Samsung
5. I copied Fluffy_4.1.8.apks on the phone to Fluffy_4.1.8.zip on the PC
6. I extracted the split APKs on the PC & ran this spoofing command
7. I sideload the apks using a spoofed origin label
adb.exe install-multiple -i com.android.vending base.apk split_config.arm64_v8a.apk split_config.xhdpi.apk split_config.es.apk
Voila!
The Play Integrity/LVL check passed because the app recognizes com.android.vending as the installerPackageName.
This is mainly needed on Samsung, as other brands aren't as locked down.
On other brands, you can disable the Play Integrity / LVL license provider
to prevent the app from checking Google Play licensing because on AOSP
(Pixel, LineageOS, GrapheneOS), the shell user can disable components.
But, that won't work on USA unrootable degoogled Samsung.
adb shell pm disable app.fluffy /com.pairip.licensecheck.LicenseContentProvider
Exception occurred while executing 'disable':
... SecurityException: Shell cannot change component state
Because, on Samsung stock ROMs, with the Samsung security policy intact,
the shell user is NOT allowed to disable components of third-party apps.
Since I can't neutralize it from outside the shell, there is also LSPatch which performs DEX patching inside the app, which I may try later.
Also, supposedly Muntashirakon App Manager can perform installer-source spoofing to set it to com.android.vending, but it failed on my Samsung.
Running the second test, I kept all the files on the phone at all times.
1. Install Ultimate File Manager Pro using Aurora
<
https://play.google.com/store/apps/details?id=za.kilowatch.ultimatefilemanager>
2. Again, unfortunately, Aurora wouldn't save the APKs
(as Aurora's cache was empty right away)
3. So I used Muntashirakon to save it to /storage/AppManager/apks/
4. Identify the exported .apks archive and the filesystem location
adb shell ls /storage/emulated/0/AppManager/apks/Ultimate*.apks
/storage/emulated/0/AppManager/apks/Ultimate File Manager Pro_125.0-GOOGLE.apks
5. Query the system for the active split APK installation paths
adb shell pm path za.kilowatch.ultimatefilemanager
package:/data/app/~~d-kNYBZ6N_XaNUkK7Yo0Jg==/za.kilowatch.ultimatefilemanager-gpxHZM4K-ZfKfSdELCUF7g==/base.apk
package:/data/app/~~d-kNYBZ6N_XaNUkK7Yo0Jg==/za.kilowatch.ultimatefilemanager-gpxHZM4K-ZfKfSdELCUF7g==/split_config.arm64_v8a.apk
package:/data/app/~~d-kNYBZ6N_XaNUkK7Yo0Jg==/za.kilowatch.ultimatefilemanager-gpxHZM4K-ZfKfSdELCUF7g==/split_config.xhdpi.apk
6. Extract or copy the split APK components into a temporary workspace
adb shell cp /data/app/~~d-kNYBZ6N_XaNUkK7Yo0Jg==/za.kilowatch.ultimatefilemanager-gpxHZM4K-ZfKfSdELCUF7g==/base.apk /data/local/tmp/base.apk
adb shell cp /data/app/~~d-kNYBZ6N_XaNUkK7Yo0Jg==/za.kilowatch.ultimatefilemanager-gpxHZM4K-ZfKfSdELCUF7g==/split_config.arm64_v8a.apk /data/local/tmp/arch.apk
adb shell cp /data/app/~~d-kNYBZ6N_XaNUkK7Yo0Jg==/za.kilowatch.ultimatefilemanager-gpxHZM4K-ZfKfSdELCUF7g==/split_config.xhdpi.apk /data/local/tmp/gfx.apk
Or, just unzip the split APKs into that temporary archive.
adb shell unzip /storage/emulated/0/AppManager/apks/Ultimate*.apks -d /data/local/tmp/
Archive: /storage/emulated/0/AppManager/apks/Ultimate File Manager Pro_125.0-GOOGLE.apks
inflating: /data/local/tmp/split_config.arm64_v8a.apk
inflating: /data/local/tmp/split_config.xhdpi.apk
inflating: /data/local/tmp/base.apk
inflating: /data/local/tmp/icon.png
inflating: /data/local/tmp/info.json
7. Remove the currently installed application instance
adb shell pm uninstall za.kilowatch.ultimatefilemanager
8. Create a new package installation session with explicit installer attribution
adb.exe shell pm install-create -i com.android.vending
Success: created install session [1525310504]
9. Stream split APK components into the session and finalize installation
adb shell pm install-write 12978356 base.apk /data/local/tmp/base.apk
Success: streamed 30927780 bytes
adb shell pm install-write 12978356 arch.apk /data/local/tmp/split_config.arm64_v8a.apk
Success: streamed 57566 bytes
adb shell pm install-write 12978356 gfx.apk /data/local/tmp/split_config.xhdpi.apk
Success: streamed 129396 bytes
adb shell pm install-commit 12978356
Success
10. Verify installer attribution metadata
adb shell dumpsys package za.kilowatch.ultimatefilemanager | findstr /i "installerPackageName"
installerPackageName=com.android.vending
11. Perform a basic launch test to confirm runtime behavior
adb shell monkey -p za.kilowatch.ultimatefilemanager -c android.intent.category.LAUNCHER 1
12.Remove temporary artifacts from the device
adb shell rm /data/local/tmp/base.apk /data/local/tmp/split_config.arm64_v8a.apk /data/local/tmp/split_config.xhdpi.apk /data/local/tmp/icon.png /data/local/tmp/info.json
--
Almost never is there a problem on a computer that we can't solve ourselves.
--- Synchronet 3.22a-Linux NewsLink 1.2