Samsung Sub 主题自定制(无须root)
Tip:文尾附 无须root Po解 应用商店主题(敬请留意)
这几个月来发生了太多变化,三星Sub主题惨遭破解、国行8.0开始测试、Xposed(一个神奇的框架 安卓玩机的真正乐趣 以后会讲)开始正式支持7.1、8.0限制overlays权限。
现在是时候做出结果(跑路)了,挖个大坑,做个 零编辑基础学习三星深度主题制作教程,我相信没接触过手机搞机的小学生都能轻松学会。
不唠叨了,开门见山。
前言:为什么三星主题这么稀少,这么Low?还这么贵?
大家可能知道很多主题修改方法,什么MIUI EMUI Flyme主题满世界都是,那么作为全球安卓设备使用人数最多的三星,三星主题为什么这么冷门了?甚至在XDA上主题帖子也是那几个万年老坟,到底为什么了?用三星的人都不喜欢折腾吗?都是中年人在用吗?
其实并不是三星主题少,而是三星不让搞。在TouchWiz时代(也就是棉花糖版本及以下版本的三星UI)三星是支持本地离线主题的,三星离线主题也是火过一时的,但在Samsung Experience(牛轧糖及以上三星版本UI)则因为所谓的安全问题及防主题盗版,关闭了离线主题的通道,统一采用购买下载方法。没了离线盗版主题的存在,从而导致用户便慢慢地遗忘了三星主题。
Samsung Experience团队的这一做法仔细想想其实是为了开发者着想,人人都下盗版离线主题,那主题开发者喝西北风?但为什么目前三星主题大部分为什么依旧这么丑了?这么丑还这么贵?主题开发者都穷疯了吗?
其实因为Samsung希望手机同质化,不希望开发者更改过多内容,所以三星甚至连完整的开发教程都不提供,只提供你一个傻瓜编辑应用(只能修改壁纸、图标、声音、字体...)及一个所谓的开发说明书(如果你仅仅只对这些感兴趣你可以去这看看https://c.quk.cc/3/z9/u0nwcji4c5z )
即使用户自行摸索出了其它功能,也只有自嗨,三星主题商店也不会通过这类主题,官方原因:不安全!
****************
看了这些后你还想学三星主题了吗?如果你依旧不放弃,那么告诉你其实上面全是废话,下面以后才是教程。
****************
本期教程要求root,主要认识其结构,如没有root也不要紧,知晓即可,真正制作主题不需要root权限。(不会影响Samsung Pay 和保修)
一:认识三星主题叠加接口结构
三星主题和许多其他主题一样,实质是由多个系统叠加层面组成,即使你之前并没有学习过其它主题制作,你用过Sub主题你也会知道所谓的系统叠加层,它采用原生安卓API接口可以直接进行编译系统各个方面。
Android overlays 允许在不修改packages中apk的情况下,来自定义 framework和package中的资源文件,实现资源的定制。
相比于直接反编译系统应用,它的优点显而易见,直接利用安卓预先留下的API接口,不需要Root权限,在不需要的时候删除即可还原系统应用,还原方法简单安全。
好处这么多,那么让我们先目睹目睹系统叠加层面吧。
使用Re管理器(或者其它Root文件管理器)进入/data/overlays文件夹
这便是系统叠加API接口文件夹了!懂英语的同学肯定一眼就知道这里面的这些文件夹的作用,不懂?看看下面解析吧。
#############
version— 版本 —记录其 手机Rom基带版本、CSC(地区营运商文件)版本,不需要修改。
style— 风格 —放置主题文件的目录。商店中你所下的主题叠加层都会以文件夹方式放置在这里面,如果你删除了它,商店就将不会显示这个主题。
sound— 声音 —以主题文件夹方式放置对应主题铃声,Samsung Experience现已基本放弃该方法。
preview— 预览 —放置主题预览图片的目录。商店中你所下的主题的预览图都会以文件夹方式放置在这里面,如果你删除了它,商店就将不会显示这个该主题预览图。今后将进一步介绍。
preferences— 参数选择 —记录其主题应用修改参数,在安装新主题时会自动添加,不需要修改。
lockwallpaper— 锁屏壁纸 —记录主题锁屏壁纸。
jsonfiles— json目录 —记录主题json配置文件。
homewallpaper— 桌面壁纸 —记录其主题桌面壁纸,可惜在Samsung Experience由于防盗版被限制,部分采用了一次性挂载方式。
font— 主题 —记录主题字体。
currentstyle— 当前应用的风格 —记录挂载的主题 系统叠加层,将其全部删除重启系统U或重启手机即会清除所有主题效果并返回至默认主题效果。
coverwallpaper— 封面壁纸 —现已被thumbnail代替。
basicWallpapers— 基本壁纸方法 —壁纸的性质,较复杂,不做介绍。
****************
二:认识叠加层配置文件结构
在初步认识了其三星主题叠加接口文件夹后,
我们可以打开其中style 文件夹任意主题文件夹,那就是所谓的overlay
我们在这之前我们还得知晓其主题配置方法,它关系到你的主题使用什么叠加层在什么应用上,你的叠加层是什么类型,你的主题在商店叫什么名字...可理解为“适配器”功能。
我们就以自带的隐藏主题:UPSM_Dream 介绍。用文本编辑器方式打开/data/overlays/jsonfiles/userjson/com.samsung.upsmtheme.json文件
让我们来解析下其中内容吧。
在“主题定义”上面的两个为主题叠加层版本不需要修改。
其中“主题定义”中除了title之外不建议修改,易造成主题识别崩溃。
“叠加层目录”中themes则分为了4个项,分别为:
type:(判断叠加层类型,由于是主题是系统叠加层构成,所以统一为“Base”表示静态叠加层)
lock(定义系统界面的叠加层,这里有一个误区,一些人认为是锁屏界面,其实安卓锁屏界面是基于com.android.systemui的,命名为Lock或许是三星的诡计)
home:(定义三星桌面的叠加层)
wallpaper:(定义壁纸的叠加层,可选)
appicon:(定义图标的叠加层,可选)
appstyle:
包含2项:framework(定义安卓frameworks的叠加层,控制全局框架,比如弹出窗口、按钮...)
applications(定义应用的叠加层,控制局部应用)
看见上面定义的叠加层了吗?是不是非常熟悉?比如com.samsung.upsmtheme.lock ,我们立即返回style/com.samsung.upsmtheme文件夹是不是就有一个com.samsung.upsmtheme.lock.apk,这便是该主题的系统界面的叠加层。
****************
三:叠加层的作用
说了这么多,那么我们要制作主题要怎么做了?
其实很简单,那就是编译这些叠加层即可。
每个叠加层在其json文件都定义了作用,所以也对应有了其功能,我们要做的就是编译叠加层的内容,从而实现不同变化。比如我们要修改状态栏内容,根据安卓定义,状态栏处于其系统UI界面中,所以我们只需要编译lock的叠加层即可,其它内容也是如此。
*****************
最后结语:相信看了本期,你或许已经了解了其三星的主题原理和结构了,它其实和其它主题差不多一模一样,都是叠加层组成的。或许有些人会认为 认识这么多有什么用?要知道学习任意一件事情都是有顺序性的,就好比砍柴需要磨刀,养马需要喂食,虽有千里之能,食不饱,力不足,才美不外见。
Samsung Sub主题Po解方法
在主题商店中选取主题(你喜欢的)点击试用,会有个五分钟的限时在应用程序列表中找到主题商店清空数据并禁用之搞定。。。
弊端:每次重启都需要走一遍流程
优点:不影响Samsung Pay 和保修