MENU

后增强器时代,怎样无感知解锁网易云付费歌曲

2019 年 09 月 10 日 • 阅读: 631 • 脚本

得益于对网易云及其他音乐平台 API 的逆向,大佬们逐渐意识到,可以使用第三方音源替换网易云的付费和无版权音乐,从而实现解锁网易云付费和无版权歌曲的效果。此类插件最早兴起于 Android 的 Xposed 平台,几经转手,音量增强器 终成集大成者,初版至今已有 3 年有余。然而随着各大音乐平台限制日益严格,加上作者精力有限,这一插件看起来即将淡出历史舞台,其继任者则是现今如日中天,专注于对接各大音源和网易云的 UnblockNeteaseMusic。该项目基于 Nodejs,以通用代理的形式向外提供服务,可运行于几乎所有操作系统,已衍生出 路由Xposed 插件 等多种特定环境下的无感知使用形式。而我今天介绍的,则是 Windows 和 Android 平台下,相对无感知的使用方法。

Windows

设置权限

管理员身份 打开 Powershell,Windows 10 快捷入口:Win + X - Windows Powershell(管理员)(A),复制以下代码,右键粘贴到命令行回车,允许系统执行 PS 脚本。

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force

安装代理

复制以下代码,右键粘贴到命令行回车,打开安装菜单。

Powershell Code

$UNBLOCKNETEASEMUSIC_NAME = 'UnblockNeteaseMusic'
$INSTALL_PATH = "$env:APPDATA\$UNBLOCKNETEASEMUSIC_NAME"
$BIN_PATH = "$INSTALL_PATH\bin"
$TMP_PATH = "$INSTALL_PATH\tmp"
$SCRIPT_PATH = "$INSTALL_PATH\script"

$NODE_VERSION = 'v12.10.0'
$OS_BIT = if ([System.Environment]::Is64BitOperatingSystem) { 'x64' } else { 'x86' }
$NODE_NAME = "node-$NODE_VERSION-win-$OS_BIT"
$NODE_URI = "https://npm.taobao.org/mirrors/node/$NODE_VERSION/$NODE_NAME.zip"
$NODE_SAVE_PATH = "$TMP_PATH\$NODE_NAME.zip"
$NODE_EXEC_PATH = "$BIN_PATH\$NODE_NAME\node.exe"

$UNBLOCKNETEASEMUSIC_URI = "https://github.com/nondanee/$UNBLOCKNETEASEMUSIC_NAME/archive/master.zip"
$UNBLOCKNETEASEMUSIC_SAVE_PATH = "$TMP_PATH\$UNBLOCKNETEASEMUSIC_NAME.zip"
$UNBLOCKNETEASEMUSIC_EXEC_PATH = "$BIN_PATH\$UNBLOCKNETEASEMUSIC_NAME-master\app.js"

$WORKING_DIRECTORY = "$INSTALL_PATH\bin\$UNBLOCKNETEASEMUSIC_NAME-master"
$EXEC_ARGUMENTS = 'app.js -p 6666 -o kuwo qq netease kugou migu xiami baidu joox'

$AUTO_BOOT_PS_SCRIPT = "$SCRIPT_PATH\$UNBLOCKNETEASEMUSIC_NAME.ps1"
$AUTO_BOOT_VB_SCRIPT = "$SCRIPT_PATH\$UNBLOCKNETEASEMUSIC_NAME.vbs"
$AUTO_BOOT_SHORTCUT = "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\$UNBLOCKNETEASEMUSIC_NAME.lnk"

function ShowMenu () {
    Clear-Host 
    WriteLine
    @" 
     网易云解锁安装脚本
            V0.02 2019.09.12
                @AUTHOR LOGI
----------------------------
0. 退出
1. 安装
2. 卸载
3. 运行
4. 停止
5. 更新
6. 添加开机自启 
7. 取消开机自启
"@
    WriteLine
    switch (Read-Host '请选择') {
        0 { exit 0 }
        1 { InstallUnblockNeteaseMusic }
        2 { UninstallUnblockNeteaseMusic }
        3 { StartUnblockNeteaseMusic }
        4 { StopUnblockNeteaseMusic }
        5 { UpdateUnblockNeteaseMusic }
        6 { EnableUnblockNeteaseMusicAutoBoot }
        7 { DisableUnblockNeteaseMusicAutoBoot }
        Default { 
            ShowMenu
        }
    }
}

function WriteLine() {
    Write-Host -Object '----------------------------'
}

function NewPath($Path) {
    if (!(Test-Path "$Path")) {
        $null = New-Item -ItemType Directory -Path "$Path" -Force
    }
}

function RemovePath($Path) {
    if (Test-Path -Path "$Path") {
        Remove-Item -Path "$Path" -Force -Recurse
    }
}

function ReleaseZip($ZipFile, $TargetFolder) {
    try {
        Expand-Archive -Path "$ZipFile" -DestinationPath "$TargetFolder" -Force:$true
    }
    catch {
        NewPath "$TargetFolder"
        $ShellApp = New-Object -ComObject Shell.Application
        $Files = $ShellApp.NameSpace($ZipFile).Items()
        $ShellApp.NameSpace($TargetFolder).CopyHere($Files)
    }
}


function CreateShortcut($SourceExe, $ArgumentsToSourceExe, $DestinationPath) {
    $WshShell = New-Object -ComObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut($DestinationPath)
    $Shortcut.TargetPath = $SourceExe
    if ($null -ne "$ArgumentsToSourceExe") {
        $Shortcut.Arguments = "$ArgumentsToSourceExe"
    }
    $Shortcut.Save()
}

function CheckInstallationStatus() {
    if (Test-Path -Path "$NODE_EXEC_PATH") {
        if (Test-Path -Path "$UNBLOCKNETEASEMUSIC_EXEC_PATH") {
            return $true
        }
    }
    return $false
}

function InstallUnblockNeteaseMusic ($Update) {
    if (!($Update) -and (CheckInstallationStatus)) {
        "$UNBLOCKNETEASEMUSIC_NAME 已经安装"
        return
    }

    NewPath "$INSTALL_PATH"
    NewPath "$TMP_PATH"
    NewPath "$BIN_PATH"

    [System.Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
    if (!(Test-Path -Path "$NODE_EXEC_PATH")) {
        "正在下载 $NODE_NAME"
        Invoke-WebRequest -Uri "$NODE_URI" -OutFile "$NODE_SAVE_PATH"
        "正在解压 $NODE_NAME"
        ReleaseZip "$NODE_SAVE_PATH" "$BIN_PATH"
    }
    
    "正在下载 $UNBLOCKNETEASEMUSIC_NAME"
    Invoke-WebRequest -Uri "$UNBLOCKNETEASEMUSIC_URI" -OutFile "$UNBLOCKNETEASEMUSIC_SAVE_PATH"
    "正在解压 $UNBLOCKNETEASEMUSIC_NAME"
    ReleaseZip "$UNBLOCKNETEASEMUSIC_SAVE_PATH" "$BIN_PATH"

    if ($Update) {
        "$UNBLOCKNETEASEMUSIC_NAME 更新完成"
        StartUnblockNeteaseMusic
    }
    else {
        "$UNBLOCKNETEASEMUSIC_NAME 安装完成"
    }
}

function UninstallUnblockNeteaseMusic() {
    if (!(CheckInstallationStatus)) {
        "$UNBLOCKNETEASEMUSIC_NAME 尚未安装"
        return
    }

    StopUnblockNeteaseMusic
    DisableUnblockNeteaseMusicAutoBoot
    RemovePath "$INSTALL_PATH"
    "$UNBLOCKNETEASEMUSIC_NAME 卸载完成"
}

function StartUnblockNeteaseMusic() {
    if (!(CheckInstallationStatus)) {
        InstallUnblockNeteaseMusic
    }

    $null = StopUnblockNeteaseMusic
    Start-Process -WorkingDirectory "$WORKING_DIRECTORY" -FilePath "$NODE_EXEC_PATH" -WindowStyle Hidden -ArgumentList "$EXEC_ARGUMENTS"
    Start-Sleep -Seconds 3

    Get-Process -Name *node* | ForEach-Object {
        if ($_.Path -eq "$NODE_EXEC_PATH") {
            $IS_NOT_RUNNING = $false
            "$UNBLOCKNETEASEMUSIC_NAME 启动成功"
        }
    }
    if ($IS_NOT_RUNNING) {
        "$UNBLOCKNETEASEMUSIC_NAME 启动失败"
    }
}

function StopUnblockNeteaseMusic() {
    if (!(CheckInstallationStatus)) {
        "$UNBLOCKNETEASEMUSIC_NAME 尚未安装"
        return
    }
    Get-Process -Name *node* | ForEach-Object {
        if ($_.Path -eq "$NODE_EXEC_PATH") {
            Stop-Process -Id $_.Id
        }
    }
    Start-Sleep -Seconds 3
    "$UNBLOCKNETEASEMUSIC_NAME 已经停止"
}

function UpdateUnblockNeteaseMusic() {
    if (CheckInstallationStatus) {
        StopUnblockNeteaseMusic
        InstallUnblockNeteaseMusic $true
    }
    else {
        InstallUnblockNeteaseMusic
    }
}

function EnableUnblockNeteaseMusicAutoBoot() {
    if (!(CheckInstallationStatus)) {
        InstallUnblockNeteaseMusic
    }
    NewPath "$SCRIPT_PATH"
    @"
    Start-Process -WorkingDirectory "$WORKING_DIRECTORY" -FilePath "$NODE_EXEC_PATH" -WindowStyle Hidden -ArgumentList "$EXEC_ARGUMENTS"
"@ | Out-File -FilePath "$AUTO_BOOT_PS_SCRIPT" -Encoding ascii -Force

    @"
    CURR_DIR = createobject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.Path
    set WS = createobject("wscript.shell")
    WS.currentdirectory = CURR_DIR
    WS.Run "cmd /c powershell.exe -command ""& { Set-ExecutionPolicy Remotesigned -Scope Process; .'.\$UNBLOCKNETEASEMUSIC_NAME.ps1' }""",0
"@ | Out-File -FilePath "$AUTO_BOOT_VB_SCRIPT" -Encoding ascii -Force
    CreateShortcut "$AUTO_BOOT_VB_SCRIPT" $null "$AUTO_BOOT_SHORTCUT"
    '开机自启设置成功'
}


function DisableUnblockNeteaseMusicAutoBoot() {
    if (!(CheckInstallationStatus)) {
        "$UNBLOCKNETEASEMUSIC_NAME 尚未安装"
        return
    }
    RemovePath -Path  "$AUTO_BOOT_SHORTCUT"
    '开机自启取消成功'
}

while ($true) {
    ShowMenu
    WriteLine
    '请按任意键继续...'
    [void][System.Console]::ReadKey($true)
}

随后选择 1 即安装。安装完毕后选择 3 运行。如需添加开机自启,则执行 6。最后输入 0 退出。其他功能自行体验。

----------------------------
     网易云解锁安装脚本
              V0.01 2019.9.9
                @AUTHOR LOGI
----------------------------
0. 退出
1. 安装
2. 卸载
3. 运行
4. 停止
5. 更新
6. 添加开机自启
7. 取消开机自启
----------------------------
请选择:

设置代理

打开网易云音乐 PC 客户端(非 UWP 版),进入 设置 - 工具。将 Http 代理 改为 自定义代理、HTTP代理,服务器地址为 127.0.0.1,端口是 6666,最后点击 确定 重启网易云。

EVui0U.jpg

以上便是全部步骤,今后便可无感畅听大部分付费和无版权歌曲。

Android

Android 平台的无感方案条件相对苛刻,必须使用 Xposed 插件,或 太极 Magisk 版。我不打算把每一步都写出来,用过 Xposed 的大佬关心的是插件在哪,好吧,下面我就把涉及到的项目地址列出。

项目简介
UnblockNeteaseMusicNode Http 代理解锁服务
Unblock163MusicClient-XposedXposed + Java Native 代理解锁服务,俗称 音量增强器
UnblockMusicPro_XposedXposed + Node Http 代理解锁服务,音量增强器 的继任者
XposedApp Hook 平台
TaichiXposed 替代者
MagiskSuperSu 替代者

你只需安装 XposedMagiskTaichi Magisk 版,随后安装 UnblockMusicPro_Xposed 即可,效果同 音量增强器,即无感知解锁。

作者已加入自动更新功能,以下内容仅供参考

UnblockMusicPro_Xposed 基于 UnblockNeteaseMusic,后者提供可用音源,前者劫持流量转发。而 UnblockMusicPro_Xposed 安装完毕后会将 UnblockNeteaseMusic 释放到内置存储,如果哪一天上游更新,而作者未更,在 Termux 中执行以下命令可下载最新上流,分 3 次执行,中间会请求 Root 权限,务必允许。

cat >$PREFIX/bin/UBNMUG <<\EOF
if [[ ! `which git` ]]; then
    pkg update -y
    pkg install -y git
fi
cd ~
rm -rf UnblockNeteaseMusic
git clone https://github.com/nondanee/UnblockNeteaseMusic.git
EOF
chmod a+x $PREFIX/bin/UBNMUG && UBNMUG
su
UNBLOCK=/data/data/com.termux/files/home/UnblockNeteaseMusic/
RELEASE_DIRS=(
    /data/data/com.netease.cloudmusic/files/
    /sdcard/UnblockMusicPro/
)

for RELEASE_DIR in ${RELEASE_DIRS[@]}
do
    VERSION=$(fgrep version "${RELEASE_DIR}package.json")
    cp -rf "${UNBLOCK}"*  "${RELEASE_DIR}"
    sed -i "s/.*version.*/$VERSION/" "${RELEASE_DIR}package.json"
    chmod -R 700 "${RELEASE_DIR}"
done

最后编辑于: 2019 年 09 月 16 日
添加新评论

已有 11 条评论
  1. 初夏阳光 初夏阳光     Android Pie /    Google Chrome

    安装脚本我可以!之前看 GitHub 那个 nondanee/UnblockNeteaseMusic 项目,不太会搞自启动。改天试试jio本... ::quyin:1huaji::

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @初夏阳光有劳大佬帮测 bug::quyin:witty::

  2. flynn flynn     Windows 10 /    Google Chrome
    退出安装卸载运行停止更新添加开机自启取消开机自启

    请选择: 3
    UnblockNeteaseMusic 启动失败@(阴险)

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @flynn@(滑稽) 仅在 Win10 x64 上测试过,方便的话加我 QQ,帮我定位一下 BUG

    2. flynn flynn     Windows 10 /    Google Chrome

      @LOGIhttps://zhuanlan.zhihu.com/p/79631291我安装这个可以用,上面问题的具体原因我也不太清楚,不好还原@(勉强)

    3. LOGI LOGI     Android Pie /    Google Chrome

      @flynn我的意思是让我看一下你的环境,方便我找 BUG@(吐舌)

  3. C C     Windows 10 /    QQ浏览器

    请选择: 1
    正在下载 node-v12.10.0-win-x64
    正在解压 node-v12.10.0-win-x64
    正在下载 UnblockNeteaseMusic
    Invoke-WebRequest : 请求被中止: 未能创建 SSL/TLS 安全通道。
    所在位置 行:124 字符: 5

    Invoke-WebRequest -Uri "$UNBLOCKNETEASEMUSIC_URI" -OutFile "$UNBL ...ption + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

    正在解压 UnblockNeteaseMusic
    不能对 Null 值表达式调用方法。
    所在位置 行:81 字符: 9

    $Files = $ShellApp.NameSpace($ZipFile).Items()+ CategoryInfo : InvalidOperation: (:) [],RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull

    UnblockNeteaseMusic 安装完成

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @C收到,方便的话通过邮件名加我 QQ

  4. nining377 nining377     Windows X64 /    Google Chrome

    更新一下,Xposed2.5.0版已经可以在app内部手动更新脚本了哦。

    1. LOGI LOGI     Windows 10 /    Google Chrome

      @nining377为大佬打 CALL ::quyin:maimeng::

  5. 电脑白痴 电脑白痴     Windows 10 /    Google Chrome

    终于有关爱电脑白痴的大佬了哈哈。虽然中文在powershell变成乱码,但是还是跟着指示搞成功了。 真心感谢LOGI大佬!@(乖)