Статья навеяна этой новостью на Хабре
Печальные новости о проекте YouTube Vanced. Гугл потребовал закрытия проекта и удаления готовых дистрибутивов. Разработчики подчинились. Поэтому больше YouTube Vanced с официального сайта не скачать. Возможно есть где-нибудь на зеркалах, но надо быть осторожным. В дистрибутиве могут быть вредные присадки.
Напомню, чем был хорош YouTube Vanced (здесь писал, как его установить):
- Проигрывание видео в фоне, в том числе с погашенным экраном
- Проигрывание видео "картинка в картинке" на фоне другого приложения
- Отстутсвие рекламы от Ютуба
- Отстутсвие рекламных интеграций от авторов роликов (SponsorBlock)
- Подмена кодеков
- Расширенная настройка видеопараметров и много чего по мелочи
Но дело освобождения от рекламы живет и побеждает... ну почти. Теперь есть проект ReVanced. Позволяет самостоятельно пропатчить установочный файл YouTube. Для тех, кто хочет себя почувствовать кулхацкером. Надеюсь, мне блог не удалят за рассказ, как пропатчить Ютуб
Документация у них зачаточном состоянии. Но испытать проект на себе можно. Официальные требования для того, чтобы попробовать:
- ADB. Скачать можно с официального сайта. Распакуйте содержимое архива в директорию, из которой будете работать. У меня это C:\Soft\platform-tools
- x64 or x86 architecture for now. То есть компьютер на Интеле или АМД. Думаю, с этим проблем нет. ADB и Zulu JDK (см. ниже) есть даже под Mак
- The apk you want to patch (e.g. YouTube v17.24.34 or YouTube Music v5.03.50). Make sure the same version of the app is installed on the device. Пакет Ютуба (apk) можно взят тут. Важно брать не последнюю версию, а ту, что рекомендуют разработчики ReVanced. Она указана на странице с требованиями. На момент написания стать это 17.24.34. Если возьмете не ту версию, будут такие ошибки:
WARNING: Skipping seekbar-tapping: Incompatible with version 17.24.35. This patch is only compatible with version com.google.android.youtube: 17.17.34, 17.19.36, 17.20.37, 17.22.36, 17.23.35, 17.23.36, 17.24.34
- Zulu JDK 17. Брать тут. На всякий случай, полное название "Azul Zulu Build of OpenJDK"
- Android SDK if you plan to build the integrations from source. Это нам не пригодится
- Добавлю от себя. У вас должен стоять microG. У меня он уже стоит, так как он используется YouTube Vanced.
Вначале я попытался пойти по этой инструкции. Но она устарела. Ключи запуска изменились. Ссылки на пакеты устарели.
У меня последовательность действий получилась следующая:
- Скачиваем ADB и распаковываем. Рекомендую делать короткий путь, чтобы проще было переходить в каталог из командной строки. Мой путь C:\Soft\platform-tools
- Скачиваем и ставим Zulu JDK. При установке надо автивировать пункт добавления путей в переменные окружения, чтобы можно было просто написать java [options]
- Скачиваем файлы проекта: revanced-cli, revanced-patches, revanced-integrations. И конечно apk-файл Ютуба. Я рекомендую дать скаченным файла простые названия, чтобы ими было удобно пользоваться в командной строке. apk Ютуба я назвал "youtube1.apk", apk c revanced-integrations, соответственно, "revanced-integrations.apk". Скаченные файлы копируем в директорию ADB. То есть я скопировал в C:\Soft\platform-tools.
- Запускаем командную строку, переходим в каталог с ADB и нашими файлами. Тут такой момент. В контекстном меню каталога есть пункт "Открыть в терминале" (Windows 11). Но такой терминал у меня рабол некорректно, он не видел запускаемого файла JAVA. Видимо, не читал переменные окружения. И файлы внутри директории видел только с префексом ".\". В общем, не надо так делать. лучше открыть терминал в меню "Пуск/Start" и выполнить команду cd:
PS C:\Users\Evgeniy> cd C:\Soft\platform-tools\ PS C:\Soft\platform-tools> ls Каталог: C:\Soft\platform-tools Mode LastWriteTime Length Name ---- ------------- ------ ---- ------ 01.01.2008 0:00 5989376 adb.exe ------ 01.01.2008 0:00 97792 AdbWinApi.dll ------ 01.01.2008 0:00 62976 AdbWinUsbApi.dll ------ 01.01.2008 0:00 241664 dmtracedump.exe ------ 01.01.2008 0:00 436224 etc1tool.exe ------ 01.01.2008 0:00 1649152 fastboot.exe ------ 01.01.2008 0:00 44032 hprof-conv.exe ------ 01.01.2008 0:00 231594 libwinpthread-1.dll ------ 01.01.2008 0:00 489984 make_f2fs.exe ------ 01.01.2008 0:00 489984 make_f2fs_casefold.exe ------ 01.01.2008 0:00 1157 mke2fs.conf ------ 01.01.2008 0:00 752128 mke2fs.exe ------ 01.01.2008 0:00 2834292 NOTICE.txt -a---- 25.06.2022 22:22 45397186 revanced-cli-1.11.1-all.jar -a---- 25.06.2022 22:20 1816001 revanced-integrations.apk -a---- 25.06.2022 23:22 2040 revanced-integrations.keystore -a---- 25.06.2022 22:10 114924 revanced-patches-1.10.5.dex -a---- 25.06.2022 22:10 251013 revanced-patches-1.10.5.jar -a---- 26.06.2022 0:08 2040 revanced.keystore ------ 01.01.2008 0:00 37 source.properties ------ 01.01.2008 0:00 1162752 sqlite3.exe -a---- 25.06.2022 22:21 137603855 youtube.apk -a---- 25.06.2022 23:35 137603855 youtube1.apk
попробуйте запустить команду java. Должен быть вывод примерно такой:PS C:\Soft\platform-tools> java Usage: java [options] <mainclass> [args...] (to execute a class) or java [options] -jar <jarfile> [args...] (to execute a jar file) or java [options] -m <module>[/<mainclass>] [args...] java [options] --module <module>[/<mainclass>] [args...] (to execute the main class in a module) or java [options] <sourcefile> [args] (to execute a single source-file program) Arguments following the main class, source file, -jar <jarfile>, -m or --module <module>/<mainclass> are passed as the arguments to main class. ..........
- Включаем на телефоне отладку по USB. На моем телефоне для этого надо 10 раз пошлепать по номеру сборки в "Информации о телефоне" для получения доступа к "Меню разработчика". Затем выбрать соответствющий пункт. Способ может быть свой каждой модели телефона.
- Нужно узнать идентификатор телефона. Для этого подключаем телефон к комптютеру по USB и вводим команду:
PS C:\Soft\platform-tools> adb devices * daemon not running; starting now at tcp:5037 * daemon started successfully List of devices attached 12345678 unauthorized
На экране смартфона появится окно с предложением авторизовать подключение. Соглашаемся. Еще раз выполняем команду для проверки:PS C:\Soft\platform-tools> ./adb devices List of devices attached 12345678 device
Теперь всё хорошо. Нам нужен это идентификатор - в моем примере 12345678. - Надо определиться с теми патчами, которые вы НЕ хотите накладывать. Полный список можно вывести следующей командой. Рекомендую это сделать на своем компьютере, разработчики бодро вносят изменения:
PS C:\Soft\platform-tools> java.exe -jar .\revanced-cli-1.11.1-all.jar -b .\revanced-patches-1.10.5.jar -l INFO: seekbar-tapping: Enable tapping on the seekbar of the YouTube player. INFO: general-ads: Patch to remove general ads in bytecode. INFO: video-ads: Patch to remove ads in the YouTube video player. INFO: custom-branding: Change the branding of YouTube. INFO: premium-heading: Show the premium branding on the the YouTube home screen. INFO: minimized-playback: Enable minimized and background playback. INFO: disable-fullscreen-panels: Disable comments panel in fullscreen view. INFO: old-quality-layout: Enable the original quality flyout menu. INFO: disable-create-button: Disable the create button. INFO: amoled: Enables pure black theme. INFO: disable-shorts-button: Hide the shorts button. INFO: hide-cast-button: Patch to hide the cast button. INFO: microg-support: Patch to allow YouTube ReVanced to run without root and under a different package name. INFO: background-play: Enable playing music in the background. INFO: exclusive-audio-playback: Add the option to play music without video. INFO: codecs-unlock: Enables more audio codecs. Usually results in better audio quality but may depend on song and device. INFO: upgrade-button-remover: Remove the upgrade tab from the pivot bar in YouTube music. INFO: tasteBuilder-remover: Removes the "Tell us which artists you like" card from the Home screen. The same functionality can be triggered from the settings anyway
Приведу список ключей, доступный на момент написания статьи. Тоже рекомендую проверить список на момент вашей работы:PS C:\Soft\platform-tools> java.exe -jar .\revanced-cli-1.11.1-all.jar -h Usage: ReVanced-CLI [-hV] (-b=<patchBundles> [-b=<patchBundles>]... [-l] [-a=<inputFile> -o=<outputPath> [-e=<excludedPatches>]... [-r] [--experimental] [-m=<mergeFiles>]... [--mount] [--cn=<cn>] [--keystore=<keystorePath>] [-p=<password>] [-d=<deploy>] [-t=<cacheDirectory>] [-c]]) -a, --apk=<inputFile> Input file to be patched -b, --bundles=<patchBundles> One or more bundles of patches -c, --clean Clean the temporal resource cache directory. This will be done anyways when running the patcher --cn=<cn> Overwrite the default CN for the signed file -d, --deploy-on=<deploy> If specified, deploy to adb device with given name -e, --exclude=<excludedPatches> Explicitly exclude patches --experimental Disable patch version compatibility patch -h, --help Show this help message and exit. --keystore=<keystorePath> File path to your keystore -l, --list List patches only -m, --merge=<mergeFiles> One or more dex file containers to merge --mount If specified, instead of installing, mount -o, --out=<outputPath> Output file path -p, --password=<password> Overwrite the default password for the signed file -r, --resource-patcher Disable patching resources -t, --temp-dir=<cacheDirectory> Temporal resource cache directory -V, --version Print version information and exit.
Например, в статье, на которую я ссылался выше использовался ключ "-i", позволявший активировать патч. Надо было перечислить все патчи, которые нужно применить. А вот в текущей версии такого ключа нет, но есть ключ "-e", который исключает применение тех или иных патчей. То есть оказывает обратное действие в сравнении со старым ключом "-i". - Проверяем, что телефон подключен к компьютеру и выполняем команду:
PS C:\Soft\platform-tools> java.exe -jar .\revanced-cli-1.11.1-all.jar -a .\youtube1.apk -c -d 12345678 -o .\revanced.apk -b .\revanced-patches-1.10.5.jar -m .\revanced-integrations.apk INFO: Decoding resources INFO: Reading dex files INFO: Merging .\revanced-integrations.apk WARNING: Skipping background-play: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music WARNING: Skipping exclusive-audio-playback: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music WARNING: Skipping codecs-unlock: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music WARNING: Skipping upgrade-button-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music WARNING: Skipping tasteBuilder-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music INFO: seekbar-tapping succeeded INFO: general-ads succeeded INFO: video-ads succeeded INFO: custom-branding succeeded INFO: premium-heading succeeded INFO: minimized-playback succeeded INFO: disable-fullscreen-panels succeeded INFO: old-quality-layout succeeded INFO: disable-create-button succeeded INFO: amoled succeeded INFO: disable-shorts-button succeeded INFO: hide-cast-button succeeded INFO: microg-support succeeded INFO: Compiling resources INFO: Writing modified dex files INFO: Writing dex file classes.dex INFO: Writing dex file classes3.dex INFO: Writing dex file classes2.dex INFO: Writing dex file classes4.dex INFO: Writing dex file classes6.dex INFO: Writing dex file classes5.dex INFO: Writing dex file classes7.dex INFO: Writing dex file classes8.dex INFO: Writing resources INFO: Aligning revanced_raw.apk INFO: Signing revanced_aligned.apk INFO: Found existing keystore: revanced INFO: Copying revanced_signed.apk to revanced.apk INFO: Installing without mounting INFO: Finished
Пакет будет подготовлен и установлен на телефон. Важно. Имя пакета в ключе"-o .\revanced.apk" - это выходное имя создаваемого пакета. Его на момент запуска команды еще не существует. Имя можно выбрать любое. Идентификатор устройства в ключе "-d 12345678" мы узнали на шаге 6.
Пример команды, если мы хотим исключить некоторые патчи:java.exe -jar .\revanced-cli-1.11.1-all.jar -a .\youtube1.apk -c -d 6535d72f -o .\revanced.apk -b .\revanced-patches-1.10.5.jar -m .\revanced-integrations.apk -e custom-branding -e premium-heading -e amoled
- Остается проверить, что прижение появилось на телефоне и работает.
Из замеченных минусов - нет тонкой настройки видео, как было в YouTube Vanced. И нет фильтра на ремкламную интеграцию авторов видео. И явный минус - всю эту операцию надо делать регулярно с выходом новых версий Ютуба и патчей ReVanced к нему
Комментариев нет:
Отправить комментарий