2020-07-31 11:46

在谷歌像素2和Pixel2XL是谷歌Pixel智能手机系列中的最新智能手机

导读在谷歌像素2和Pixel 2 XL是Google Pixel智能手机系列中的最新智能手机,虽然硬件在很大程度上比上一代Pixel手机有所改进,但该软件具有

在谷歌像素2和Pixel 2 XL是Google Pixel智能手机系列中的最新智能手机,虽然硬件在很大程度上比上一代Pixel手机有所改进,但该软件具有一些非常漂亮的新功能。手机的人像模式功能中使用了新的摄像头技术,称为“ 正在播放”的始终收听音乐识别功能以及“始终显示”功能。不幸的是,至少在正式使用这些功能之后,这些功能都无法进入Google以前的智能手机。我们之前曾展示过可以通过自定义ROM启用Pixel 2的“始终显示”功能,但是最近我们发现可以在Nexus 6P上启用“始终显示”功能,Pixel和Pixel XL(无root)。

由于有了Android 8.1和Substratum,现在可以启用“始终显示”

之前,我们曾报道说不可能在任何较旧的Google手机上启用“始终显示”功能。这是因为Google对功能进行了硬编码,使“始终显示”始终返回false。Android 8.0 Oreo 的源代码下降就是这种情况,但随着Android 8.1 Oreo Developer Preview 1的发布,情况已不再如此。

如上面的屏幕快照所示,负责确定是否启用“始终显示”的功能以前仅返回“ false”。但是,在最新的AmbientDisplayConfiguration代码中,它现在检查名为“ config_dozeAlwaysOnDisplayAvailable ” 的布尔配置值,该值由Google设置为在Pixel 2和Pixel 2 XL上为true,但在其制造的其他所有手机上为false。

更具体地说,Google使用安装在/ vendor / overlay中的框架覆盖(称为framework-res_auto_genic_rro)来指定此配置的值。由于此框架覆盖图基于OverlayManagerService(OMS),因此我们可以创建自己的框架覆盖图,以强制 config_dozeAlwaysOnDisplayAvailable 在Nexus 6P,Pixel和Pixel XL上返回“ true”。

之所以可行,是因为OMS(索尼构建的主题框架)是从Android Oreo开始本地集成的。因此,我们可以使用内置命令来管理和安装自己的主题,而无需root即可。通过这样做,开发人员发现了如何使流行的Substratum主题管理器在Android Oreo设备上工作。因此,为了使“始终在显示”正常工作,我们将使用Substratum主题管理器及其Andromeda插件,以便在Nexus 6P,Pixel和Pixel XL上安装特殊的框架叠加层。

最后,我要解决的还有一个困惑点,那就是我们使用通用的“主题引擎”来启用隐藏功能这一事实。尽管Substratum通常用于安装主题,但将这些主题称为“资源叠加层”更为准确。这是因为这些“主题”指定了替换其目标应用程序原始资源的值。通常,资源叠加层只是替换原始应用程序中的颜色值,但是它们也可以定位应用程序资源中的整数,字符串或布尔值。例如,某些现有的Substratum叠加层可用于自定义锁定屏幕,最近使用的应用程序屏幕和快速设置。

无论如何,希望您对我们将要做的事情有更好的了解。请按照以下教程操作,以从Pixel 2启用始终显示在第一代Google Pixel手机以及Nexus 6P上。