Компиляция Oscam для Android

511
Очень плохоПлохоСреднеХорошоОтлично (1 оценок, среднее: 5,00 из 5)
Загрузка...

Компиляция Oscam для Android

 

Прошло уже некоторое время с момента моей последней полезной записи в блоге, но жизнь уже не та, что была раньше.
Так или иначе, сегодня я представляю вам новый учебник с подробными инструкциями о том, как построить Oscam для вашего Android box (например, Wetek Play).

Официальная документация Oscam содержит некоторую информацию о том, как скомпилировать ее с помощью набора инструментов NDK, но она устарела, и вы не сможете ориентироваться на устройства, работающие на Lollipop (5.0+), поскольку двоичные файлы не будут работать, потому что они не являются независимыми исполняемыми файлами (PIE), а также не объясняют, как кросс-компиляция и установка OpenSSL.
Я покажу вам, как скомпилировать хороший статический двоичный файл, который должен работать на любом устройстве Android на базе arm.

Прежде всего, вам понадобится машина Linux, я использую Linux Mint, который основан на Ubuntu, и все инструкции предназначены для сред Ubuntu.
Если у вас нет среды linux, установите виртуальную машину Ubuntu.

Установите необходимые пакеты.

sudo apt-get update
sudo apt-get install subversion

Далее вам нужно скачать последнюю версию Linux 64-bit (x86) Android NDK, которую вы можете найти по адресу https://developer.android.com/ndk/downloads/index.html
На момент написания этой статьи последней стабильной версией является r21.

Извлеките файл NDK в свой домашний каталог и компакт-диск в папку build/tools, чтобы мы могли построить нашу цепочку инструментов для перекрестной компиляции.

cd ~/android-ndk-r21/build/tools
export TOOLCHAIN=~/android-toolchain
./make_standalone_toolchain.py --arch arm --api 24 --install-dir $TOOLCHAIN

Эта команда занимает несколько секунд для запуска, и она должна создать набор инструментов android в вашем домашнем каталоге.

Перед кросс-компиляцией OScam с помощью этой цепочки инструментов нам необходимо скомпилировать OpenSSL

Скачать, извлечь и построить OpenSSL:

cd ~
wget http://www.openssl.org/source/openssl-1.1.1d.tar.gz
tar -xf openssl-1.1.1d.tar.gz
cd openssl-1.1.1d
export CC=$TOOLCHAIN/bin/arm-linux-androideabi-gcc
export RANLIB=$TOOLCHAIN/bin/arm-linux-androideabi-ranlib
./Configure --prefix=$TOOLCHAIN/sysroot/usr android
make
make install_sw

Теперь давайте проверим oscam svn и настроим сборку.

cd ~
svn checkout http://www.streamboard.tv/svn/oscam/trunk oscam-svn
cd oscam-svn
./config.sh --enable WEBIF WITH_SSL

Теперь наступает та часть, которую вы так долго ждали, кросс-компиляция Oscam для Android.

make static EXTRA_FLAGS="-pie" LIB_RT= LIB_PTHREAD= CROSS=$TOOLCHAIN/bin/arm-linux-androideabi-

Если все сработало, то у вас должен быть хороший двоичный файл в папке дистрибутива oscam-svn.

Я знаю, о чем ты думаешь :

– “Какого черта, это же не АПК. Как я установлю и запущу это на своем устройстве?”.

Ну, то, что мы только что сделали, было компиляцией собственного кода C для запуска в среде Android.
APK – это пакет, который содержит байт-код (скомпилированный код java) и ресурсы, которые будут работать внутри виртуальной машины android java (которая может быть Dalvik или ART в зависимости от вашей версии Android).

Нам нужно будет наш родной двоичный файл в качестве ресурса, извлечь его в место, где он может быть выполнен (не работает на SD-карте), сделать его исполняемым и запустить его.
Но это будет для следующего урока.

 

 

Читайте также: