这是indexloc提供的服务,不要输入任何密码
Skip to content

termux-open and termux-share broken after minor Android 8.1 security upgrade #995

@ghost

Description

Problem description
After upgrading my Asus Zenfone Max Pro M1 (ASUS_X00TD) with the latest security fix (January 1, 2019), neither termux-open nor termux-share are able to exchange files with other applications.

The error message presented depending on application varies, but is usually along the lines "Error copying " (AquaMail) or "File could not be scheduled for upload" (Google drive).

An excerpt from "logcat -d" from after a termux-open invocation, full content in the attached "logcat.txt", logcat.txt

01-25 16:39:10.541 20935 20935 W ADebug : Failed to get property persist.sys.media.traces
01-25 16:39:10.571 20935 20935 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 10115 <<<<<<
01-25 16:39:10.709 20935 20935 I /system/bin/app_process: The ClassLoaderContext is a special shared library.
01-25 16:39:10.771 20935 20935 D AndroidRuntime: Calling main entry com.example.termuxam.Am
01-25 16:39:10.868 20935 20935 D AndroidRuntime: Shutting down VM
01-25 16:39:11.241 6257 8443 W ContentProvider: Normalized content://com.termux.files//data/data/com.termux/files/home/1548312079.png to content://com.termux.files/data/data/com.termux/files/home/1548312079.png to avoid possible security issues
01-25 16:39:11.254 6257 8443 W ContentProvider: Normalized content://com.termux.files//data/data/com.termux/files/home/1548312079.png to content://com.termux.files/data/data/com.termux/files/home/1548312079.png to avoid possible security issues
01-25 16:39:11.256 6257 8443 E DatabaseUtils: Writing exception to parcel
01-25 16:39:11.256 6257 8443 E DatabaseUtils: java.lang.SecurityException: Permission Denial: reading com.termux.app.TermuxOpenReceiver$ContentProvider uri content://com.termux.files/data/data/com.termux/files/home/1548312079.png from pid=19689, uid=10083 requires android.permission.permRead, or grantUriPermission()
01-25 16:39:11.256 6257 8443 E DatabaseUtils: at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:633)
01-25 16:39:11.256 6257 8443 E DatabaseUtils: at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:503)
01-25 16:39:11.256 6257 8443 E DatabaseUtils: at android.content.ContentProvider$Transport.query(ContentProvider.java:214)
01-25 16:39:11.256 6257 8443 E DatabaseUtils: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:102)
01-25 16:39:11.256 6257 8443 E DatabaseUtils: at android.os.Binder.execTransact(Binder.java:697)

Steps to reproduce

  1. Verify that termux-open works as expected.
  2. Upgrade Android 8.1 with said Android minor upgrade.
  3. termux-open will now have stopped working.

Expected behavior
Unchanged behavior of termux-open and termux-share before and after the security upgrade. :)

Additional information
termux-info:
Updatable packages:
All packages up to date
System information:
Linux localhost 4.4.78-perf+ #1 SMP PREEMPT Tue Jan 8 13:27:12 CST 2019 aarch64 Android
Termux-packages arch:
aarch64
Android version:
8.1.0
Device manufacturer:
asus
Device model:
ASUS_X00TD

Steps attempted to rectify error condition

  1. Turning off and on storage permission in the termux-app
  2. Clearing the cache of the termux-app
  3. Re-running termux-setup-storage
  4. Clearing the cache of the termux-api
  5. Removing and re-installing termux-api
  6. pkg uninstall / install of termux-api

Happy to act as a guinea pig if I can contribute to solving this one!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions