根据ZCChinaLocation 来实现的相关代码,其实就是这个oc代码的java版本,最近用到了这么个东西所以就给实现了一下。由于我是一个非专业Java程序员,因而代码写的比较糟糕,有什么不周到的地方还希望大家积极补充。
Android 系统固件解包
最近再一次更新Findu的时候发现了一个问题,就是oppo的coloros系统安全中心的activity 那么在不断的变,每次更新一个版本这个名称就回变化一次,从packagename 从color到coloros,activity name 也在不断的变化,为了搞清楚最新的activity name叫什么,于是就需要解析新的color os的safecent.apk。要获取safe center 有两个路径,第一root oppo的手机,拷贝apk文件出来。由于我自己并没有oppo的,在测试的时候用的是baidu mtc的远程真机测试。所以这条路并不怎么通,于是就只能用第二种方法,就是直接解析系统固件获取apk。
下载的固件包最然是个zip,但是解压之后的system.new.dat并不是一个img镜像,需要进行转换,通过sdat2img.py将system.new.dat转化为linux 的ext4 文件系统镜像,转化还需要transfer_list文件,因而解压system.new.dat 和system.transfer.list两个文件即可,然后通过命令 :
python sdat2img.py system.transfer.list system.new.dat system.img |
将文件转换为img文件,这个文件可以通过linux系统的mount命令直接挂在,如果没有linux系统,可以在widnows下通过ext2explore来浏览和保存文件,所有的系统应用都位于app目录下,如下图:
系统内置应用位于pri-app目录下,例如系统的settings.app。
到这里就可以保存apk进行分析了,相关工具,请点击这个链接(链接:http://pan.baidu.com/s/1eSbyubS 密码:b3jj)!
从com.alibaba.wxlib.exception.WXRuntimeException: should call prepareTargetKey first 说起
对于安卓的开发,我并没有太多的经验,并且很多的东西目前也没有深入的研究。最近在更新Findu的安卓版本的时候,出现了一个意外的错误。错误代码如下:
03-07 15:03:30.046 12215-12290/today.findu.findu.alibaba.openIMUI:watchdog E/AndroidRuntime: FATAL EXCEPTION: initFeedbackThread Process: today.findu.findu.alibaba.openIMUI:watchdog, PID: 12215 com.alibaba.wxlib.exception.WXRuntimeException: should call prepareTargetKey first at com.alibaba.mobileim.utility.AccountInfoTools.initTargetAppKeys(AccountInfoTools.java:190) at com.alibaba.mobileim.FeedbackAPI.initFeedbackImpl(FeedbackAPI.java:108) at com.alibaba.mobileim.FeedbackAPI.access$000(FeedbackAPI.java:38) at com.alibaba.mobileim.FeedbackAPI$1.run(FeedbackAPI.java:97) at java.lang.Thread.run(Thread.java:761) |
并且同时还有大量的其他的错误信息:
03-07 15:03:34.274 12215-12215/today.findu.findu.alibaba.openIMUI:watchdog E/security: [2014@taobao_h5_3.0.0][WLqJSW6PXu8DAOb+xk4MZjLO][] : *********************************************************** 错误编码 = 10010 错误消息 = 发生错误,消息为 null sec code 162, 请使用 LogCat 查看更多细节 解决建议 = 请使用默认的 androiddebugkey 对当前开发应用签名或在应用初始化之前调用 AlibabaSDK.turnOnDebug(), 运行程序查看 logcat 输出以获取更多错误细节,并采取对应操作 错误堆栈 = ErrorCode = 162 com.alibaba.wireless.security.open.SecException at com.alibaba.wireless.security.open.initialize.c.a(Unknown Source) at com.alibaba.wireless.security.open.initialize.a.a(Unknown Source) at com.alibaba.wireless.security.open.initialize.b.b(Unknown Source) at com.alibaba.wireless.security.open.initialize.b.loadLibrarySync(Unknown Source) at com.alibaba.wireless.security.open.initialize.b.initialize(Unknown Source) at com.alibaba.sdk.android.security.impl.h.a(SourceFile:23) at com.alibaba.sdk.android.security.impl.SecurityGuardWrapper.init(SourceFile:61) at java.lang.reflect.Method.invoke(Native Method) at com.alibaba.sdk.android.a.a.a.a(SourceFile:91) at com.alibaba.sdk.android.task.a.c(SourceFile:186) at com.alibaba.sdk.android.task.a.a(SourceFile:144) at com.alibaba.sdk.android.AlibabaSDK.a(SourceFile:135) at com.alibaba.sdk.android.AlibabaSDK.asyncInit(SourceFile:98) at cn.org.findu.finduUI.demo.DemoApplication.onCreate(DemoApplication.java:61) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403) at android.app.ActivityThread.-wrap2(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) |
i9100G 重新分区,扩大系统内存
我曾经不止一次的提到三星的手机设计的是多么的傻逼和蛋疼,并且自从换了苹果之后也基本不怎么使用这个蛋疼的大三星了。但是偶尔想要使用下装个应用的时候就提示存储空间不足,妈蛋,这也太坑底了16g的存储只分给系统2g,请问三星的程序员是脑子有屎么?到网上搜一下,提到这个问题的人数不胜数,并且网上也有很多的教程来说明怎么重新分区,请参考http://forum.xda-developers.com/galaxy-s2/development/mod-pit-files-creating-larger-partition-t2552738 。
这里提供下用到的工具,列表如下:
驱动器 C 中的卷没有标签。 卷的序列号是 CA73-C79C C:\Users\obaby\Desktop\9100G分区 的目录 2015/05/06 15:44 <dir> . 2015/05/06 15:44 </dir><dir> .. 2013/03/26 11:30 2,252,888 BOOTLOADER_I9100GZCLSG_973591_REV03_user_low_ship.tar.md5 2015/05/06 15:44 0 file.txt 2013/03/26 23:09 583,782,476 GT-I9100G_CODE_4.1.2_ZCLSG_xiaodanRip.tar.md5 2013/03/26 16:00 19,589,195 GT-I9100G_CSC_4.1.2_ZCLSG_xiaodanRip.tar.md5 2013/12/04 19:32 2,008 I9100G (16gb Model only!!!!) 1GB.pit 2013/12/02 20:24 2,008 I9100G (16gb Model only!!!!) 3GB.pit 2013/12/03 21:51 2,008 I9100G (16gb Model only!!!!) 4GB.pit 2014/02/25 20:41 2,008 I9100G (16gb Model only!!!!) 6GB.pit 2014/02/25 20:44 2,008 I9100G (16gb Model only!!!!) 8GB.pit 2013/12/03 22:09 144 metalgear XDA thread link.txt 2013/03/26 11:33 12,585,033 MODEM_I9100GZCLSG_REV_00_CL1249517.tar.md5 2015/05/05 15:42 </dir><dir> Odin3 v3.06 2013/03/26 11:33 2,264 omap4_all_20120827_CHN_OPEN_emmc.pit 2013/03/26 23:23 137,961 刷机示意图.jpg 2013/03/26 23:31 1,220 刷机说明.txt 14 个文件 618,361,221 字节 3 个目录 4,496,023,552 可用字节 </dir> |