CDSQ

威锋技术组CDSQ的博客,主要是将一些好的有用的,尤其是我原创的文章做个汇总吧,偶尔写写心情!新浪微博:CDSQ

运营商配置文件丢失后的故障处理 (已完工)

运营商配置文件丢失后的故障处理


有很多机友因为有深度的洁癖在清理系统垃圾,不仔细看教学又不肯用脑的情况下  “不小心”删除了运营商配置,或者自己在没有破解验证的状况下胡乱修改有系统验证的配置文件而导致无法上网,本文就是一个处理方法的教学


首先我们需要知道运营商配置的主要路径和基本常识


iOS系统的运营商配置文件主要是放置在 /System/Library/Carrier Bundles/iPhone  目录下(蜂窝版iPad为 /iPad )


国内三大运营商的配置文件路径为此目录下的:


中国移动:CMCC_cn.bundle

其中:46000;46002;46007;46008  为对应指向主目录的快链方式 (此数字为国际运营商代码)


中国联通:Unicom_cn.bundle

其中:46001  为对应指向主目录的快链方式 (此数字为国际运营商代码)


中国电信:ChinaTelecom_cn.bundle

其中:46003  为对应指向主目录的快链方式 (此数字为国际运营商代码)


如果用户在线或使用运营商配置更新过  (更新包是后缀名为:ipcc 的配置文件,实际上就是一个zip压缩包)


那么会在:/var/mobile/Library 目录创建一个 “Carrier Bundles” 文件夹,里面为和系统原生运营商/System/Library/Carrier Bundles/ 相同对应的目录结构


PS.  在网上下载的运营商 ipcc 配置文件实际上为一个 zip 文件,如果你的整个运营商配置文件“被”删除了,可以直接从里面提取!


(将 ipcc 后缀名修改为 zip 后使用解压软件打开,可看到一个 Payload 文件夹,这个里面就是对应的运营商配置文件)


再PS 一下 运营商配置文件的 iTunes 本地更新方法:


使用方法:先让itunes可加载ipcc文件:

        Mac用户在terminal中执行:defaults write com.apple.iTunes carrier-testing -bool true

        Win用户执行:"%ProgramFiles%\iTunes\iTunes.exe" /setPrefInt carrier-testing 1

        Win 64bit用户执行:"C:\Program Files (x86)\iTunes\iTunes.exe" /setPrefInt carrier-testing 1

然后打开iTunes,在设备的主界面

(Mac:按住option;Win:按住shift )点击更新


在弹出的对话框最下面的文件类型选择 iPhone/iPad 运营商配置文件 (*.ipcc) 然后找到下载的ipcc (如: CMCC_cn_iPhone.ipcc)即可更新!


用户端动态配置:


当用户插入iPhone认可的SIM卡后,会根据你的SIM卡对应的运营商创建一套指向对应的运营商系统配置的快链!具体组成为:


/var/mobile/Library 目录下的


Carrier Bundle.bundle;

Operator Bundle.bundle

CarrierDefault.bundle


这3个快链目录(看上去像三个文件夹,实际上是指向对应 /System/Library/Carrier Bundles/iPhone 目录下的运营商目录)


还有几个相关的 plist 配置文件快链位于:/var/mobile/Library/Preferences 这个用户配置文件目录下


具体为:


com.apple.carrier.plist

com.apple.operator.plist

com.apple.carrier.default.plist  


上面的几个快链文件的名称不会因为运营商的变化而变化的!


        要修复运营商就需要用到快链的创建修复,不过别指望能直接使用基于AFC文件传输的第三方管理程序,你还得使用 WinScp !而使用 WinScp 还必须在 Cydia 安装 OpenSSH 网络协议插件!


(当然你如果不嫌麻烦也可以使用 iFile来创建快链的)


当“不小心”将上述的文件删除以后,因为找不到对应的运营商配置文件,iOS会自动调用,生成指向:/System/Library/Carrier Bundles/iPhone/Unknown.bundle 目录下的通用配置文件,而这个配置文件是没有任何蜂窝数据配置的,所以是无法上网的!


还有如果是更新过运营商的,本处理不会理会升级的配置,仅恢复系统自带版本的路径的配置,之后如果配置程序版本过低的可以自行使用运营商配置文件更新!


如果你将配置文件“不小心”删除后,iOS系统因为找不到对应的运营商配置会在关于里面的运营商部分显示为:不可用,但是网络部分会显示手机卡对应的运营商网络,

此时系统重建的配置快链就只有:

/var/mobile/Library/CarrierDefault.bundle

 /var/mobile/Library/Preferences/com.apple.carrier.default.plist

且指向的都是:/System/Library/Carrier Bundles/iPhone/Default.bundle 通用配置


快连文件的组成是2个要素:第一是快连文件的名称,第二个就是快连文件指向的目标!!!(我错了!还有这个快连文件所处位置!!哎,被你们这些不动脑的打败了!!!!)


修复过程: (为了直观,例子全部以 联通 SIM卡 为演示 ,PC端使用 WinScp 来修复)


1,首先检查你SIM卡对应的运营商在 /System/Library/Carrier Bundles/iPhone  目录下的配置文件是否还在,如果没有了,请自行去下载对应的文件!解包,并将对应的.bundle文件夹放置到相应目录( /System/Library/Carrier Bundles/iPhone)下,将复制进去的 Unicom_cn.bundle 以及里面的文件夹权限修改为:0755;文件修改为:0644

上面为官方配置文件的恢复,下面为需要的配置快连重建方法!!!

2,检查对应运营商的国际运营商代码快链是否还在,没有的话使用WinScp来创建一个快链(如 46001)创建方式为:首先选中 Unicom_cn.bundle 目录,然后在空白处右键,新建 → 链接,在弹出的对话框最上的 “连接/快捷方式文件:” 填上前面常识篇说明的联通的国际运营商代码:46001(移动的需建立上述的4个快链),下面的 “建立连接/快捷方式到:” 里面的内容已经自动填上了 (因为是当前路径同级,所以前面不用填上完整路径,当然你愿意填也可以!这也是为什么上面要你先点选Unicom_cn.bundle 目录的原因)


3,进入 /System/Library/Carrier Bundles/iPhone/Unicom_cn.bundle 然后空白处右键 → 将路径复制到剪贴板 备用


4,定位到:/var/mobile/Library 文件夹,在空白处右键,新建 → 链接,在弹出的对话框最上的 “连接/快捷方式文件:” 填上 “Carrier Bundle.bundle” (不管你是移动,联通还是电信的卡,这个快链文件名都一样,仅下面的目的文件夹不同)下面的 “建立连接/快捷方式到:” 里面填上:”/System/Library/Carrier Bundles/iPhone/46001” (不直接填Unicom_cn.bundle而直接写创建的 46001 是系统的标准,你硬要填 Unicom_cn.bundle 也可以,但是因为移动的国际运营商代码有4个,估计搞不清楚具体是用的哪一个,你就可以直接填 CMCC_cn.bundle )


5,和上面第四步差不多,在空白处右键,新建 → 链接,在弹出的对话框最上的 “连接/快捷方式文件:” 填上 “Operator Bundle.bundle” , 下面的 “建立连接/快捷方式到:” 里面填上:”/System/Library/Carrier Bundles/iPhone/46001” 


6,修改 “CarrierDefault.bundle” 的快链目的文件夹,也就是在“CarrierDefault.bundle” 的快链上右键,编辑连接 → 链接,在弹出的对话框下面的 “建立连接/快捷方式到:” 里面填上:”/System/Library/Carrier Bundles/iPhone/46001”


7,进入:/var/mobile/Library/Preferences 这个用户配置文件目录


8,在空白处右键,新建 → 链接,在弹出的对话框最上的 “连接/快捷方式文件:” 填上 “com.apple.carrier.plist” , 下面的 “建立连接/快捷方式到:” 里面填上:”/System/Library/Carrier Bundles/iPhone/46001/carrier.plist”


9, 在空白处右键,新建 → 链接,在弹出的对话框最上的 “连接/快捷方式文件:” 填上 “com.apple.operator.plist” , 下面的 “建立连接/快捷方式到:” 里面填上:”/System/Library/Carrier Bundles/iPhone/46001/carrier.plist”


10, 修改 “com.apple.carrier.default.plist” 的快链目的文件(没有就新建),也就是在“com.apple.carrier.default.plist” 的快链上右键,编辑连接 → 链接,在弹出的对话框下面的 “建立连接/快捷方式到:” 里面填上:”/System/Library/Carrier Bundles/iPhone/46001/carrier.plist ”


11, 重启 iPhone


OK,大功告成!状态栏久违的运营商标识回来了,也可以正常的上网了!


关于使用 iFile 建立快连的方式

(这里就是上面教程创建快连的方式,请主动用脑替换)


如果不会使用WinScp,且有被迫害妄想症以及使用OSX的系统的,其实也可以使用iFile来创建快连的,

方法其实很简单,就是:

      先找到要创建的源文件(包括文件和文件夹),点击右上角的编辑,选中需要创建快连的“源文件”(文件或文件夹左边的小圆点会变黑),再点击右下角的一个“剪贴板”的图标,选择“复制/链接”,此时源文件路径信息已经复制到剪贴板的内存里面了。

      进入要创建快连的目录,点击右上角“编辑”,点击右下角“剪贴板图标”选择“创建链接”(此时还不能自己定义快连的名称,先别管,创建的快连名称文字颜色在iFile里面仔细看会是一个淡蓝色)

本步骤就是创建快连文件的过程,但是创建时无法自定义文件名,就需要单独修改创建的这个快连文件的文件名了!)

点击快连右边的“圈圈感叹号”,点击名称,将快连名称修改为你需要创建的快连名称!

和WINSCP的教程一样,创建好3个文件夹和3个plist文件的快连!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


如果同名的快连文件已存在,会无法重命名的,此时就不需要新创建这个快连文件,仅需在快连右边的“圈圈感叹号”点击后,检查下面的“链接目标”是不是对的,不对就修改为正确的目标!!!


注意一点就是在 /System/Library/Carrier Bundles/iPhone/ 里面创建运营商的国际运营商代码数字代码快连时,会提示是否覆盖,这个时候肯定要选择重命名!还要特别注意一点的就是文件名的字母是区分大小写的,千万别搞错了!




备注:


       上述修改,恢复运营商是恢复到系统默认初始化的运营商版本,当恢复以后,系统有可能就会提示发现新的运营商配置,是否更新,此时你一样可以更新,升级到最新的运营商版本!其实上面的流程也可以用来将更新了运营商配置的重新修改成原始固件出厂的版本!


         如果你手动修改了运营商配置文件,且没有预先安装运营商配置校验补丁;或者是安装过补丁,且修改了配置文件后因为某个原因卸载了校验补丁后重启了,系统一样会在检测到配置文件修改后将这几个快链自动修改到 /System/Library/Carrier Bundles/iPhone/Default.bundle


       最后一点注意的是,使用 WinScp 是需要依赖 OPENSSH 的通讯服务协议插件的,而这个协议安装后有一个默认的账号和密码: root:alpine ;恢复完以后可以卸载 openssh和它的openssl 依赖 了,不过强烈建议你保留这个协议插件,它将是你最后的救命稻草,至于原始默认密码,可以添加 威锋技术组精品源 http://repo.feng.com 后,安装源里面的 “SSH登录密码修改” 应用,安装后点击桌面的 “系统密码” 应用来修改 原始的“alpine” 的密码为你“记得住”的密码!(root和mobile都需要修改)记住点击修改密码后如果再次点击修改密码肯定会报错的,太多的人不愿意动脑而大惊小怪的,你第一次点击修改后密码已经被改为你设定的新密码了,你再点击修改不报错那才怪!!!



评论

热度(5)

  1. 腊手催花CDSQ 转载了此文字
    CDSQ