一直在搞跨平台的移动开发,之前家里的网络一直没安好,所以Titanium Studio都无法登录使用,因此研究了一下。
在使用Titanium Studio时需要登录,因此在hosts中加入
127.0.0.1 api.appcelerator.net
这样并不能绕开登录,但是可以使你在离线的情况下登录成功。
再一种方式就是破解Titanium Studio的登录过程:
Titanium Studio是来源于appcelerator收购的Aptana,而Aptana是基于Eclipse的JavaScript开发IDE,所以他的启动过程应该完全遵守Eclipse的规则。
在扩展Eclipse的时候,如果要自定义启动界面的话,必须创建一个org.eclipse.ui.splash.AbstractSplashHandler的实现,Titanium的实现是:
引用
com.appcelerator.titanium.rcp_1.0.9.201202141208.jar
com.appcelerator.titanium.rcp.handlers.TitaniumSplashHandler
在TitaniumSplashHandler中,通过以下方法来自定义启动界面:
- createLoginComposite(this.mainComp);
- createLinksComposite(this.mainComp);
- createProgressComposite(this.mainComp);
这里就不说他们具体的内容了,重在于创建好页面后,它启动了一个线程,在该线程中,它调用了以下代码:
- TitaniumUserManager userManager = TitaniumCorePlugin.getDefault().getUserManager();
- userManager.loadSignedInUser();
- if (userManager.getSignedInUser() == null)
- {
- TitaniumSplashHandler.this.status = TitaniumSplashHandler.Status.USER_NOT_LOADED;
- }
- else
- {
- TitaniumSplashHandler.this.status = TitaniumSplashHandler.Status.USER_LOADED;
- }
所以可想而知,是在TitaniumUserManager类中,做的认证。
TitaniumUserManager.class在以下文件夹下:
引用
plugins\com.appcelerator.titanium.core_1.1.0.1340061699\com\appcelerator\titanium\core
TitaniumUserManager类中的代码大家应该都能看懂,不是很复杂!如果我们能够反编译这个类后,修改其中的认证过程,就能实现Studio的crack。但是发现这个类的处理还是比较多,我们把重点放在,loadSignedInUser方法中的以下代码上:
- boolean byPassLogin = EclipseUtil.isSystemPropertyEnabled("titanium.bypassAuthentication");
取到这个值后:
- if (byPassLogin)
- {
- if (username != null)
- {
- this.user = new TitaniumUser(username, password);
- }
- else
- {
- this.user = new TitaniumUser("anonymous", null);
- }
- }
可见在byPassLogin为True,username为空的时候,他会创建一个anonymous的TitaniumUser。那么我们就可以想办法把“titanium.bypassAuthentication”属性的值设置为true即可。
查看EclipseUtil.isSystemPropertyEnabled()方法,我们发现这个类很容易被Crack。
只需要在isSystemPropertyEnabled方法中,追加一下代码:
- if("titanium.bypassAuthentication".equals(option)) {
- return true;
- }
试着我们反编译EclipseUtil代码,修改isSystemPropertyEnabled方法后,再放回com.aptana.core_3.0.4.1340306105.jar中,覆盖plugins中的jar文件后在启动。
你就会看到不用输入用户名和密码了,直接进入了Studio中,至此,大功告成!
注意上图右下角以前是登陆用户名,现在变成了“Sign out”.
类似像“titanium.bypassAuthentication”这样的key还有“titanium.hideDashboard”,“titanium.dashboardUrl”等,如果需要你也可以这么来修改!
分享到:
相关推荐
NULL 博文链接:https://rensanning.iteye.com/blog/1466109
Titanium Studio 开发工具安装包,用于开发mobile程序,这是part04
Titanium Mobile SDK 3.1.0 Apidoc 离线版 官网上没有离线版的,费了九牛二虎之力才整理出一个离线版的,没有任何样式修饰,模样不好看,但是内容还可以。
材料控制 Titanium Studio 的材料设计控件 该项目希望使用 google Material Design 指南的外观和感觉来创建易于使用的控件,如复选框、文本字段、按钮等。
Titanium资料,用于学习Titanium Studio 开发工具
使用以下说明从 Appcelerator 安装 Titanium Studio: ://docs.appcelerator.com/titanium/3.0/#!/guide/Quick_Start 可能需要下载 Java SE 6 Runtime。 通过从 github 复制项目 url 将 NashVitality ios Github...
第一次使用钛备份的朋友,可以试着自定义一下文件备份的路径:钛备份默认会将程序和数据备份在SD卡的 TitaniumBackup文件夹里,但如果是像白鸽这样使用的包含内置和外置两种SD 卡的手机Atrix 4G的话(这样的手机除 ...
[Packt Publishing] Appcelerator Titanium 移动应用开发教程 (英文版) [Packt Publishing] Creating Mobile Apps with Appcelerator Titanium (E-Book) ☆ 图书概要:☆ Develop fully-featured mobile ...
Google-Cloud-Messaging--Titanium-, 在 Titanium 中,Google云消息传递 Google-Cloud-Messaging--Titanium -注册带有GCM和处理发送到设备的通知的Titanium MODULE 。Android平台使用c2dm进行推送,但是因为c2dm停止...
Titanium中文版开发手册(翻译版)
适用于Visual Studio代码的Appcelerator Titanium程序包 适用于Appcelerator Titanium构建工具和附加编辑器。安装通过浏览器点击“安装”在VS Code中打开扩展视图,输入Titanium 通过Axway选择“ Titanium”扩展名...
点菜生产密钥:GL31wN1hpgj3eEv1UM53mQqADG1CyBN9 开发密钥:GyBq3og1IDyQzLowsBj2UN2IuucWl7w1 如果您导入自己的钛工作室,则必须在 TiApp 编辑器中添加 ti.cloud 模块。 模块:ti.cloud
Titanium Backup_3.7.4捐赠完全版
TitaniumBackup_6.0.5.1 专业版 可静默恢复
atom-titanium, 用于 Titanium 合金的Atom 封装 用于 Titanium 合金的 All-in-One封装这是一个用于 Titanium 合金的Atom 封装。$ apm install titanium-alloy冲突&需要通知Alloy 1.8. x
titanium-d1-kickstart.6.1.1.gbin 强大的思科模拟器
钛备份 Titanium Backup,备份你的程序及程序数据,并支持定时备份等功能。 功能很强大,有此软件,不管你的格机还是重刷ROM,在重装软件时都是无痛的,非实适用经常捣鼓手机有机友! 解锁器使用说明: 1.安装钛...