File: mergeall-android-scripts/_readme-items/LOGS/permissions-Python-updates.txt (original) (raw)

##########################################################

Demo update and read permissions for Python in Termux.

All results here assume that termux-setup-storage has

been run, and the hosting device has not been rooted.

These dictate what and where Mergeall can operate:

update is required to make changes, but not for reads.

The /storage/5C32-5336 drive here is a removal SD card,

/sdcard is internal storage, /data/data is app private.

##########################################################

Welcome to Termux! ... $ python Python 3.7.1 (default, Oct 21 2018, 18:20:26) [Clang 7.0.2 (https://android.googlesource.com/toolchain/clang 003100370607242d on linux ...

#=========================================================

UPDATES: Termux app-private works, but it's limited

#=========================================================

open('/data/data/com.termux/xxx.txt', 'w').write('1334') 4

#=========================================================

UPDATES: nested app-specific folders in SD cards work

#=========================================================

open('/storage/5C32-5336/Android/data/com.termux/MY-STUFF/temp.txt', 'w').write('xxxx') 4 open('/storage/5C32-5336/Android/data/com.termux/temp.txt', 'w').write('xxxx') 4

#=========================================================

UPDATES: all other SD-card paths fail

#=========================================================

open('/storage/5C32-5336/Android/data/temp.txt', 'w').write('xxxx') Traceback (most recent call last): File "", line 1, in PermissionError: [Errno 13] Permission denied: '/storage/5C32-5336/Android/data/temp.txt'

open('/storage/5C32-5336/Android/temp.txt', 'w').write('xxxx') Traceback (most recent call last): File "", line 1, in PermissionError: [Errno 13] Permission denied: '/storage/5C32-5336/Android/temp.txt'

open('/storage/5C32-5336/temp.txt', 'w').write('xxxx') Traceback (most recent call last): File "", line 1, in PermissionError: [Errno 13] Permission denied: '/storage/5C32-5336/temp.txt'

#=========================================================

READS: but read-only access allowed anywhere on drive

#=========================================================

open('/storage/5C32-5336/existing.txt', 'r').read() 'xxxx'

open('/storage/5C32-5336/existing.txt', 'w').write('zzzz') Traceback (most recent call last): File "", line 1, in PermissionError: [Errno 13] Permission denied: '/storage/5C32-5336/existing.txt'

open('/storage/5C32-5336/existing.txt', 'r').read() 'xxxx'

#=========================================================

UPDATES: internal storage works too (by multiple names)

#=========================================================

open('/sdcard/temp.txt', 'w').write('xxxx') 4 open('/storage/emulated/0/temp.txt', 'w').write('xxxx') 4

import os os.path.realpath('/sdcard/temp.txt') # they're the same '/storage/emulated/0/temp.txt'

os.path.samefile('/sdcard/temp.txt', '/storage/emulated/0/temp.txt') True

open('/sdcard/temp.txt', 'r').read() 'xxxx'

open('/sdcard/WEBSITE/temp.txt', 'w').write('zzzz') 4 open('/sdcard/WEBSITE/temp.txt', 'r').read() 'zzzz'

open('/sdcard/WEBSITE/UNION/about-python.html', 'r').read()[:30] '<!DOCTYPE HTML PUBLIC "-//W3C/'

updates work anywhere on internal storage (oddly...)

open('/sdcard/Android/data/com.facebook.katana/test.txt', 'w').write('xxx') 3 open('/sdcard/Android/data/com.facebook.katana/test.txt').read() 'xxx'

#=========================================================

UPDATES: setting up a work folder on internal storage

#=========================================================

$ cd ~ $ pwd /data/data/com.termux/files/home $ ls /sdcard 360 Movies Ringtones Alarms Music Samsung Android My Documents WEBSITE CODE Notifications backups DCIM Pictures documents Download Playlists qpython LazyList Podcasts temp.txt $ mkdir /sdcard/work $ cd /sdcard/work $ ls $ vi test.py $ ls test.py $ cat test.py open('test.txt', 'w').write('qwerty') print(open('test.txt').read()) $ python test.py qwerty $ ls test.py test.txt

#=========================================================

SUMMARY: UPDATES

#=========================================================

ROOTS/ARBITRARY: yes internal, no removable

$ python

open('/sdcard/test.txt', 'w').write('xxx') 3 open('/storage/5C32-5336/test.txt', 'w').write('xxx') Traceback (most recent call last): File "", line 1, in PermissionError: [Errno 13] Permission denied: '/storage/5C32-5336/test.txt'

OTHER APP'S FOLDERS: yes internal, no removable

open('/sdcard/Android/data/com.facebook.katana/test.txt', 'w').write('xxx') 3 open('/storage/5C32-5336/Android/data/com.facebook.katana/test.txt', 'w').write('xxx') Traceback (most recent call last): File "", line 1, in PermissionError: [Errno 13] Permission denied: '/storage/5C32-5336/Android/data/com.facebook.katana/test.txt'

OWN APP FOLDER: yes on both

open('/sdcard/Android/data/com.termux/test.txt', 'w').write('xxx') 3 open('/storage/5C32-5336/Android/data/com.termux/test.txt', 'w').write('xxx') 3

APP-PRIVATE (internal): yes, but hidden to other apps, including file explorers

open('/data/data/com.termux/test.txt', 'w').write('xxx') 3