소스 코드
일부 앱에는 GNU LGPL 라이선스의 오픈 소스 라이브러리가 포함되어 있어요. 여기서 해당 소스 코드, 빌드에 사용하는 스크립트 그대로, 그리고 이 라이브러리와 링크되는 저희 코드를 내려받을 수 있어요.

1B Music 0.1.7
1B Music 0.1.7용. 아래 파일은 모두 이 버전을 빌드할 때 사용한 그대로예요.
- ffmpeg-9.0.2.tar.xzFFmpeg 9.0.2: ffmpeg.org에서 받은 수정하지 않은 원본 소스 코드(LGPL 2.1 이상)12.0 MB
SHA-256 8c3850283eb25fa026482078a04051e0be17347b09ef81a0849bec15a96e002e - ffmpeg-9.0.2.tar.xz.ascFFmpeg 릴리스의 OpenPGP 서명(FFmpeg 릴리스 서명 키)520 B
SHA-256 d617fd94ea354dadd2a8bb16243d37c44e1e9729b06b6ad58fe30bfb0fa943f2 - 1bmusic-0.1.7-lgpl-src.tar.gz나머지 전부를 하나의 압축 파일로: 빌드 스크립트와 설정, JNI 디코더와 CMake 파일, Chromaprint와 libswresample의 Kotlin 포팅, 라이선스 고지와 안내서(README.txt)39 KB
SHA-256 36e3b0bea34daf26a99a7bdbfcafe27beaba16573c6f82e5db51c319093b1954 - build-ffmpeg-android.shconfigure 옵션을 그대로 담은 FFmpeg 빌드 스크립트5 KB
SHA-256 2c4f30a3299070f0ffa7df5c91444128d2950dd68139f1a14372d02daeba4c10 - onebaudio.cFFmpeg에 동적으로 링크되는 JNI 디코더(C)25 KB
SHA-256 36382ea42e934eb7849c2605ccbc416a3d842c43c954298c1658a3007ee5e8a1 - CMakeLists.txtJNI 디코더용 CMake 파일1 KB
SHA-256 3439f9132bd874a1906d9fceec364b757e4fefd219910e08c29de8c239d2ab29 - SHA256SUMS위 모든 파일의 SHA-256 체크섬521 B
SHA-256 f251327bf6245991f05e94799e9b76b34a86383c1c05ce1017b506468e943b4b

1B Music 0.1.6
1B Music 0.1.6용. 아래 파일은 모두 이 버전을 빌드할 때 사용한 그대로예요.
- ffmpeg-9.0.2.tar.xzFFmpeg 9.0.2: ffmpeg.org에서 받은 수정하지 않은 원본 소스 코드(LGPL 2.1 이상)12.0 MB
SHA-256 8c3850283eb25fa026482078a04051e0be17347b09ef81a0849bec15a96e002e - ffmpeg-9.0.2.tar.xz.ascFFmpeg 릴리스의 OpenPGP 서명(FFmpeg 릴리스 서명 키)520 B
SHA-256 d617fd94ea354dadd2a8bb16243d37c44e1e9729b06b6ad58fe30bfb0fa943f2 - 1bmusic-0.1.6-lgpl-src.tar.gz나머지 전부를 하나의 압축 파일로: 빌드 스크립트와 설정, JNI 디코더와 CMake 파일, Chromaprint와 libswresample의 Kotlin 포팅, 라이선스 고지와 안내서(README.txt)39 KB
SHA-256 679d37fd508de7c7d69b754566dbe40e2189a49a440ea16d9a27b9e80a7de293 - build-ffmpeg-android.shconfigure 옵션을 그대로 담은 FFmpeg 빌드 스크립트5 KB
SHA-256 2c4f30a3299070f0ffa7df5c91444128d2950dd68139f1a14372d02daeba4c10 - onebaudio.cFFmpeg에 동적으로 링크되는 JNI 디코더(C)25 KB
SHA-256 36382ea42e934eb7849c2605ccbc416a3d842c43c954298c1658a3007ee5e8a1 - CMakeLists.txtJNI 디코더용 CMake 파일1 KB
SHA-256 3439f9132bd874a1906d9fceec364b757e4fefd219910e08c29de8c239d2ab29 - SHA256SUMS위 모든 파일의 SHA-256 체크섬521 B
SHA-256 fa76450f4733144852ea2691f9c6c4ec7f9584aa0ba8ad6b6d7cfc7188056842

1B Music 0.1.4
1B Music 0.1.4용. 아래 파일은 모두 이 버전을 빌드할 때 사용한 그대로예요.
- ffmpeg-9.0.2.tar.xzFFmpeg 9.0.2: ffmpeg.org에서 받은 수정하지 않은 원본 소스 코드(LGPL 2.1 이상)12.0 MB
SHA-256 8c3850283eb25fa026482078a04051e0be17347b09ef81a0849bec15a96e002e - ffmpeg-9.0.2.tar.xz.ascFFmpeg 릴리스의 OpenPGP 서명(FFmpeg 릴리스 서명 키)520 B
SHA-256 d617fd94ea354dadd2a8bb16243d37c44e1e9729b06b6ad58fe30bfb0fa943f2 - 1bmusic-0.1.4-lgpl-src.tar.gz나머지 전부를 하나의 압축 파일로: 빌드 스크립트와 설정, JNI 디코더와 CMake 파일, Chromaprint와 libswresample의 Kotlin 포팅, 라이선스 고지와 안내서(README.txt)39 KB
SHA-256 4c5d1d68d4c73ef388b624890bc715dc055a6e81230a456de25aed8bb19a7349 - build-ffmpeg-android.shconfigure 옵션을 그대로 담은 FFmpeg 빌드 스크립트5 KB
SHA-256 2c4f30a3299070f0ffa7df5c91444128d2950dd68139f1a14372d02daeba4c10 - onebaudio.cFFmpeg에 동적으로 링크되는 JNI 디코더(C)25 KB
SHA-256 36382ea42e934eb7849c2605ccbc416a3d842c43c954298c1658a3007ee5e8a1 - CMakeLists.txtJNI 디코더용 CMake 파일1 KB
SHA-256 3439f9132bd874a1906d9fceec364b757e4fefd219910e08c29de8c239d2ab29 - SHA256SUMS위 모든 파일의 SHA-256 체크섬521 B
SHA-256 cf4d58b2f768bf90c41c0012c0427b10e1a7c72299a7f8dcedde12d9898ddfd4

1B Music 0.1.3
1B Music 0.1.3용. 아래 파일은 모두 이 버전을 빌드할 때 사용한 그대로예요.
- ffmpeg-9.0.2.tar.xzFFmpeg 9.0.2: ffmpeg.org에서 받은 수정하지 않은 원본 소스 코드(LGPL 2.1 이상)12.0 MB
SHA-256 8c3850283eb25fa026482078a04051e0be17347b09ef81a0849bec15a96e002e - ffmpeg-9.0.2.tar.xz.ascFFmpeg 릴리스의 OpenPGP 서명(FFmpeg 릴리스 서명 키)520 B
SHA-256 d617fd94ea354dadd2a8bb16243d37c44e1e9729b06b6ad58fe30bfb0fa943f2 - 1bmusic-0.1.3-lgpl-src.tar.gz나머지 전부를 하나의 압축 파일로: 빌드 스크립트와 설정, JNI 디코더와 CMake 파일, Chromaprint와 libswresample의 Kotlin 포팅, 라이선스 고지와 안내서(README.txt)39 KB
SHA-256 81ce24f758675b7fce4790793f1882bdd103cb5e9fbba5e0e06a6444f73b6047 - build-ffmpeg-android.shconfigure 옵션을 그대로 담은 FFmpeg 빌드 스크립트5 KB
SHA-256 2c4f30a3299070f0ffa7df5c91444128d2950dd68139f1a14372d02daeba4c10 - onebaudio.cFFmpeg에 동적으로 링크되는 JNI 디코더(C)25 KB
SHA-256 36382ea42e934eb7849c2605ccbc416a3d842c43c954298c1658a3007ee5e8a1 - CMakeLists.txtJNI 디코더용 CMake 파일1 KB
SHA-256 3439f9132bd874a1906d9fceec364b757e4fefd219910e08c29de8c239d2ab29 - SHA256SUMS위 모든 파일의 SHA-256 체크섬521 B
SHA-256 df189e74aafa927ca733a2ee7a0f43ab687b29c832fef6e9b52085a80548af92
1B Music이 사용하는 것
- FFmpeg 9.0.2(libavformat, libavcodec, libavutil, libswresample)는 Android가 자체적으로 재생하지 못하는 포맷을 디코딩해요: APE, WavPack, TTA, Musepack, WMA, DSD, AIFF, CAF, Speex. 정확한 갭리스 재생을 위해 Opus와 Vorbis에도 사용해요.
- 아무것도 수정하지 않고 LGPL 구성 요소만으로(GPL이나 비자유 부분 없이) 빌드하며, 앱 안에 별도의 공유 라이브러리로 들어 있어 직접 빌드한 것으로 교체할 수 있어요.
- 음향 지문을 계산하기 위해 앱에는 Chromaprint와 libswresample의 Kotlin 포팅도 들어 있으며, 여기서 같은 라이선스로 제공해요.
라이브러리 다시 빌드하기 또는 교체하기
- 스크립트에 명시된 버전의 Android NDK를 설치하고
tools/build-ffmpeg-android.sh를 실행하세요. FFmpeg를 내려받아 SHA-256을 확인한 뒤 arm64-v8a, armeabi-v7a, x86_64용으로 빌드해요. - 수정한 FFmpeg를 사용하려면 스크립트가 찾는 위치에 소스를 풀거나 configure 줄을 바꾸세요.
- 기기의 ABI에 맞는 앱 APK에서
libavformat.so,libavcodec.so,libavutil.so,libswresample.so를 교체하고, 직접 만든 키로 APK에 서명해 설치하세요. 각 단계는 README.txt에 설명되어 있어요.
라이선스
이 구성 요소는 GNU 약소 일반 공중 사용 허가서(LGPL) 버전 2.1 또는 (선택에 따라) 그 이후 버전에 따라 배포돼요. 전문은 압축 파일과 앱(설정 → 정보)에 포함되어 있어요. FFmpeg는 FFmpeg 프로젝트의 창시자인 Fabrice Bellard의 상표예요.
배포한 모든 버전은 배포 후 최소 3년 동안 여기에 보관해요. 궁금한 점이 있거나 다른 매체로 받고 싶다면 1bytesystems@gmail.com로 연락 주세요.