{"action":"created","issue":{"url":"https://api.github.com/repos/postmarketOS/pmbootstrap/issues/1505","repository_url":"https://api.github.com/repos/postmarketOS/pmbootstrap","labels_url":"https://api.github.com/repos/postmarketOS/pmbootstrap/issues/1505/labels{/name}","comments_url":"https://api.github.com/repos/postmarketOS/pmbootstrap/issues/1505/comments","events_url":"https://api.github.com/repos/postmarketOS/pmbootstrap/issues/1505/events","html_url":"https://github.com/postmarketOS/pmbootstrap/issues/1505","id":324718431,"number":1505,"title":"Using all Android subsystems/drivers without libhybris","user":{"login":"twaik","id":9674930,"avatar_url":"https://avatars3.githubusercontent.com/u/9674930?v=4","gravatar_id":"","url":"https://api.github.com/users/twaik","html_url":"https://github.com/twaik","followers_url":"https://api.github.com/users/twaik/followers","following_url":"https://api.github.com/users/twaik/following{/other_user}","gists_url":"https://api.github.com/users/twaik/gists{/gist_id}","starred_url":"https://api.github.com/users/twaik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twaik/subscriptions","organizations_url":"https://api.github.com/users/twaik/orgs","repos_url":"https://api.github.com/users/twaik/repos","events_url":"https://api.github.com/users/twaik/events{/privacy}","received_events_url":"https://api.github.com/users/twaik/received_events","type":"User","site_admin":false},"labels":[{"id":613960557,"url":"https://api.github.com/repos/postmarketOS/pmbootstrap/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-05-20T15:41:38Z","updated_at":"2018-05-20T22:05:18Z","closed_at":null,"author_association":"NONE","body":"There is a way of building software that will let programs use Android's drivers and libraries without any compatibility layers like libhybris. I am talking about building programs on top of Bionic libc (see [here](https://github.com/termux/termux-packages)). That will let programs use Android's libEGL, libGLESv2 etc. \r\nI have working [Pulseaudio OpenSL ES backend](https://github.com/twaik/pulseaudio-sles-ndk/blob/master/module-sles-sink.c) but it needs mediaserver process to be launched.\r\nFor now I am working on Android Xorg driver that will be able to output both to Android application and directly to Surfaceflinger. This way will let you use Android subsystems without need to write drivers. Also that way will let us launch system at the same time as Android runs (that will effect distribution popularity, some people prefer to test OS before installing it as a main system).\r\nSomething like that."},"comment":{"url":"https://api.github.com/repos/postmarketOS/pmbootstrap/issues/comments/390516427","html_url":"https://github.com/postmarketOS/pmbootstrap/issues/1505#issuecomment-390516427","issue_url":"https://api.github.com/repos/postmarketOS/pmbootstrap/issues/1505","id":390516427,"user":{"login":"twaik","id":9674930,"avatar_url":"https://avatars3.githubusercontent.com/u/9674930?v=4","gravatar_id":"","url":"https://api.github.com/users/twaik","html_url":"https://github.com/twaik","followers_url":"https://api.github.com/users/twaik/followers","following_url":"https://api.github.com/users/twaik/following{/other_user}","gists_url":"https://api.github.com/users/twaik/gists{/gist_id}","starred_url":"https://api.github.com/users/twaik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twaik/subscriptions","organizations_url":"https://api.github.com/users/twaik/orgs","repos_url":"https://api.github.com/users/twaik/repos","events_url":"https://api.github.com/users/twaik/events{/privacy}","received_events_url":"https://api.github.com/users/twaik/received_events","type":"User","site_admin":false},"created_at":"2018-05-20T22:05:18Z","updated_at":"2018-05-20T22:05:18Z","author_association":"NONE","body":"`GL libraries on Linux to directly being a X11 driver, right?`\r\nNot exactly. Linux programs can use Xorg even if it is built on top of foreign libc, it uses protocol, not device dependent libraries. That's why XServer XSDL can work properly with programs in glibc chroot.  So I need programs to be built on top of Bionic not only for OpenGL but all SoC dependent libraries.\r\n`xf86-video-hwcomposer`\r\nIt uses libhardware headers which differs from SoC to Soc. I tried to build libhardware's libcnativewindow test and it segfaulted without SoC's dependent libhardware headers. That's why I want to use Surfaceflinger and Android Activity APIs: they are unchanged by vendors. Also you won't be able to use Android's libEGL/libGLESv2 in glibc/Musl programs without libhybris. That's why I want to use Android native build to all GNU/Linux programs. You can use Pulseaudio for sound even without libOpenSLES (you need only Pulseaudio library/protocol), but you can't use hardware acceleration without libGLESv2 in glibc/Musl. \r\nThat's why I think that postmarketOS should be built on top of Bionic instead of Musl. "}}
{"actor":{"display_login":"twaik"}}