我试图在Linux环境x86_64
上运行stagefright。
我将Android-9.0.0-r35构建为x86_64
,并使用活页夹和ashmem配置编译了内核,但这没有用。
我的环境是Ubuntu14.04 64位,我编译并安装了新的内核4.20.17。
根据https://source.android.com/setup/build/building,我首先进行了以下操作。我将构建环境设置为x86_64。
$ source build/envsetup.sh
$ lunch aosp_x86_64-eng
$ make -j4
我还像下面那样建立了stagefright。
$ cd [AOSP sourcecode]/framework/av
$ mma -j4
之后,我为运行时环境创建了一个符号链接。
$ ln -s [AOSP sourcecode]/out/target/product/generic_x86_64/system /system
接下来,我下载较新版本的内核4.20.17,并复制原始配置文件,并添加选项,进行编译和安装。
$ cp /boot/config-4.4.0-142-generic .config
(.config file)
...
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ASHMEM=y
...
$ make menuconfig
$ make-kpkg --initrd --J 4 kernel_image
$ dpkg -i linux-image-4.20.17_4.20.17-10.00.Custom_amd64.deb
$ echo -e "KERNEL==\"binder\", MODE=\"0666\"\nKERNEL==\"ashmem\", MODE=\"0666\"" | tee /etc/udev/rules.d/android.rules
此过程之后,我重新启动了VM,并尝试运行stagefright。
$ /system/bin/stagefright -s sample.mp4
(waiting until ctrl+c)
但是结果是nothing
。该过程没有停止或结束。
我只想知道如何在x86_64环境中运行stagefright。 (我不想让ARM交叉编译stagefright。)
AOSP版本是pie_9.0.0-r35。 有人知道如何修复它并在ubuntu x86_64上正常运行stagefright吗? 我期待专家的回答。 :)