翻看之前写在QQZone的一个奇葩问题记录,过了这么多年还是没能确认这到底是什么鬼问题导致这种错误。或许这真是偶然飞来一只臭虫把电路给弄坏了(借用BUG的典故)。如果有人能解析这一种现象,请给我留言!真的感谢! 下面我一一道来:

项目中发现有两台Android设备的/system/bin/pm脚本变成了乱码,导致后台更新功能失效。
脚本正确的情况如下:

脚本乱码后的情况如下:

对比分析,有几处被改动了。 1) Script 变成 ScrIpt 2) shell 变成 she|l 3) . 变成 / 4) b 变成 " 5) framework 变成 fraeework
从看到第一个乱码,小写i变成了大写I就应该想到了。 察觉了吧!!!这种变动都是有规律的!
这里使用到的都是ASCII字符,那么就先找找ASCII表

再将脚本的几个变动的数据转化一下。 1) i 变 I       => 105 变 73 => 0110 1001 变 0100 1001 2) l 变 |     => 108 变 124 => 0110 1100 变 0111 1100 3) . 变 /      => 46 变 47     => 0010 1110 变 0010 1111 4) b 变 "     => 98 变 34 => 0110 0010 变 0010 0010 5) m 变 e   => 109 变 101 => 0110 1101 变 0110 0101
看二进制就行! 变化数值的前后对比其实就是在某位上的0和1的差别!而且仅有一个位!
推测结论: 1.设备的Flash在高温、高电磁干扰的环境下工作出现了存储错误。因为在长期干扰环境下,某个电平信号偶然变换了也是很有可能的。再者设备硬件本身质量无法保证,抗干扰能力实在令人怀疑。 2.有无聊黑客来做些损人不利己的事情,这样窜改文件数据。
题外: 要是这种乱码情况出现在其他文件,如系统启动脚本、系统必要的初始化程序,那就会造成系统启动不了。那么部分Android设备不能进入系统的问题,也能解释了。

更多相关文章

  1. 实习第9天
  2. Android(安卓)不通过USB数据线调试的方法
  3. 「Do.003」adb无线连接多台Android设备
  4. 通过WIFI在Android设备上调试程序
  5. android uses-feature导致设备在Android(安卓)Market搜不到你的
  6. 【android免root脚本制作】基于控件的操作——auto.js进阶
  7. Android兼容性测试应该怎么做逼格更高呢?
  8. Android与物联网设备通信-网络模型分层
  9. 不同手机在豌豆夹上显示设备同名的解决方法 && Android(安卓)获

随机推荐

  1. Android(安卓)Studio 制作简单的App欢迎
  2. Android(安卓)两个Fragment之间的跳转和
  3. Android中的canvas.drawText方法
  4. 学习Google的战略布局...
  5. Android实现多条Toast快速显示(强制中止上
  6. 白底黑字!Android浅色状态栏黑色字体模式
  7. Android(安卓)圆角圆形ImageView(超简单
  8. 转载 解决在PC上无法连接adb interface的
  9. uni-app打包程序 Hbuilder X 用自有证书
  10. Android(安卓)任务栈与启动模式