libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.26k stars 1.83k forks source link

Core is downloaded from PC, then copy it to android phone, it can't be loaded. #7478

Closed leoxxx closed 5 years ago

leoxxx commented 6 years ago

Extract the zip file in PC, then copy the ".so" file to android phone, it can't be loaded.

hizzlekizzle commented 6 years ago

If you have root, you can add it to the normal core directory. As I understand it, it's a google permissions issue as to why you can't just change the directory to something user-read/writeable.

i30817 commented 6 years ago

In addition to the above, did you download the right architecture for your phone?

leoxxx commented 6 years ago

@hizzlekizzle I have root, I copy the core to default directory. It's so stranger. I download two cores by RetroArch. They can be loaded. The mame's core is downloaded too slow. So I download form PC. @i30817 http://buildbot.libretro.com/nightly/android/latest/armeabi-v7a/mame_libretro_android.so.zip It's the url. The mame's core is only one that I can find.

andres-asm commented 6 years ago

hmmm seems mail replies are not working.

Anyway it won't work even rooted. You can't load dynamic libraries from outside of the retroarch installation folder. And even if you move it to the location you would have to disable SELINUX to get it to load at all.

Or change some permissions that I don't remember right now.

It's a google / android thing, not an issue.

leoxxx commented 6 years ago

@fr500 I use RootExplorer to change some permissions. Change the owner and group. It can't be loaded.

andres-asm commented 6 years ago

it's not normal chown / chmod, it's SELINUX permissions

andres-asm commented 6 years ago

You can't load dynamic libraries from any location other than the internal app storage. Even if you copy that (you'd need to be rooted) you need to either fix permissions, or disable SElinux to be able to load dynamic library.

This is not a bug, this is an android permissions problem.

On Mon, Oct 22, 2018 at 7:11 AM leoxxx notifications@github.com wrote:

Extract the zip file in pc, then copy the ".so" file to android phone, it can't be loaded.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/libretro/RetroArch/issues/7478, or mute the thread https://github.com/notifications/unsubscribe-auth/ABpC0Nc624fs6dLArnNddW81S8xA5KA9ks5unbXagaJpZM4XzRDs .

andres-asm commented 6 years ago

Even if you move it there, SELINUX won't allow you to load the cores.

On Mon, Oct 22, 2018 at 9:41 AM hizzlekizzle notifications@github.com wrote:

If you have root, you can add it to the normal core directory. As I understand it, it's a google permissions issue as to why you can't just change the directory to something user-read/writeable.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/libretro/RetroArch/issues/7478#issuecomment-431855475, or mute the thread https://github.com/notifications/unsubscribe-auth/ABpC0NbvbXiNWm68TkAyh7gEJqt0I41zks5undkfgaJpZM4XzRDs .

leoxxx commented 6 years ago

@fr500 I downloaded the core by RetroArch. It can't be loaded, too. I downloaded fba core from PC. http://buildbot.libretro.com/nightly/android/latest/armeabi-v7a/fbalpha_libretro_android.so.zip Then copy it to android phone, it's O.K. So I think it's wrong with the mame core. And I found a issue. RetroArch can't change the core directory. I change it to "sdcard1/cores", it's work fine. But it be auto restored after exit. I've changed TF card's permissions, allow W/R to it. Game's roms in TF card, they are O.K.

andres-asm commented 6 years ago

Which core which device?

On Tue, Oct 23, 2018, 3:33 AM leoxxx notifications@github.com wrote:

@fr500 https://github.com/fr500 I downloaded the core by RetroArch. It can't be loaded, too.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/libretro/RetroArch/issues/7478#issuecomment-432150431, or mute the thread https://github.com/notifications/unsubscribe-auth/ABpC0IH5PUdNP6cD8FaXX986F6vTS9Ofks5untRrgaJpZM4XzRDs .

leoxxx commented 6 years ago

@fr500 http://buildbot.libretro.com/nightly/android/latest/armeabi-v7a/mame_libretro_android.so.zip The mame's core is wrong.

http://buildbot.libretro.com/nightly/android/latest/armeabi-v7a/fbalpha_libretro_android.so.zip I try the fba's core is O.K. Device is android phone.

andres-asm commented 6 years ago

Loads fine here. Maybe your OS is too old or your device has too little RAM

On Tue, Oct 23, 2018, 8:19 AM leoxxx notifications@github.com wrote:

@fr500 https://github.com/fr500

http://buildbot.libretro.com/nightly/android/latest/armeabi-v7a/mame_libretro_android.so.zip The mame's core is wrong.

http://buildbot.libretro.com/nightly/android/latest/armeabi-v7a/fbalpha_libretro_android.so.zip I try the fba's core is O.K. Device is android phone.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/libretro/RetroArch/issues/7478#issuecomment-432242084, or mute the thread https://github.com/notifications/unsubscribe-auth/ABpC0FEjp_nqs5N9QDSrsEWazF-kaLcuks5unxdUgaJpZM4XzRDs .

zerojay commented 5 years ago

The 32-bit Android atari800 core has been broken for a very long time (months, a year?) and it appears to be due to a security issue where loading the core attempts to use a blocked system call, but not sure if this is potentially related to what is seen here or not: https://github.com/libretro/libretro-atari800/issues/16

orbea commented 5 years ago

Core side loading was added so this should be fixed, please let us know if you have any further problems.