Carrier IMS for Pixel 隐藏 API 实战:ITelephony、ISub 桩与 Shizuku 权限提升全解
【免费下载链接】carrier-ims-for-pixelCarrier IMS for Pixel (TurboIMS): multilingual (中文/English) pixel ims / ims / carrierconfig / volte / vowifi / 5G toolkit for Google Pixel.项目地址https://gitcode.com/gh_mirrors/ca/carrier-ims-for-pixel点击查看免费下载在 Google Pixel 上开启 VoLTE、VoWiFi、5G 显示往往被系统级权限卡住。本文带你拆解Carrier IMS for Pixel如何用ITelephony、ISub 隐藏 API 桩加上Shizuku shell 权限提升让一个普通 App 也能安全读写运营商 IMS 配置实现一键调优 5G 与网络功能。项目定位基于 TurboIMS 的持续维护分支面向中国大陆与跨区使用场景让普通用户也能低门槛完成 IMS 功能调优与问题排查。核心能力集中在 app/src/main/java/io/github/vvb2060/ims/ 目录。为什么普通 App 改不了运营商配置Android 把「运营商配置CarrierConfig」、「IMS 注册状态」、「SIM 信息」这些敏感能力都锁在系统框架层外部应用直接调用会抛出SecurityException。传统做法是 Root但门槛高、风险大。Carrier IMS for Pixel 的思路是不越狱而是借助 Shizuku 提供的 shell 权限把「身份」临时委托过去再回调系统内部接口。这就是整篇文章要讲的核心链路ITelephony负责 IMS 注册、重置、运营商测试覆盖。ISub负责读取 SIM 卡Subscription信息。Shizuku负责把普通 App 的进程「提升」到 shell 权限身份。下面拆开看每一环。ITelephony 隐藏 API 桩读 IMS 状态的钥匙ITelephony是系统电话服务的一个内部接口普通 SDK 里看不到所以项目把它「打桩」成编译期可引用的接口。桩文件定义在这里接口声明stub/src/main/java/com/android/internal/telephony/ITelephony.java它只暴露 5 个真正用到的方法方法作用setCarrierTestOverride(...)覆盖运营商测试身份MCC/MNC 等setImsProvisioningInt/getImsProvisioningInt读写 IMS 配置项resetIms(int slotIndex)重置某张卡的 IMS 会话isImsRegistered(int subId)查询某张卡 IMS 是否已注册注意Stub.asInterface被声明为nativepublic native static ITelephony asInterface(IBinder binder);这是「桩」的关键技巧——运行时由真实的系统 AIDL 方法接管编译期只保证签名一致避免直接依赖系统内部类导致打包失败。实战读取 IMS 注册状态时ImsStatusReader 会把系统服务 binder 包一层ShizukuBinderWrapper再调isImsRegistered(subId)返回值直接映射到 UI 上的「已注册 / 未注册」。这套能力在 docs/plans/2026-06-20-ims-registration-status-fix.md 里还专门做过结果类型串错的修复。ISub 桩无权限读取 SIM 卡清单要让用户选择「应用到哪张 SIM 卡」就得拿到SubscriptionInfo列表。ISub接口负责这件事AIDL 声明stub/src/main/aidl/com/android/internal/telephony/ISub.aidl它提供两个方法getActiveSubscriptionInfoList与getSlotIndex。对应的SubscriptionInfo也被打成 parcelable 桩stub/src/main/aidl/android/telephony/SubscriptionInfo.aidl。在 SimReader 里逻辑是「优先走 ISub失败回退到公开的 SubscriptionManager」val binder serviceRegisterer?.get() ?: return null val sub ISub.Stub.asInterface(ShizukuBinderWrapper(binder)) sub.getActiveSubscriptionInfoList(null, null, true)这个「双路回退」是整项目稳健性的缩影——高风险路径失败时自动降级到安全路径。Shizuku shell 权限提升整条链路的引擎上面两个桩接口都调不动真正的「开关」是 Shizuku。核心动作就一行见 ImsModifieram.startDelegateShellPermissionIdentity(Os.getuid(), null)它把当前进程身份临时委托为 shell 权限于是ServiceManager.getService(...)能拿到系统服务 binder回调ITelephony/ISub不再被安全策略拦截操作完成后必须stopDelegateShellPermissionIdentity()立刻归还身份。项目把「等待 binder 就绪」封装成 waitForShizukuBinderReady最多重试 20 次、间隔 100ms避免 Shizuku 还没热起来就调用而报错。完整的「发起调用」由 ShizukuProvider 统一编排它通过am.startInstrumentation(...)把一个特权Instrumentation跑起来用一个IInstrumentationWatcher回调收集结果并用 15 秒超时保护防止卡死。所有特权操作都经 app/src/main/aidl/android/app/IInstrumentationWatcher.aidl 这套 AIDL 桩完成通信。双路径容错Broker 回退机制写 CarrierConfig 时「持久化覆盖persistent」对非系统应用受限可能抛SecurityException。项目为此设计了主路径 Broker 回退双保险主路径ImsModifier反射调用overrideConfigpersistent 失败自动降级为 non-persistent。回退路径BrokerInstrumentation当主路径返回含persistenttrue、SecurityException等关键字时由 ShizukuProvider.tryOverrideWithBroker 再次发起。这套「先安全路径、失败可回退」的策略正是项目比早期版本更稳的关键。从代码到功能一张图看懂调用链路用户点击开关 │ ▼ ShizukuProvider.overrideImsConfig │ am.startInstrumentation(...) ▼ ImsModifier特权 Instrumentation │ startDelegateShellPermissionIdentity ▼ ServiceManager.getService → ShizukuBinderWrapper │ ├── ITelephony.Stub.asInterface(...) → 读写 IMS / 覆盖 ├── ISub.Stub.asInterface(...) → 读 SIM 信息 └── CarrierConfigManager.overrideConfig → 写运营商配置 │ ▼ stopDelegateShellPermissionIdentity归还身份关键源码速查表模块文件作用ITelephony 桩stub/src/main/java/com/android/internal/telephony/ITelephony.javaIMS 注册/重置/覆盖ISub 桩stub/src/main/aidl/com/android/internal/telephony/ISub.aidl读 SIM 信息系统服务桩stub/src/main/java/android/os/ServiceManager.java系统服务 binder 代理身份委托桩stub/src/main/java/android/app/IActivityManager.javashell 权限委托权限编排app/src/main/java/io/github/vvb2060/ims/ShizukuProvider.kt统一发起特权调用配置写入app/src/main/java/io/github/vvb2060/ims/privileged/ImsModifier.kt写 CarrierConfig IMS状态读取app/src/main/java/io/github/vvb2060/ims/privileged/ImsStatusReader.kt读 IMS 注册状态适用环境与注意事项 ⚠️设备Pixel Tensor 平台Pixel 6 / 7 / 8 / 9 / 10、Fold、Tablet。系统Android 13 及以上建议 Android 14 / 15 / 16。前置需先安装并启动 Shizuku在 App 内完成授权。本应用会修改系统运营商相关配置仅用于学习、测试与自有设备调优。请自行评估风险并对操作结果负责。想深入原理或复刻这套「隐藏 API 桩 Shizuku 提权」方案建议从 stub/ 模块的 AIDL 与桩定义读起再对照 app/src/main/java/io/github/vvb2060/ims/privileged/ 下的各个Instrumentation实现就能完整还原整条权限链路。赞分享【免费下载链接】carrier-ims-for-pixelCarrier IMS for Pixel (TurboIMS): multilingual (中文/English) pixel ims / ims / carrierconfig / volte / vowifi / 5G toolkit for Google Pixel.项目地址https://gitcode.com/gh_mirrors/ca/carrier-ims-for-pixel点击查看免费下载相关推荐如何看懂 Carrier IMS for Pixel从 UI 到 Shizuku 特权 Instrumentation 的四层架构拆解如何看懂 Carrier IMS for Pixel从 UI 到 Shizuku 特权 Instrumentation 的四层架构拆解 Carrier IMSPixel的IMS未注册怎么办Carrier IMS for Pixel一键触发IMS注册完整指南Pixel的IMS未注册怎么办Carrier IMS for Pixel一键触发IMS注册完整指南 Carrier IMS for PixelTurboIMAndroid 高版本限制 overrideConfig看 Carrier IMS for Pixel 如何用 BrokerInstrumentation 兜底Android 高版本限制 overrideConfig看 Carrier IMS for Pixel 如何用 BrokerInstrumentation 兜创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于YOLO11的飞鸟检测:从STS数据集训练到部署全流程

基于YOLO11的飞鸟检测:从STS数据集训练到部署全流程

简介:这份资源包聚焦飞鸟目标检测,面向使用YOLO系列模型的开发者、算法学习者以及无人机巡检、生态监测等应用场景。其中已包含基于Ultralytics YOLO11训练好的飞鸟检测模型,能够直接加载推理,省去繁琐的采集与训练环节&#xff1…

2026/10/11 0:37:57 阅读更多 →
AE Tips:用 TaoToken 统一 Key 批量获取属性表中的所有记录

AE Tips:用 TaoToken 统一 Key 批量获取属性表中的所有记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 0:37:57 阅读更多 →
烟雾明火烟火火灾数据集:VOC+YOLO双格式3000张实战指南

烟雾明火烟火火灾数据集:VOC+YOLO双格式3000张实战指南

简介:这份烟雾明火烟火火灾目标检测数据集面向计算机视觉方向的学习者与算法工程师,适用于火灾预警、烟火识别等场景下的模型训练与验证。数据集共3007张jpg图片,每张均配有对应的VOC格式xml标注文件与YOLO格式txt标注文件,标注工…

2026/10/11 0:37:57 阅读更多 →

最新新闻

基于Spring Boot + Vue的蘑菇百科系统设计与实现指南

基于Spring Boot + Vue的蘑菇百科系统设计与实现指南

毕设选题年年有人纠结,年年有人踩坑。如果你正盯着“XX管理系统”这类老掉牙的题目发愁,或者担心做纯网页展示类项目显得工作量不足,我强烈建议你认真看看“基于Spring Boot Vue的蘑菇百科系统”这个方向。它既有信息管理系统的完整业务链路…

2026/10/11 2:23:00 阅读更多 →
PJ85718DM与PIC18LF46K40在HVAC温控系统中的高可靠设计

PJ85718DM与PIC18LF46K40在HVAC温控系统中的高可靠设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 2:23:00 阅读更多 →
Kubernetes 内存超分与防爆死指南:基于 cgroup v2 memory.high 的平滑降级实操

Kubernetes 内存超分与防爆死指南:基于 cgroup v2 memory.high 的平滑降级实操

在 Kubernetes 生产集群的算力成本治理中,CPU 属于典型的“可压缩资源(Compressible Resource)”,当算力超卖或并发突刺时,CFS 调度器最多让应用稍微慢一点、延迟稍微抖动一下,进程本身并不会消亡。而内存则…

2026/10/11 2:23:00 阅读更多 →
Git误操作急救:reflog与fsck恢复丢失代码

Git误操作急救:reflog与fsck恢复丢失代码

git误操作这种事,凡是写过代码的人多多少少都遇到过。可能是午休回来手一抖,把分支 reset 到了一周前;也可能是合并的时候顺手 rebase 了一下,push 时才被远程仓库一口回绝;更常见的是git checkout -- .之后&#xff0…

2026/10/11 2:23:00 阅读更多 →
Linux进程控制实战:fork、exec、wait与僵尸进程排查指南

Linux进程控制实战:fork、exec、wait与僵尸进程排查指南

写Linux程序的人,几乎都要跟进程控制打交道。fork、exec、exit、wait这四个词,翻过书的人都能念出来,但真正把它们组合起来用对,才是区分“看过”和“会写”的分水岭。我见过不少开发者在多进程服务里栽跟头,要么子进程…

2026/10/11 2:23:00 阅读更多 →
Linux网络性能优化实战:从内核参数调整到tcpdump抓包排查

Linux网络性能优化实战:从内核参数调整到tcpdump抓包排查

某个深夜,线上接口的P99延迟从60ms一路冲到700ms,我第一时间就想做一轮Linux网络性能优化与监控,于是把网上那套内核参数调优脚本挨个灌进去,tcp_tw_reuse、tcp_max_syn_backlog全都改了。结果延迟没降,反而有机器连接…

2026/10/11 2:22:00 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →