Protect assets from being copied and reused by user

How can I 'protect' my assets from the user copying it. I have images and .csv and .PDF files which I have created specially for the app. And I would like the user to access them only through my app. Not copy these files and use them else where.

All the assets are easy to access in the assets folder of the app in the phone memory.

There is no foolproof way to protect them.

You could encode your assets to strings, then use cryptography to encrypt your asset strings, then store each as "text" files. Then supply your app user with a key to decrypt then decode the files for use in your app. Delete the recreated physical files when the app is closed or goes into the background.

No, the user can only access these files if he has rooted the device.

Or access to the apk....

@Sanatan_Chakravarty With Companion, the files from the assets for debugging are stored in a (temporary) directory in the external storage, which of course are easily accessible for the developer (but only for him).

That's one of the reasons why all of my apps are paid apps.

It is possible with a free app to "get" the apk of an installed "paid" app, then open this file and access the assets/resources.

Yes, there will always be a (possible criminal) way to get data.
That should have been clear to everyone by now.

Yes, Android does not check whether app is paid or free before providing access to APK.
That's not good.