【发布时间】:2012-06-10 16:42:04
【问题描述】:
有人知道是否可以在 android 中编辑系统活动?
例如在 ContactContracts.people 的活动中插入一个新的 EditText ..... 如果可以,我该怎么做?
谢谢
【问题讨论】:
标签: android android-activity contactscontract
有人知道是否可以在 android 中编辑系统活动?
例如在 ContactContracts.people 的活动中插入一个新的 EditText ..... 如果可以,我该怎么做?
谢谢
【问题讨论】:
标签: android android-activity contactscontract
是的,这是可能的。编辑 android IOS ContactContracts 功能,然后在您的手机中设置它。
【讨论】:
编辑它?当然。
安装它,甚至构建它?没那么快。
不幸的是,许多内置应用程序都是针对完整的 android 系统构建构建的,而不是针对 android SDK 导出的。有时可以修改它们以针对 SDK 构建,但在其他情况下,您需要构建 android 本身的整个源代码。
安装也可能有点棘手。几乎任何您可以购买使用的安卓设备都是“安全的”,因为您无法更改系统应用程序所在的分区或以相同的名称为它们安装替代品。由 Google 直接销售的设备,以及越来越多的制造商品牌的设备有时会让您解锁其引导加载程序以允许安装自定义固件映像(请注意,这与 SIM 解锁不同)。但是,即使在允许您修改系统分区的设备上,您也不是免费的,因为您可能无法使用用于签署设备上已有系统应用程序的相同密钥对修改后的 apk 进行签名。这意味着您最终必须重新签署所有系统应用程序,以便您而不是供应商成为受信任的作者。 (但有时,如果设备位于正常受保护的系统分区上,则设备实际上不会检查 apk 中每个文件的签名,这样您就可以将修改后的类文件替换为供应商签名的 apk 并让它仍然工作)
实际上,如果您将整个原始构建替换为您可以选择或获取签名密钥的修改过的构建,则更改系统应用最简单。这是 android 模型的一大悲剧,对您自己的设备进行“只是一个小改动”就变成了一个如此大的项目 - 并且通过扩展,您只能在完全替代构建的上下文中与其他用户真正共享这些更改.
一种可能的简化方法是,如果您要更改的功能不必保留在系统应用程序中 - 即,如果您可以复制和重命名应用程序,并以新名称安装修改后的版本并简单地使用它反而。如果应用不需要任何特殊权限,并且您想出了所有完整系统与 sdk 构建问题的解决方案,那么这可能是一条可行的路径。
【讨论】: