Mam dwa pliki wykonywalne, obie krzyż skompilowane do uruchomienia w systemie Android. Umieściłem oba urządzenia na tym samym katalogu. Umieściłem wszystkie współdzielone biblioteki, które są zależne w tym samym katalogu, w tym ld-linux.so.3. Biegnę wykonywalne za pomocą:Jakie są możliwe przyczyny "nieudanego odwzorowania segmentu z obiektu udostępnionego: operacja niedozwolona" i jak debugować?
LD-linux.so.3 --library-ścieżka/ścieżka/do/biblioteki executable_name
zarówno praca na starszych wersjach Androida, gdy uruchomiony jako dowolnego użytkownika. Oba działają na najnowszej wersji Androida, jeśli działają jako root. Tylko jeden działa na najnowszej wersji Androida, gdy działa jako dowolny użytkownik. Zamiast tego daje:
nie map segmentu z obiektu dzielonego: operacja executable_name niedozwolony
Jak mogę dowiedzieć się, co jest inny z pliku wykonywalnego, który nie będzie działać?
dużo czytam online i większość ludzi, że ten błąd, albo:
A) nie mają uprawnień do wykonywania jednej z bibliotek są one zależne lub samego pliku wykonywalnego.
lub
B) próbuje uruchomić z katalogu, który jest zamontowany jako NOEXEC.
oba te elementy wydają się nie mieć znaczenia. Może znaleźć wszystkie biblioteki i mogę załadować dowolną bibliotekę samodzielnie i zobaczyć, jakie inne rzeczy są zależne od rozwiązania. Mogę również uruchamiać podstawowe skrypty z interesujących ich katalogów.
Nowsza wersja Androida, Jelly Bean, to inna wersja jądra Linuksa i zastanawiam się, czy jest to powiązane.
Co dajesz? Jak mogę debugować?
zadawane inny sposób (z laska) tutaj: http://stackoverflow.com/questions/13467951/issue-including-executable-with-android-application- kiedy używa się jelly-fasoli – corbin