Write / save in the Private dir (internal storage)

Okay. As I understand you developed the extension: DownloadToASD.

My question was to you as developer. I know you are very active on the subject of false permissions asks of file component. As u can develop extension like that I just wanted to know if there are any obstacles to make extension which would work for private directory as well or no one is interested in creating an extension like the one I talk about (working with files on internal storage without permission).

As I said before, there is no extension that writes / stores in the internal storage (Private dir), not even the EFile extension, which is almost a duplicate of the File componente, but does not require permissions for the ASD.

So what’s the problem with using the ASD (instead of the private dir)?

I know there’s no such an extension. My question is why there’s not such an extension. Do you know if it’s hard to do it or there’s no interest in private dir no permission extension.

EFile works for ASD i know it, i use it, but it doesn’t work for internal storage. It makes me think that there’s a problem with making internal storage read/write without permission extension working correctly on kodular platform (that’s the key for my qustion). vknow360 didn’t answer my questions.

Different form of question. Is it a problem (any obstacle which makes internal storage read/write without permission impossible to do) to make an extension with possibility to write/read internal app storage (private dir) with no permission required.

If u don’t know the answer for my question just say you don’t know - there’s no problem. You were answering my question very, very indirectly like a politician on TV.

There actually is, and it’s mine.

Sorry, will be added as soon as I get some time.

P.S. beta v3 is out.

2 Likes

And what would it be?

Unfortunately, it no longer supports Kodular Companion.
Probably it will work fine in AI2 Companion and APK.

Also, v3 adds a new Designer Property named LegacyMode which lets you easily switch between asd (when enabled) and private dir(when disabled).

If LegacyMode is disabled it doesn’t work with either Companion or the APK.
Tested on Android 11.

Yeah, just noticed that. :sweat_smile:

Fixed :+1:

Great, how / where can this be checked (aix / source code)?

Are they answering questions at all? :wink:

Btw, what about replying to this question:

But you are right, the question why only the File component can write / save in the private data dir is really interesting. @pavi2410

There is no acces for users without root to internal storage. My app sometimes need to receive encrypted files from server, like .json. What is more (about internal storage):

The system prevents other apps from accessing these locations, and on Android 10 (API level 29) and higher, these locations are encrypted.

As u can see internal storage is a better place for sensitive data. Additionaly, Firebase storage component can easily save files to internal storage without permission.

@vknow360 thank you for some movement about my case! I will check the beta extension soon.

@hammerhai I will try it as well. But it would be nice to change internal/external path with blocks.

1 Like

beta branch on Github repo.

1 Like

Yes, that’s the reason why I store all my media files always in the assets (app package).

Is that really possible? Then I would be wrong to claim that only the File component could do this. Is there an example (blocks, aia) that you can post?

I checked it and it seems to work, at least on Android 11 (Companion).

Yes, I checked it and it seems to work, at least on Android 11 (Companion).

1 Like

As i know files in assets can be easily discovered by downloading the .apk from google play store (there are sites that makes it possible) and unzipping it. Maybe something has changed.

blocks

It just works. I inspected the location of the files with the help of FileList block in the TaifunFile extension earlier. As Firebase Storage component doesn’t work with companion it’s hard to show you the outcome (i have to code command line interface in my app to show the result of my files directory). I download files form firebase on companion using webviewer and javascript. But my exported apk download files directly using Firebase component. I have 2 exact copies of firebase - one for the companion test purposes and one real for exported app.

blocks.1png

That was the block which allowed me to check if firebase storage really have ability to write internal storage without permission.

EDIT: I checked it again on the exported apk. Firebase storage component can download files directly to internal storage without permission prompt. The path of these files is: /data/data/<package name>/files/. The symlink is /data/user/0/<package name>/files.

@vknow360 Internal storage works for Android 10. Thank you! I will check it on different Android versions soon.

1 Like

Yes, that’s why all of my apps are paid apps. But of course there is always a (illegal) way to get the data.

Yes, this seems to work. Good to know. Thanks! :+1:
I checked an Android 9 (APK):

/data/data/de.bodymindpower.privateDir/privateDir.txt
/data/data/de.bodymindpower.privateDir/privateDir2.txt

/data/user/0/de.bodymindpower.privateDir/files/privateDir.txt
/data/user/0/de.bodymindpower.privateDir/files/privateDir2.txt

@vknow360 :+1:

2 Likes