Android

关于 Android 12 的 vendor freeze,我的理解是这样的

0 条评论 Android 原创 Kujou Yuko
  1. 这个特性高通是从 SMx350 及以后的平台才开始实施,已经和秋大确认过SMx150(SMx250 仍存疑)及之前的平台不会实施(也就是说,老机子不要想太多)。之所以说 SMx150 及之前的不会有,是因为此特性高通是在对 SDM845+ 的 Android 12 tag(LA.UM 10/QSSI 12.0)中才加入的,目前绝大多数厂商已经不再对其维护 Android 12,无缘该特性。
  2. 这个的意思是,odm、vendor 分区的绝大多数 blobs 和内核出厂后基本保持不变(因为芯片厂给的 BSP 代码不会有太大的更新),后续更新将采取只更新 system 分区的内容来升级 Android 版本。
  3. 这应该算是一件好事(至少在我看来),使得厂家能够减轻升级 Android 版本时的压力,第三方 ROM 维护者在适配第三方系统时变得更为简单。
  4. 理论上其他厂商也会遵从此策略(毕竟这是 Google 所提倡的)。

个人观点,如有错误或补充欢迎在评论区交流。

附:vendor freeze 的样例


如何自己编译自定义 Android ROM

0 条评论 Android 原创 Kujou Yuko

准备工作

  1. 一台服务器,要求如下:

    • 一个 x86_64 架构的 CPU,性能越强越好。
    • 至少 16G 运行内存。
    • 有至少 200G 的空闲磁盘空间。
  2. 有 Git 基本常识。

开始(以使用 Ubuntu 20.04 编译 LineageOS 18.1 为例)

  1. 安装编译 Android 所用到的软件包:

    apt-get update && apt-get upgrade -y
    apt-get install -y openjdk-8-jdk git gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses-dev libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip bc imagemagick ccache schedtool libssl-dev jq patchelf python-is-python3


Android 计算某一分区的大小(以 super 分区为例)

0 条评论 Android 原创 Kujou Yuko

首先我们输入:

ls -l /dev/block/by-name/super

看看它的返回值,例如它返回了 sda23,那么 sda23 就是 super 分区在 ROM 中的位置。

我们从内核的分区信息中查看该分区的信息:

cat /proc/partitions | grep sda23

假设它给出的返回值如下:

259        1    8388608 sda23

那么 8388608 就是 super 分区的大小(单位为 KB)。如果需要单位为 B 的(在 device tree 中定义分区大小都是使用 B 这个单位),将这个值乘 1024 就行了。


利用 adb 去除信号叉

0 条评论 Android 原创 Kujou Yuko

需要使用的东西

操作步骤

  1. 安装 adb 工具包。
  2. 安装完成后打开命令行并切换到 adb 工具包的存放目录。
  3. 在命令行中输入以下命令:

    adb shell settings put global captive_portal_http_url http://www.qualcomm.cn/generate_204
    adb shell settings put global captive_portal_https_url https://www.qualcomm.cn/generate_204
  4. 手机打开飞行模式再关闭。