首页
社区
课程
招聘
[分享]pixel 5 编译安卓12源码和源码
发表于: 2025-4-8 10:23 2296

[分享]pixel 5 编译安卓12源码和源码

2025-4-8 10:23
2296

下载地址:

源代码标记和 build:09fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6L8%4g2J5j5$3g2Q4x3X3g2S2L8X3c8J5L8$3W2V1i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0U0M7#2)9J5c8Y4y4W2N6s2g2H3i4K6u0r3M7X3g2X3k6i4u0W2L8X3y4W2i4K6u0r3j5Y4g2A6L8r3c8Q4x3X3c8F1N6h3#2T1k6i4u0K6

谷歌官方镜像:77eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0K6i4K6u0W2k6$3!0G2k6$3I4W2i4K6u0W2j5$3&6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0r3K9h3#2S2k6$3g2K6i4K6y4r3K9r3I4Q4x3@1c8*7K9q4)9J5k6r3y4F1i4K6t1K6M7X3g2V1k6X3W2F1

驱动程序二进制文件:7f3K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0K6i4K6u0W2k6$3!0G2k6$3I4W2i4K6u0W2j5$3&6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0r3k6s2u0A6N6X3g2J5M7#2)9K6c8X3S2D9i4K6y4p5P5X3S2Q4x3X3c8U0L8W2)9J5x3%4u0W2k6r3k6A6L8R3`.`.

内核分支信息:61aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3L8i4y4E0i4K6u0r3i4K6u0n7M7X3g2X3M7H3`.`.

环境搭建:

硬盘最少要300G以上,内存最少要16G以上,如果要内核和源码 硬盘最少500G

本次编译所用的环境配置:
vmware版本 15 Pro
Ubuntu版本 20.4 TLS
空间 750G
内存 32G

下图的F盘 是编译完源码和内核所用的空间

1. 更换国内源:

安装好系统后,先将Ubuntu的源更换成国内的源,如 清华源、中科大源。这样下载的速度就会很快了。

编辑源列表

1
sudo nano /etc/apt/sources.list

替换默认源

1
2
3
4
5
6
7
8
9
10
11
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
 
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
 
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
 
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

2. 安装依赖:

配置好源后就可以搭建源码编译的环境了。

1
2
3
4
5
sudo apt-get update
sudo apt-get install git openjdk-11-jdk flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev \
libxml2-utils xsltproc unzip fontconfig python-is-python3 libncurses5

3. 安装Python3:

2020年1月1日起,不再支持 python2,请使用 python3。

1
sudo apt install python3.8

4. 配置个人信息:

分别替换为自己的名字和邮箱(邮箱和名字随便填)

1
2
git config --global user.name YourName
git config --global user.email you@example.com

5. 安装 Repo 工具

1
2
3
mkdir ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

如果下载不下来,可以用下面的命令试试

1
2
3
4
mkdir ~/bin
PATH=~/bin:$PATH
curl -sSL  'b3eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4k6i4u0J5K9i4c8Q4x3X3c8Y4L8$3!0Y4L8r3g2K6L8%4g2J5j5$3g2Q4x3X3g2H3M7X3!0^5P5g2)9J5k6i4g2K6N6r3y4D9N6h3N6Q4x3X3g2G2M7X3N6Q4x3V1k6Y4K9i4c8Q4x3X3c8J5k6i4m8G2i4K6u0r3i4K6u0n7i4K6u0r3L8h3q4K6N6r3g2J5i4K6u0r3M7X3g2H3L8#2)9K6c8X3k6G2M7X3#2S2N6q4)9K6c8q4c8q4h3q4c8Q4x3U0M7`. |base64 -d > ~/bin/repo
chmod a+x ~/bin/repo

6. 创建工作目录

1
mkdir 12 & cd 12

7. 下载 12 源码

在这里 61bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6L8%4g2J5j5$3g2Q4x3X3g2S2L8X3c8J5L8$3W2V1i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0U0M7#2)9J5c8Y4y4W2N6s2g2H3i4K6u0r3M7X3g2X3k6i4u0W2L8X3y4W2i4K6u0r3j5Y4g2A6L8r3c8Q4x3X3c8F1N6h3#2T1k6i4u0K6i4K6y4r3K9r3I4Q4x3@1c8*7K9q4)9J5k6r3y4F1
查看自己手机所对应的Tag, 比如我的手机是 Pixel 5,在 Tag 列表查看对应的机型都有哪些 TAG。

这里我选了android-12.0.0_r28这个Tag,(因为这个Tag支持的手机型号多,到时候换手机可以直接用)

build ID 标记 支持的设备
SQ1A.220205.002 android-12.0.0_r28 Pixel 3a、Pixel 3a XL、Pixel 4、Pixel 4 XL、Pixel 4a、Pixel 4a (5G)、Pixel 5、Pixel 5a (5G)

8. 初始化 Repo

注意,repo 默认的使用的地址是 REPO_URL = 'b71K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4k6i4u0J5K9i4c8Q4x3X3g2Y4L8$3!0Y4L8r3g2K6L8%4g2J5j5$3g2Q4x3X3g2U0L8$3#2Q4x3V1k6Y4K9i4c8Q4x3X3c8J5k6i4m8G2i4K6t1%4

这里需要修改 REPO_URL,否则会出现无法下载的情况.

修改方法:打开 ~/bin/repo, 把 REPO_URL 一行替换成下面的:

1
REPO_URL = '01fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4k6i4u0J5K9i4c8Q4x3X3c8Y4L8$3!0Y4L8r3g2K6L8%4g2J5j5$3g2Q4x3X3g2H3M7X3!0^5P5g2)9J5k6i4g2K6N6r3y4D9N6h3N6Q4x3X3g2G2M7X3N6Q4x3V1k6Y4K9i4c8Q4x3X3c8J5k6i4m8G2i4K6t1%4

9. 拉取源码:

1
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-12.0.0_r28
1
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.0.0_r28

10. 同步代码

最好是晚上同步代码,大约一个半小时就同步完成了,我在白天同步过,6个多小时都没有同步完

1
repo sync -c -j4

也可以使用下面的脚本同步。

1
2
3
4
5
6
7
8
#!/bin/bash
python3 ~/bin/repo sync -j4
while [ $? -ne 0 ]
do
echo "======sync failed ,re-sync again======"
sleep 3
python3 ~/bin/repo sync -j4
done

11.下载对应的驱动

驱动程序需要在这里下载 e59K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0K6i4K6u0W2k6$3!0G2k6$3I4W2i4K6u0W2j5$3&6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0r3k6s2u0A6N6X3g2J5M7#2)9K6c8X3S2D9i4K6y4p5P5X3S2Q4x3X3c8U0L8W2)9J5x3%4u0W2k6r3k6A6L8R3`.`.

以pixel 5 为例,根据源码的Tag手机所对应的驱动是

1
Android 12.0.0(SQ1A.220205.002) 的 Pixel 5

Pixel 5 驱动二进制文件 下载地址 591K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0K6i4K6u0W2k6$3!0G2k6$3I4W2i4K6u0W2j5$3&6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0r3k6s2u0A6N6X3g2J5M7#2)9K6c8X3S2D9i4K6y4p5P5X3S2Q4x3X3c8U0L8W2)9J5x3%4u0W2k6r3k6A6L8R3`.`.

下载完成后将驱动文件解压,放入aosp文件的根目录。

下载的内容解压后,是两个 sh 文件,以 Pixel 5 为例,在代码根目录执行,用 Enter 向下翻页,直到最后手动输入 I ACCEPT.

使用Enter快速向下翻页的时候,翻到到第8的时候最好改为单点Enter,不然容易直接跳过去。

12. 编译AOSP源码

  1. 增加swap内存

如果内存不够,会在99%的时候显示编译失败

增加10G swap内存空间,不然会内存不够,如果你的硬盘空间够大,可以分配更大的内存空间。

1
dd if=/dev/zero of=swapfile bs=1M count=30000

mkswap创建交换文件:

1
mkswap swapfile

swapon激活

1
sudo swapon swapfile

查看

1
free -m

13. 编译源码

-user:代表这是编译出的系统镜像是可以用来正式发布到市场的版本,其权限是被限制的(如,没有root权限,不能dedug等)

-userdebug:在user版本的基础上开放了root权限和debug权限。

-eng:代表engineer,也就是所谓的开发工程师的版本,拥有最大的权限(root等),还附带了许多debug工具。

  1. 设置构建环境
1
source build/envsetup.sh
  1. 选择目标设备
1
lunch

这里我选择 aosp_redfin-userdebug,就选 30:

1
 
  1. 开始编译
1
make -j8

第一次编译,大约需要4个小时,最好不要修改任何代码,不然一报错就要重新开始

编译过程

编译完成

编译完成后,可以将下面的命令写成一个脚本,如12.sh,这样就不用每次输入命令了。

1
2
3
source build/envsetup.sh
lunch 30
make -j8

编译完的镜像会在/out/target/product/redfin 文件中,redfin 是设备代号,redfin 表示 Pixel 5。

13.刷机

  1. 先去e33K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0K6i4K6u0W2k6$3!0G2k6$3I4W2i4K6u0W2j5$3&6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0r3K9h3#2S2k6$3g2K6i4K6y4r3K9r3I4Q4x3@1c8*7K9q4)9J5k6r3y4F1i4K6t1K6M7X3g2V1k6X3W2F1i4@1f1@1i4@1t1^5i4K6S2n7i4@1f1^5i4@1u0p5i4@1u0p5i4@1f1#2i4@1q4r3i4@1t1&6i4@1f1#2i4@1u0m8i4K6V1@1i4@1f1^5i4@1t1H3i4@1t1%4i4@1f1$3i4@1q4p5i4K6S2o6i4@1f1#2i4@1q4q4i4K6V1^5i4@1f1$3i4K6V1$3i4@1t1&6i4@1f1&6i4K6V1#2i4K6W2o6i4@1f1#2i4K6R3K6i4K6S2r3i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1#2i4@1t1H3i4K6R3$3i4@1f1$3i4K6R3&6i4K6S2n7i4@1f1$3i4K6W2o6i4@1u0m8i4@1f1#2i4K6R3^5i4@1t1%4i4@1f1$3i4K6R3^5i4K6V1H3i4@1f1^5i4@1p5$3i4K6R3I4i4@1f1%4i4@1u0o6i4K6V1$3i4@1f1^5i4@1q4r3i4K6V1I4i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1^5i4@1t1H3i4@1t1%4i4@1f1$3i4@1q4p5i4K6S2o6i4@1f1#2i4@1q4q4i4K6V1^5i4@1f1$3i4K6V1$3i4@1t1&6i4@1f1&6i4K6V1#2i4K6W2o6i4@1f1#2i4K6R3K6i4K6S2r3i4@1f1%4i4K6R3&6i4K6R3^5i4@1f1$3i4K6W2o6i4@1q4o6i4@1f1K6i4K6R3H3i4K6R3J5

如果刷机的时候报错,只要将android-info.txt修改成对应的版本即可

安装fastboot

1
sudo apt-get install  android-tools-fastboot

安装kvm

1
sudo apt-get install qemu-kvm

配置ANDROID_PRODUCT_OUT环境(注意要用自己的路径替代)

1
export ANDROID_PRODUCT_OUT=/home/lving/Desktop/12/out/target/product/redfin

编译完的镜像会在/out/target/product/redfin 文件中,redfin 是设备代号,redfin 表示 Pixel 5。

注意, 没有vbmeta_system.img的话刷出来可能无法开机

1
2
3
4
5
6
adb reboot fastboot
fastboot flash product product.img
fastboot flash system_ext system_ext.img
fastboot flash vbmeta_system vbmeta_system.img
fastboot flash system system.img
fastboot reboot

如果使用上面命令刷完无法开机,可以把谷歌的官方镜像全部换成自己编译出来的镜像,再刷一次就可以了。

如果刷入使用了下面编译的内核,刷机的时候要先刷入使用源码编译出来的内核文件,再刷入系统镜像,不然可能会无法开机

14. 一些改机代码

  1. 添加抓包证书

把抓包证书放在AOSP源码目录下的“system/ca-certificates/files”目录下即可,添加的是以.0结尾的证书

2.跟踪JNI调用

在 art/runtime/reflection.cc中的InvokeWithArgArray函数中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void InvokeWithArgArray(const ScopedObjectAccessAlreadyRunnable& soa,
                               ArtMethod* method, ArgArray* arg_array, JValue* result,
                               const char* shorty)
    REQUIRES_SHARED(Locks::mutator_lock_) {
  uint32_t* args = arg_array->GetArray();
  if (UNLIKELY(soa.Env()->IsCheckJniEnabled())) {
    CheckMethodArguments(soa.Vm(), method->GetInterfaceMethodIfProxy(kRuntimePointerSize), args);
  }
 
  //add code before invoke
  ArtMethod* artMethod= nullptr;
  Thread* self=Thread::Current();
  const ManagedStack* managedStack= self->GetManagedStack();
  if(managedStack!= nullptr){
      ArtMethod** tmpartmethod= managedStack->GetTopQuickFrame();
      if(tmpartmethod!= nullptr){
          artMethod=*tmpartmethod;
      }
  }
  if(artMethod!= nullptr && (artMethod->PrettyMethod()).find("xxxxxxx") != std::string::npos) {
      std::ostringstream oss;
      oss << "[InvokeWithArgArray]beforecall  caller:" << artMethod->PrettyMethod() << "---called:"<< method->PrettyMethod();
      LOG(ERROR)<<oss.str();
  }
  //add end
 
  method->Invoke(soa.Self(), args, arg_array->GetNumBytes(), result, shorty);
}

这个find("xxxxxxx")中的xxxxxxx根据自己的需要来填写。

内核编译

官方构建内核文档:45bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6L8%4g2J5j5$3g2Q4x3X3g2S2L8X3c8J5L8$3W2V1i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0U0M7#2)9J5c8Y4y4W2N6s2g2H3i4K6u0r3j5Y4g2A6L8r3c8Q4x3V1k6T1N6h3W2D9k6r3W2F1k6#2)9J5k6s2m8A6P5r3g2D9i4K6u0V1K9$3g2J5L8X3g2D9M7#2)9K6c8X3S2D9i4K6y4p5P5X3S2Q4x3X3c8U0L8W2)9J5x3%4y4#2M7s2m8G2M7Y4c8W2k6q4)9J5k6r3E0W2M7X3&6W2L8q4)9J5k6r3u0J5j5h3&6U0K9r3g2K6

1. 查询内核分支

cceK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6L8%4g2J5j5$3g2Q4x3X3g2S2L8X3c8J5L8$3W2V1i4K6u0W2j5$3!0E0i4K6u0r3k6r3!0U0M7#2)9J5c8Y4y4W2N6s2g2H3i4K6u0r3j5Y4g2A6L8r3c8Q4x3V1k6T1N6h3W2D9k6r3W2F1k6#2)9J5k6s2m8A6P5r3g2D9i4K6u0V1K9$3g2J5L8X3g2D9M7H3`.`.中查看pixel5设备对应的内核分支信息。

设备 仓库分支
Pixel 5 (redfin) android-msm-redbull-4.19-android14-qpr3

通过查找,我们知道了Pixel 5 的分支是android-msm-redbull-4.19-android14-qpr3,内核版本为 4.19。内核源码的代号是

1
android-msm-redbull-4.19

那我么就在e82K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3K9$3g2J5L8X3g2D9i4K6u0r3L8h3q4F1K9h3k6W2M7%4c8Q4x3V1k6Q4x3V1u0J5k6h3k6K6i4@1f1@1i4@1t1^5i4@1q4p5i4@1f1$3i4K6V1H3i4K6W2o6i4@1f1%4i4@1t1@1i4@1p5J5i4@1f1#2i4@1q4r3i4@1t1&6i4@1f1#2i4@1u0m8i4K6V1@1i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1#2i4K6R3$3i4K6R3#2i4@1f1$3i4@1p5H3i4@1t1^5i4@1f1#2i4K6R3^5i4K6R3$3i4@1f1$3i4K6V1@1i4@1q4r3 android-msm-redbull-4.19

我们编译的是pixle 5 的安卓12源码,所以对应的分支是

1
android-msm-redbull-4.19-android12

2. 下载内核源码

确定了内核源码的具体分支后,就可以下载内核源码了。

  1. 创建工作目录
1
mkdir kernel && cd kernel
  1. 下载分支源码
1
repo init -u git://mirrors.ustc.edu.cn/aosp/kernel/manifest -b android-msm-redbull-4.19-android12
  1. 更新repo,拉取内核源码
1
repo sync -j4

在拉却内核源码的时候,最好使用代理下载,我使用国内的源下载每次都报错
配置代理

1
2
3
4
export http_proxy=http://192.168.x.xxx:10809
export https_proxy=https://192.168.x.xxx:10809
git config --global http.proxy http://192.168.x.xxx:10809
git config --global https.proxy https://192.168.x.xxx:10809
1
mkdir kernel && cd kernel
1
repo init -u https://android.googlesource.com/kernel/manifest -b android-msm-redbull-4.19-android12
1
repo sync -j4

4. 查看内核版本

1
adb shell cat proc/version

输出

1
Linux version 4.19.202-g5fbe36ea56f7-ab8008033 (build-user@build-host) (Android (7284624, based on r416183b) clang version 12.0.5 (https://android.googlesource.com/toolchain/llvm-project c935d99d7cf2016289302412d708641d52d2f7ee), LLD 12.0.5 (/buildbot/src/android/llvm-toolchain/out/llvm-project/lld c935d99d7cf2016289302412d708641d52d2f7ee)) #1 SMP PREEMPT Thu Dec 16 06:08:11 UTC 2021

其中 g 后面的就是分支号

1
5fbe36ea56f7

5. 切换分支

1
cd private/msm-google
1
git checkout 5fbe36ea56f7

6. 编译内核

这里内核源码的编译步骤,参考了大佬oacia的帖子。

  1. 提取boot.img

从系统的rom包中提取boot.img,进一步通过Android Image Kitchen 对boot.img进行解包。

然后运行 unpackimg.bat,运行之后的窗口请不要关闭,因为输出中有需要后续使用到的参数,将输出的内容复制下来到 txt 中。

这是因为在 Android12 的包中的boot中移除了ramdisk,所以无法提取到任何内容。

解决办法就是 在 pixel 5官方的factory包中去找较低版本的包,例如 Android11 的出厂包。

帖子中解包出来的是boot.img-ramdisk.cpio, 我解包出来的是boot.img-ramdisk.lz4.

将解包出来的boot.img-ramdisk.lz4 放到内核源码根目录。

2.下载mkbootimg.py

地址 a0bK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3q4G2M7%4m8^5M7X3g2X3i4K6u0W2j5$3!0E0i4K6u0r3j5h3&6V1M7X3!0A6k6q4)9J5k6o6p5I4i4K6u0W2x3q4)9J5k6e0m8Q4y4h3k6J5x3U0q4Q4x3V1k6^5M7X3g2X3i4K6u0r3M7%4W2K6N6r3g2E0i4K6u0r3N6r3!0G2L8s2y4Q4x3V1k6E0K9$3u0G2L8%4c8A6L8h3N6Q4x3V1k6E0K9$3u0G2L8%4c8A6L8h3N6Q4x3X3g2H3P5b7`.`.

将下载的mkbootimg.py也放到内核源码根目录。

3.开始编译

1
BUILD_CONFIG=private/msm-google/build.config.redbull BUILD_BOOT_IMG=1 MKBOOTIMG_PATH=mkbootimg.py VENDOR_RAMDISK_BINARY=boot.img-ramdisk.cpio.lz4 KERNEL_BINARY=Image.lz4 BOOT_IMAGE_HEADER_VERSION=3 KERNEL_CMDLINE="" BASE_ADDRESS=0x00000000 PAGE_SIZE=4096 build/build.sh

编译出来的vendor_boot.img 会比原来小很多

使用内核源码编译的vendor_boot.img大小

原来的vendor_boot.img大小

修改了代码 记得 git commit 一下啊,不然会显示脏内核

  1. 刷机
1
2
3
4
adb reboot bootloader
fastboot flash boot boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot reboot

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 3
支持
分享
最新回复 (7)
雪    币: 107
活跃值: (2212)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2

一个坑都没踩吗?没有出现触摸失效的问题吗。看起来不是原创,如果自己有做过,这里面有些步骤是有问题的。

最后于 2025-4-8 10:49 被frozenrain编辑 ,原因:
2025-4-8 10:47
0
雪    币: 5049
活跃值: (7720)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你是无敌的
2025-4-8 12:17
0
雪    币: 93
活跃值: (1370)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
frozenrain 一个坑都没踩吗?没有出现触摸失效的问题吗。看起来不是原创,如果自己有做过,这里面有些步骤是有问题的。
这里面的坑都在文章里标注了,你说的触摸失效问题,也遇到过,只是根据大佬oacia的帖子里步骤做,问题就解决了,所以就没写
2025-4-8 14:08
0
雪    币: 2860
活跃值: (11724)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错的文章,感谢
2025-4-9 09:32
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
lov520ing 这里面的坑都在文章里标注了,你说的触摸失效问题,也遇到过,只是根据大佬oacia的帖子里步骤做,问题就解决了,所以就没写
可以指个路吗?没搜索到这个
2025-4-10 09:17
0
雪    币: 107
活跃值: (2212)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
只讲编译,那我应该把所有的坑都踩完了,有问题的可以私我。
2025-4-12 08:49
0
雪    币: 232
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
大佬,我编译提示下面的错误
[  0% 217/129664] bc: libclcore.bc <= frameworks/rs/driver/runtime/rs_f16_math.c
FAILED: out/target/product/generic/obj/RENDERSCRIPT_BITCODE/libclcore.bc_intermediates/rs_f16_math.bc
/bin/bash -c "PWD=/proc/self/cwd prebuilts/clang/host/linux-x86/clang-3289846/bin/clang -Iframeworks/rs/script_api/include -Iexternal/clang/lib/Headers -MD -DRS_VERSION=24 -std=c99 -c -O3 -fno-builtin -emit-llvm -target renderscript32-linux-androideabi -fsigned-char  -Wno-deprecated -Werror  -Werror -Wall -Wextra -Iframeworks/rs/cpu_ref -DRS_DECLARE_EXPIRED_APIS  -x renderscript frameworks/rs/driver/runtime/rs_f16_math.c -o out/target/product/generic/obj/RENDERSCRIPT_BITCODE/libclcore.bc_intermediates/rs_f16_math.bc"
prebuilts/clang/host/linux-x86/clang-3289846/bin/clang.real: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
然后我安装依赖提示错误
sudo apt-get install git openjdk-11-jdk flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python-is-python3 libncurses5
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
E: 无法定位软件包 lib32ncurses5-dev
E: 无法定位软件包 libncurses5

怎么版
2025-5-31 10:25
0
游客
登录 | 注册 方可回帖
返回