Fedora 20 Compile Cyanogenmod 11.0 - Nexus 4 ( mako ) example

本文详细介绍了如何在Linux环境下安装Android SDK、JDK,并通过配置环境变量实现adb和fastboot命令的可用性。同时,文章还指导了如何安装Eclipse IDE和初始化Cyanogenmod 11.0的源代码目录,为开发者提供了全面的开发环境搭建教程。
Install adb/fastboot/android sdk :

# cd /opt
# wget http://dl.google.com/android/adt/adt-bundle-linux-x86_64-20131030.zip
# unzip adt-bundle-linux-x86_64-20131030.zip
# ln -s adt-bundle-linux-x86_64-20131030 adt-bundle

Add new path for a normal user:
$echo "export PATH="/opt/adt-bundle/sdk/platform-tools:\$PATH"" >> /home/maccu/.bashrc
$ bash
$ which fastboot
/opt/adt-bundle/sdk/platform-tools/fastboot
$ which adb
/opt/adt-bundle/sdk/platform-tools/adb

Add new path for ror root:
# echo "export PATH="/opt/adt-bundle/sdk/platform-tools:\$PATH"" >> /root/.bashrc
# bash 
# which fastboot
/opt/adt-bundle/sdk/platform-tools/fastboot
# which adb
/opt/adt-bundle/sdk/platform-tools/adb


Install jdk:

Download Java JDK from here and install:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

# rpm -qa | grep java 
java-1.7.0-openjdk-headless-1.7.0.60-2.4.3.0.fc20.x86_64
abrt-java-connector-1.0.6-1.fc20.x86_64
java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc20.x86_64
javapackages-tools-3.4.1-1.fc20.noarch
tzdata-java-2013h-1.fc20.noarch
python-javapackages-3.4.1-1.fc20.noarch

# rpm -ivh jdk-7u45-linux-x64.rpm

# which javah
/usr/bin/which: no javah in (/opt/adt-bundle/sdk/platform-tools:/opt/adt-bundle-linux-x86-20130522/sdk/platform-tools:/opt/adt-bundle-linux-x86-20130522/sdk/tools:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

# ls /usr/java/default/bin/javah 
/usr/java/default/bin/javah

# ln -s /usr/java/default/bin/javah /usr/bin/javah
# which javah
/bin/javah

#  java -version
java version "1.7.0_45"
OpenJDK Runtime Environment (fedora-2.4.3.0.fc20-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)


If you have problem during the building of CM11.0 ,you need a version 6 Java Development Kit for building  CM11.0. Usually, the SUN JDK 6 is recommended. But there is another way: you can use the OpenJDK 6. When you installed the required packages as described above, you will just need to configure your Java installation.

Remove jdk

# rpm -qa | grep jdk 
java-1.7.0-openjdk-headless-1.7.0.60-2.4.3.0.fc20.x86_64
java-1.7.0-openjdk-1.7.0.60-2.4.3.0.fc20.x86_64
jdk-1.7.0_45-fcs.x86_64

# rpm -e jdk-1.7.0_45-fcs.x86_64

Download from oracle site, you must need a oracle account.
http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64-rpm.bin

# chmod +x jdk-6u45-linux-x64-rpm.bin 
# ./jdk-6u45-linux-x64-rpm.bin 

# ln -s /usr/java/default/bin/javah /usr/bin/javah


# /usr/bin/javah -version
javah version "1.6.0_45"

Install dependencies:

# yum install -y zip curl gcc gcc-c++ flex bison gperf glibc-devel.{x86_64,i686} zlib-devel.{x86_64,i686} ncurses-devel.i686 libX11-devel.i686 libstdc++.i686 readline-devel.i686 libXrender.i686 libXrandr.i686 perl-Digest-MD5-File python-markdown mesa-libGL-devel.i686 git

This is important

If you have 64-bit systems, you will need to install some 32bit packages, because Android SDK is 32bit
32 bit packages
# yum install glibc.i686 glibc-devel.i686 libstdc++.i686 zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686

If you are compiling custom ROM's, most utilize CyanogenMod's squisher script and mka command

which needs these two packages.
# yum install -y schedtool pngcrush

Install Eclipse:
This is important
If you have problems like [Bug875490] try to install the "Fedora Eclipse" group rather than just "yum install eclipse"
Eclipse IDE (3.5 and higher is needed because of ADT plugin dependency on Equinox P2)
yum install eclipse-jdt

# yum install eclipse-jtd

Installing Repo Script:

# mkdir ~/bin
# export PATH=~/bin:$PATH
# echo "export PATH=~/bin:\$PATH" >> /root/.bashrc

# curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
# chmod a+x ~/bin/repo

For version 1.20, the SHA-1 checksum for repo is e197cb48ff4ddda4d11f23940d316e323b29671c
# /usr/bin/openssl sha1 repo 
SHA1(repo)= e197cb48ff4ddda4d11f23940d316e323b29671c

# which repo 
~/bin/repo


Inizialize source directory:

Inizialize source directory for Cyanogenmod 11.0:

# mkdir -p ~/android/cm-11.0
# cd ~/android/cm-11.0

# git config --global user.email "yourmailaddress@gmail.com"
# git config --global user.name "Maccu Maccu"


# repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0

If you want to change this, please re-run 'repo init' with --config-name

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white
  bold     dim      ul       reverse
Enable color display in this user account (y/N)? y

Inizialize source directory for Cyanogenmod 10.2:



# mkdir -p ~/android/cm-10.2
# cd ~/android/cm-10.2


# git config --global user.email "yourmailaddress@gmail.com"
# git config --global user.name "Maccu Maccu"


# repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2

If you want to change this, please re-run 'repo init' with --config-name

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white
  bold     dim      ul       reverse
Enable color display in this user account (y/N)? y


Initialize source directory behind a proxy:

# git config --get http.proxy http://localhost:5865 (ntlmaps example)
# repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0

with https:

# repo init -u https://github.com/CyanogenMod/android.git -b cm-11.0


Start download - Sync source repo:

you must have at least 25 GB free
# cd ~/android/cm-11.0
# repo sync

wait...
If your not on the ultra super fast connection, you need to wait.

# cd .. 
# du -sh cm-11.0/
20G cm-11.0/

If you are running into a lot of syncing errors the reason might be that the 'repo sync' command is establishing four threads automatically. This might be too much. So try to change the command to run with one thread only by using

# repo sync -j1 

Get prebuild apps :

# cd /home/maccu/android/cm-11.0/vendor/cm
# ./get-prebuilts 

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   178  100   178    0     0    179      0 --:--:-- --:--:-- --:--:--   179
100  455k  100  455k    0     0   217k      0  0:00:02  0:00:02 --:--:-- 1221k
Archive:  ./proprietary/Term.apk
  inflating: ./proprietary/lib/armeabi/libjackpal-androidterm4.so  
  inflating: ./proprietary/lib/mips/libjackpal-androidterm4.so  
  inflating: ./proprietary/lib/x86/libjackpal-androidterm4.so  

or

#  ./vendor/cm/get-prebuilts

Prepare device specific code : 

# cd /home/maccu/android/cm-11.0/
# pwd
/home/maccu/android/cm-11.0

# . build/envsetup.sh 
or 
# source build/envsetup.sh 
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/goldfish/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including vendor/cm/vendorsetup.sh
including sdk/bash_completion/adb.bash
including vendor/cm/bash_completion/git.bash
including vendor/cm/bash_completion/repo.bash


# breakfast mako 
including vendor/cm/vendorsetup.sh
ls: cannot access device/*/mako/cm.mk: No such file or directory
build/core/product_config.mk:233: *** Can not locate config makefile for product "cm_mako".  Stop.
Device mako not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_lge_mako
Default revision: cm-11.0
Checking branch info
CyanogenMod/android_device_lge_mako already exists
Syncing repository to retrieve project.
Fetching project CyanogenMod/android_device_lge_mako

============================================
PLATFORM_VERSION_CODENAME= REL
PLATFORM_VERSION= 4.4
CM_VERSION= 11-20131125-UNOFFICIAL-mako
TARGET_PRODUCT= cm_mako
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=krait
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA= Linux-3.11.8-300.fc20.x86_64-x86_64-with-fedora-20-Heisenbug
HOST_BUILD_TYPE=release
BUILD_ID= KRT16S
OUT_DIR= /home/maccu/android/cm-11.0/out
============================================


if you have problem with "mako" try with "lge_mako" :
ls: cannot access device/*/mako/cm.mk: No such file or directory
build/core/product_config.mk:234: *** Cannot locate config makefile for product "cm_mako".  Stop.
** Don't have a product spec for: 'cm_mako'
** Do you have the right repo manifest?

warning: local_manifest.xml is deprecated; put local manifests in `/home/maccu/android/cm-11/.repo/local_manifests` instead


# breakfast lge_mako
including vendor/cm/vendorsetup.sh
ls: cannot access device/*/lge_mako/cm.mk: No such file or directory
build/core/product_config.mk:233: *** Can not locate config makefile for product "cm_lge_mako".  Stop.

Device lge_mako not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).....


Helpful Tip from  http://wiki.cyanogenmod.org/w/Build_for_mako

If the build doesn't start, try lunch and choose your device from the menu. If that doesn't work, try breakfast and choose from the menu. The command make mako should then work.

A second, bonus tip! If you get a command not found error for croot or brunch or lunch, be sure you’ve done the “ . build/envsetup.sh” command in this Terminal session from the ~/android/system directory.

Extract proprietary data:

Connect your device to your computer and turn on USB debugging on Developer Options.
Go to your device vendor directory and extract files from your phone, for Nexus 4:

# adb devices
List of devices attached 
04d6f87fe10e0122 device

# cd device/lge/mako/
# ./extract-files.sh

# cat extract-files.sh 
#!/bin/sh

VENDOR=lge
DEVICE=mako

BASE=../../../vendor/$VENDOR/$DEVICE/proprietary
rm -rf $BASE/*

for FILE in `cat proprietary-blobs.txt | grep -v ^# | grep -v ^$`; do
    DIR=`dirname $FILE`
    if [ ! -d $BASE/$DIR ]; then
        mkdir -p $BASE/$DIR
    fi
    adb pull /system/$FILE $BASE/$FILE
done


Enable caching :

# export USE_CCACHE=1

Setup the environment :

# cd /home/mfalchi/android/cm-11.0/
# . build/envsetup.sh

# croot
# brunch mako

Use your device specific code instead of mako, if you are using different device.
Wait for build to complete. It can take 1-5 hours.
Get installable zip from out directory and install it via custom recovery.
内容概要:本文研究基于豪猪算法(CPO)实现多无人机协同集群在三维空间中的避障路径规划,旨在通过优化目标函数(最低成本,涵盖路径长度、飞行高度、威胁规避和转弯角度)来提升无人机集群的任务执行效率与安全性。该方法采用Matlab进行算法设计与仿真验证,系统性地展示了CPO算法在复杂三维动态环境下的路径搜索能力与优化性能,突出其在多机协同、动态障碍物规避和资源最优分配方面的优势。研究不仅实现了路径规划的核心算法构建,还提供了完整的代码资源与仿真案例,便于进一步对比分析与工程应用。; 适合人群:具备一定Matlab编程基础,从事无人机控制、智能优化算法、路径规划、协同导航、自动化系统等相关领域的科研人员、研究生及工程技术人员。; 使用场景及目标:①开展多无人机协同作业中的三维路径规划研究;②评估并对比豪猪算法(CPO)与其他智能优化算法(如GA、PSO、GWO、TTHHO等)在路径规划任务中的性能差异;③实现复杂环境中多无人机的安全避障、能耗优化与飞行稳定性提升的仿真与验证。; 阅读建议:建议结合提供的Matlab代码进行仿真实践,重点关注目标函数的建模方式、CPO算法的迭代机制与参数敏感性分析,并通过与其它算法的对比实验深入理解其收敛性、鲁棒性及适用范围。
内容概要:本文档围绕“无电流传感器模型预测MPC串联型谐振DAB模型”的Simulink仿真实现展开,系统介绍了基于模型预测控制(MPC)的高性能控制策略在串联型谐振双有源桥(DAB)变换器中的应用,重点突出无需传统电流传感器的设计思路,以降低硬件成本并提升系统可靠性。文档整合了大量电力电子与控制领域的高价值仿真资源,涵盖LLC谐振变换器、微电网调度、状态估计、故障检测、优化算法等多个方向,并提供配套的Matlab/Simulink代码与模型,部分标注为“创新未发表”或“博士/硕士论文复现”,具有较强的科研前瞻性与复现参考价值。所有资料可通过百度网盘及公众号“荔枝科研社”获取。; 适合人群:电力电子、自动化、电气工程及其相关专业的研究生、高校科研人员,以及从事新能源发电、储能系统、电力变换器开发的工程技术人员。; 使用场景及目标:① 深入理解无电流传感器控制与MPC在DAB变换器中的融合机制与实现方法;② 利用所提供的Simulink模型与Matlab代码进行科研复现、算法改进与系统性能优化;③ 拓展应用于谐振变换器、微电网能量管理、电力电子系统稳定性分析等相关课题的研究与工程实践。; 阅读建议:建议结合仿真模型动手实践,优先从基础案例入手,循序渐进地过渡到复杂系统;重点关注标注“复现”与“创新”的内容以激发科研灵感,同时注意梳理各技术模块间的内在联系,构建系统化的知识架构。
内容概要:本文围绕“基于DDPM的光伏功率时序场景生成方法研究”展开,结合Python代码实现,系统阐述了去噪扩散概率模型(DDPM)在光伏发电功率不确定性建模与场景生成中的应用。研究深入剖析了DDPM的前向扩散与反向生成机制,通过构建时序生成框架,有效捕捉光伏出力的随机性与时空相关性,旨在为电力系统调度、储能配置及风险评估提供高质量的输入场景。文中还引入W-GAN作为对比模型,评估不同生成对抗网络在光伏数据生成任务中的表现差异,并进一步探讨了所生成场景在联合市场环境下虚拟电厂(VPP)竞价与优化决策中的实际应用价值。整体研究强调科研过程中“借力”成熟算法框架与自主创新相结合的重要性,倡导通过复现经典模型提升科研效率与工程实践能力。; 适合人群:具备一定Python编程基础和深度学习理论知识,从事新能源发电预测、电力系统优化、智能电网、虚拟电厂运营等相关领域的科研人员、高校研究生及工程技术开发者。; 使用场景及目标:① 学习并动手复现基于DDPM的光伏功率时间序列生成模型;② 探索并解决光伏出力不确定性带来的调度与规划难题,服务于微电网能量管理、电力市场竞价等应用场景;③ 对比分析DDPM与W-GAN等生成模型在新能源功率场景生成任务中的性能优劣,选择最优技术路线; 阅读建议:建议读者结合文中提供的网盘资源(包括完整代码、训练模型与实测数据集)进行同步实践操作,重点关注DDPM模型的网络结构设计、损失函数定义及采样推理过程的代码实现细节,并结合电力系统背景知识深入理解生成场景的实际物理意义与应用潜力。
内容概要:本文系统研究了基于Wasserstein生成对抗网络(W-GAN)的光伏出力场景生成方法,旨在解决光伏发电固有的随机性与波动性所带来的建模难题。通过Python编程实现W-GAN模型,有效缓解传统GAN训练过程中的梯度消失与模式崩溃问题,显著提升了生成时序数据的真实性、多样性及时序相关性。该方法能够生成高保真的光伏功率出力场景,为电力系统中新能源不确定性建模提供了可靠的数据支撑,广泛应用于优化调度、风险评估、储能配置及微电网规划等领域。研究不仅涵盖模型架构设计、损失函数优化与训练策略,还强调生成场景的统计特性验证与实际应用适配性。; 适合人群:具备Python编程能力及机器学习基础,从事新能源发电、电力系统分析、智能电网优化、不确定性建模等相关领域的研究生、科研人员与工程技术开发者。; 使用场景及目标:①为含高比例光伏的电力系统提供多样化、高精度的出力场景输入;②支撑微电网能量管理、储能系统规划与日前调度决策;③提升新能源接入背景下系统运行的安全性与经济性分析能力;④作为深度学习在能源时序数据生成中的典型应用案例进行教学与科研参考。; 阅读建议:建议读者结合所提供的Python代码深入实践,重点关注生成器与判别器的网络结构设计、Wasserstein距离的实现机制以及梯度惩罚项的引入方式,并在不同地区、不同季节的光伏数据集上进行模型训练与效果对比,以全面掌握W-GAN在新能源场景生成中的关键技术细节与调优策略。
内容概要:本文详细介绍了一种针对LLC谐振变换器的变频移相混合控制模型,并基于Simulink平台完成了系统的仿真实现。该模型深度融合变频控制与移相控制的技术优势,旨在提升LLC变换器在宽范围负载条件下的转换效率与动态响应性能,尤其在低压增益工况下展现出优异的稳定性与调节能力。通过构建精确的Simulink仿真系统,全面验证了所提混合控制策略在稳态精度、瞬态响应及系统鲁棒性方面的有效性,为高频高效电源转换系统的工程化设计与优化提供了可靠的理论依据和技术支撑。; 适合人群:具备电力电子技术、自动控制理论及相关仿真技能背景的科研人员、电气工程领域高校研究生,以及从事新能源电源、电动汽车充电系统、光伏微网等高频电源产品研发的工程技术人员。; 使用场景及目标:①用于高性能LLC谐振变换器的控制策略研究与动态性能优化;②适用于对电源转换效率、响应速度和输出稳定性要求严苛的工业与新能源应用场景,如车载充电机、数据中心电源、可再生能源并网系统等;③为相关科研课题、学位论文或企业技术研发项目提供高保真仿真模型与技术验证平台。; 阅读建议:学习者需熟练掌握Simulink建模方法与电力电子电路工作原理,建议结合具体应用参数调整控制器设计,深入探究变频与移相控制间的协同作用机制,并可通过引入非理想因素进一步开展鲁棒性与优化设计研究。
内容概要:本文详细介绍了2.4G无线头戴麦克风的设计与制作过程,采用“发射端+接收端”分体式架构,以MOD2500模块为核心实现2.4G无线音频传输,配合WM8974音频采集芯片和PCM5102A数模转换芯片,完成高保真、低延迟的音频信号采集、传输与还原。系统支持32KHz/16bit音频参数,具备三色LED状态指示、单按键智能控制、快速配对等功能,电源管理采用SC9017充电芯片和RT9193-3.3V稳压电路,确保稳定供电。文章涵盖原理说明、元器件选型、硬件电路设计、PCB布局、焊接制作、模块配置及系统调试全流程,并通过多项性能测试验证其在传输距离、抗干扰、续航和音质还原方面的优良表现。; 适合人群:电子工程、嵌入式系统相关专业的学生,以及从事音频设备开发、无线通信产品设计的工程师和技术人员,具备一定电路设计与焊接基础者更佳。; 使用场景及目标:①用于教学讲解无线音频系统的设计方法;②应用于会议、直播、演出等场景中替代传统有线麦克风;③作为DIY项目帮助开发者掌握2.4G无线传输、音频编解码、电源管理等关键技术的实际应用。; 阅读建议:建议结合文中的电路图、PCB设计与调试步骤动手实践,重点关注MOD2500模块的配置流程与I2S/SPI通信设置,同时在调试阶段使用示波器和万用表辅助排查问题,以全面提升硬件开发与系统集成能力。
YOLOv11城市火灾场景火焰与烟雾目标检测数据集 目标类别:['Fire', 'Smoke'] 中文类别:['火焰', '烟雾'] 训练集:9156 张 验证集:872 张 测试集:435 张 总计:10463 张 该数据集提供了data.yaml文件,内容如下: train: ../train/images val: ../valid/images test: ../test/images nc: 2 names: ['Fire', 'Smoke'] 该数据集聚焦于城市及自然环境中火灾发生时的火焰与烟雾识别,涵盖多种典型火灾场景,包括建筑火灾、森林火灾、车辆燃烧及室内火源等。图像采集覆盖白天与夜间、室内外等多种光照条件,真实还原了火灾在不同环境下的视觉特征,具备高度的现实代表性与应用价值,为火灾早期预警与应急响应系统提供了坚实的数据支撑。 该数据集包含训练集9156张、验证集872张、测试集435张,共计10463张图像,数据分布结构合理,训练样本充足,验证与测试集比例适中,能够有效支持模型训练过程中的性能评估与泛化能力检验,确保模型在实际部署中具备良好的稳定性与可靠性。 标注工作严格按照目标边界框规范执行,火焰与烟雾区域均被精准标注,边界清晰,未出现漏标或误标现象。各类别在复杂背景下的识别标注保持一致性,尤其在烟雾扩散区域和火焰动态变化场景中,标注精度高,充分体现了高质量的人工标注标准,为后续模型学习提供了可靠依据。 该数据集可广泛应用于城市消防监控、森林防火预警、工业安全监测以及智能安防系统等领域,特别适用于需要实时识别火灾初期征兆的场景,如高层建筑、交通枢纽、易燃品仓库等关键场所,助力构建智能化火灾防控体系,提升公共安全水平。
内容概要:本文研究了虚拟电厂(VPP)在“日前-日内”联合电力市场中的竞价与优化策略,提出了一种基于Matlab代码实现的综合优化模型。该模型充分考虑了日前市场与日内市场之间的动态耦合关系,构建了虚拟电厂参与双阶段市场的竞价决策框架,通过引入先进的优化算法实现对分布式能源资源的高效调度,旨在最小化运行成本并提升市场竞争力。研究详细阐述了模型的目标函数、约束条件、求解流程及关键技术环节,并配套提供了完整的Matlab实现代码,便于读者复现与拓展应用。该策略有效增强了虚拟电厂应对可再生能源出力不确定性的能力,为其在复杂多变的电力市场环境中实现经济效益最大化提供了理论支持与技术路径。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的高校研究生、科研人员及从事能源互联网、电力市场运营、分布式能源管理等相关工作的工程技术人员。; 使用场景及目标:①用于虚拟电厂参与“日前-日内”联合电力市场的竞价策略仿真与性能评估;②为高比例可再生能源接入背景下的电力市场机制设计、多时间尺度调度优化提供模型参考;③支持学术论文复现、硕博课题研究及科研项目原型开发。; 阅读建议:建议读者结合Matlab代码逐模块理解模型构建逻辑,重点掌握两阶段优化架构的设计思想、不确定性处理方法及市场出清机制的实现方式,可进一步结合机器学习预测技术提升可再生能源出力预测精度,从而优化整体竞价策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值