一直在搞跨平台的移动开发,之前家里的网络一直没安好,所以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”等,如果需要你也可以这么来修改!
分享到:
相关推荐
这个版本的Apidoc是开发者的重要参考资料,它包含了完整的API文档,帮助开发者理解并使用Titanium框架的各种功能。尽管在发布时官网并未提供离线版本,但经过努力,我们得到了这个没有样式修饰的纯文本版,虽然外观...
NULL 博文链接:https://rensanning.iteye.com/blog/1466109
Titanium Studio 开发工具安装包,用于开发mobile程序,这是part04
使用 JavaScript 开发的 MaterialControls 兼容 Titanium Studio,这意味着开发者可以利用 JavaScript 的灵活性和 Titanium 的跨平台能力,快速构建遵循 Material Design 的 iOS 和 Android 应用程序。通过这个库,...
学习这些资料,你将能够熟练地使用 Titanium Studio 创建跨平台的应用,掌握从基本的 UI 设计到复杂的数据库操作,以及如何利用模块来扩展功能。同时,理解并熟练运用 JSON 文件将帮助你更好地查阅和理解 Titanium ...
在这个专题中,我们将深入探讨如何使用Titanium Studio来设计和实现一个Android Phone Book应用,并重点关注XML和JSON这两种数据格式在其中的应用。 首先,让我们了解Titanium Studio。这是一个基于Eclipse的集成...
- IDE:推荐使用 Appcelerator Studio 或 Visual Studio Code,它们提供了良好的 Titanium 支持。 **3. 创建插件项目** 创建插件项目通常包括以下步骤: 1. 使用 `titanium create` 命令行工具生成新项目,选择 ...
在Titanium Studio中,你可以利用其内置的模拟器或连接实际设备进行应用的调试和测试。 请注意,随着软件更新,这些下载链接和具体步骤可能会有所变化。建议定期检查官方网站获取最新的安装包和指南,以确保开发...
4. **强大的IDE:** Titanium Studio提供了全面的开发环境,包括代码编辑、调试工具以及构建和发布功能。 5. **原生性能:** 尽管使用Web技术开发,但Titanium Mobile仍能实现接近原生应用的性能。 **劣势:** 1. ...
Titanium是一个开源的JavaScript平台,允许开发者使用JavaScript、HTML和CSS来构建原生的iOS、Android和Windows应用。这份翻译版的手册覆盖了Alloy框架的多个核心概念,为开发者提供了一个全面的参考。 1. **Alloy...
- 安装IDE:推荐使用Visual Studio Code等支持TITANIUM插件的IDE。 2. **项目创建**: - 使用命令行工具创建新的项目。 - 设置项目的基本配置,如项目名称、版本号等。 3. **UI设计与布局**: - 使用XML定义...
此外,它还能备份系统设置,包括Wi-Fi密码、联系人、短信等,确保在设备重置或更换后,能够快速恢复到原来的使用环境。 其次,静默恢复是Titanium Backup 6.0.5.1的一大亮点。传统的恢复操作往往需要用户手动确认每...
使用以下说明从 Appcelerator 安装 Titanium Studio: ://docs.appcelerator.com/titanium/3.0/#!/guide/Quick_Start 可能需要下载 Java SE 6 Runtime。 通过从 github 复制项目 url 将 NashVitality ios Github...
在Titanium中,可以使用`Ti.Network`模块来检查设备的网络状态。这个模块提供了多种方法来获取网络连接的信息,例如`Titanium.Network.online`属性,它返回一个布尔值,表示设备当前是否已连接到任何类型的网络(如...
### Titanium Mobile API 知识点详解 #### 一、Titanium Mobile API 概述 Titanium Mobile API 是一款由 Appcelerator 公司提供的用于跨平台移动应用开发的强大工具包。该工具允许开发者使用 JavaScript 编写应用...