[Android Q&A, Help & Troubleshooting] elesbb:
Yes, this is what my exact understanding of this was as well.

What I discovered though, was each install of an application now cycles the "Device ID". And apps should not rely on the "Device ID/Android ID" as a forms of security for things like encryption, etc. This is coming from this here: https://android-developers.googleblog.com/2017/04/changes-to-device-identifiers-in.html

All I know is when I update my xposed module (being the course of debugging), I would then reboot the device. It does the "android is starting" prompt as if it was a fresh wipe of the device. All my data is still there. The system apps loose their settings though. The apps are there and all of its data. However, if I try to launch an app, it immediately force closes. Here is a logcat snippet of the Facebook, and textra app.

Facebook

11-23 14:33:40.830 14391 14391 W ContextImpl: Failed to ensure /data/user_de/0/com.facebook.lite/code_cache: mkdir failed: EACCES (Permission denied)
11-23 14:33:40.950 14391 14391 E AndroidRuntime: FATAL EXCEPTION: main
11-23 14:33:40.950 14391 14391 E AndroidRuntime: Process: com.facebook.lite, PID: 14391
11-23 14:33:40.950 14391 14391 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate application com.facebook.lite.ClientApplicationSplittedShell: java.lang.IllegalArgumentException: Optimized data directory /data/user/0/com.facebook.lite/dex is not owned by the current user. Shared storage cannot protect your application from code injection attacks.
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.app.LoadedApk.makeApplication(LoadedApk.java:1296)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.app.ActivityThread.handleMakeApplication(ActivityThread.java:7152)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7134)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at java.lang.reflect.Method.invoke(Native Method)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at com.swift.sandhook.SandHook.callOriginMethod(SandHook.java:185)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at com.swift.sandhook.xposedcompat.hookstub.HookStubManager.hookBridge(HookStubManager.java:376)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at SandHookerNew_5sm3dthec8858ee0to4kj3c1ge.hook(Unknown Source:51)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.app.ActivityThread.access$1600(ActivityThread.java:274)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2102)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.os.Handler.dispatchMessage(Handler.java:107)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.os.Looper.loop(Looper.java:237)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.app.ActivityThread.main(ActivityThread.java:8167)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at java.lang.reflect.Method.invoke(Native Method)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
[COLOR="Red"]11-23 14:33:40.950 14391 14391 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Optimized data directory /data/user/0/com.facebook.lite/dex is not owned by the current user. Shared storage cannot protect your application from code injection attacks.[/COLOR]
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at dalvik.system.DexFile.<init>(DexFile.java:141)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at dalvik.system.DexFile.loadDex(DexFile.java:210)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at dalvik.system.DexFile.loadDex(DexFile.java:177)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at X.02Q.A00(:67)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at X.01U.A04(:61)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at com.facebook.lite.ClientApplicationSplittedShell.attachBaseContext(:4738)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.app.Application.attach(Application.java:370)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.app.Instrumentation.newApplication(Instrumentation.java:1157)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	at android.app.LoadedApk.makeApplication(LoadedApk.java:1288)
11-23 14:33:40.950 14391 14391 E AndroidRuntime:	... 14 more

Textra

11-23 14:34:20.354 9346 9346 W ContextImpl: Failed to ensure /data/user/0/com.textra/cache: mkdir failed: EACCES (Permission denied)
11-23 14:34:20.354 9346 9346 W ContextImpl: Failed to update user.inode_cache: stat failed: EACCES (Permission denied)
11-23 14:34:20.355 9346 9346 W ContextImpl: Failed to ensure /data/user_de/0/com.textra/code_cache: mkdir failed: EACCES (Permission denied)
11-23 14:34:20.355 9346 9346 W ContextImpl: Failed to update user.inode_code_cache: stat failed: EACCES (Permission denied)
[COLOR="red"]11-23 14:34:20.432 9346 26624 E SQLiteDatabase: Failed to open database '/data/user/0/com.textra/databases/messaging.db'.
11-23 14:34:20.432 9346 26624 E SQLiteDatabase: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 1806 SQLITE_CANTOPEN_EACCES[1806]): Could not open database[/COLOR]
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:300)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:218)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:737)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:284)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:251)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:1394)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:1339)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:974)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:448)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:391)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at com.mplus.lib.lg1.d(SourceFile:1)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at com.mplus.lib.mg1.<init>(SourceFile:6)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at com.mplus.lib.mg1.j0(SourceFile:1)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at com.mplus.lib.af1.run(Unknown Source:2)
11-23 14:34:20.432 9346 26624 E SQLiteDatabase:	at java.lang.Thread.run(Thread.java:919)

So here you can see all the force closing is caused by the wrong owner/permissions. This also happens with the system apps, but the system apps just reset themselves and makes a new directory. Something is definitely changing the owner or whatever, which causes the device to think it has not been setup, prompting the "android is starting" prompt. It is EXTREMELY annoying to deal with and I am desperate for help.