OSS-DocumentScanner icon indicating copy to clipboard operation
OSS-DocumentScanner copied to clipboard

[BUG] Can't open without DCL via memory and storage

Open asimovc opened this issue 9 months ago • 3 comments

Which app is your issue for

Document Scanner

Version

1.14.5

What platform are you using?

Android

OS Version

Android: 15 GrapheneOS: 2025021100

What happened?

Can't open the app without giving DCL memory and storage access

Digitalizador OSS log DCL Memory.txt

Digitalizador OSS log DCL Storage.txt

Relevant log output

DCL Memory log


type: memory_DCL
osVersion: google/lynx/lynx:15/AP4A.250205.002/2025021100:user/release-keys
package: com.akylas.documentscanner:121, targetSdk 35

package: com.akylas.documentscanner:121

DCL denial type: DENY_EXECMEM

DCL Storage log


type: storage_DCL
osVersion: google/lynx/lynx:15/AP4A.250205.002/2025021100:user/release-keys
package: com.akylas.documentscanner:121, targetSdk 35

package: com.akylas.documentscanner:121

DCL denial type: DexFileOpen
process: com.akylas.documentscanner
thread: main

java.lang.SecurityException: DCL via storage, path: /data/user/0/com.akylas.documentscanner/code_cache/secondary-dexes/com.nativescript.apputils.Utils_WindowInsetsCallback-1739846416416-121.jar, canonicalPath: /data/data/com.akylas.documentscanner/code_cache/secondary-dexes/com.nativescript.apputils.Utils_WindowInsetsCallback-1739846416416-121.jar
	at android.ext.dcl.DynCodeLoading.checkDexFileOpen(DynCodeLoading.java:131)
	at dalvik.system.DexFile.openDexFileNative(Native Method)
	at dalvik.system.DexFile.openDexFile(DexFile.java:406)
	at dalvik.system.DexFile.<init>(DexFile.java:128)
	at dalvik.system.DexFile.<init>(DexFile.java:101)
	at dalvik.system.DexPathList.loadDexFile(DexPathList.java:438)
	at dalvik.system.DexPathList.makeDexElements(DexPathList.java:397)
	at dalvik.system.DexPathList.<init>(DexPathList.java:166)
	at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:160)
	at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:105)
	at dalvik.system.DexClassLoader.<init>(DexClassLoader.java:55)
	at com.tns.DexFactory.resolveClass(SourceFile:386)
	at com.tns.ClassResolver.resolveClass(Unknown Source:35)
	at com.tns.Runtime.resolveClass(Unknown Source:9)
	at com.tns.Runtime.callJSMethodNative(Native Method)
	at com.tns.Runtime.dispatchCallJSMethodNative(SourceFile:1)
	at com.tns.Runtime.callJSMethodImpl(Unknown Source:100)
	at com.tns.Runtime.callJSMethod(SourceFile:1)
	at com.tns.Runtime.callJSMethod(SourceFile:2)
	at com.tns.Runtime.callJSMethod(SourceFile:3)
	at com.akylas.documentscanner.MainActivity.onCreate(SourceFile:1)
	at android.app.Activity.performCreate(Activity.java:9072)
	at android.app.Activity.performCreate(Activity.java:9050)
	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1538)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4124)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4329)
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:222)
	at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133)
	at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2728)
	at android.os.Handler.dispatchMessage(Handler.java:109)
	at android.os.Looper.loopOnce(Looper.java:232)
	at android.os.Looper.loop(Looper.java:317)
	at android.app.ActivityThread.main(ActivityThread.java:8826)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
	at com.android.internal.os.ExecInit.main(ExecInit.java:50)
	at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
	at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:369)

Code of Conduct

  • [x] I agree to follow this project's Code of Conduct

asimovc avatar Feb 18 '25 02:02 asimovc

@asimovc What is DCL? I dont know about GrapheneOS specifics. But the app does not really do something out of the normal permissions. So not sure what i can do or if it is even an issue

farfromrefug avatar Feb 19 '25 08:02 farfromrefug

@asimovc What is DCL? I dont know about GrapheneOS specifics. But the app does not really do something out of the normal permissions. So not sure what i can do or if it is even an issue

Is not a GrapheneOS specific, is just Dynamic Code Loading on Android

asimovc avatar Feb 19 '25 13:02 asimovc

@asimovc ok i get it know. So it is normal and i cant change it. It is part of the way Nativescript works. Nativescript is the framework i use to write cross-platform apps. DCL is used to load java classes from JS code. EDIT: We are discussing it. We are already making it as safe as possible https://developer.android.com/about/versions/14/behavior-changes-14#safer-dynamic-code-loading

farfromrefug avatar Feb 19 '25 14:02 farfromrefug

duplicate of https://github.com/Akylas/OSS-DocumentScanner/issues/485

farfromrefug avatar Oct 04 '25 19:10 farfromrefug