如何破解安卓12系统(荣耀magic4)不能更改壁纸?
现象:公安单位,新发了一个警务通手机,荣耀magic4,双系统。一个是封闭的公安系统,另一个是互联网的生活系统,Android12的,可以进入开发者模式。
这次和以往不同的是,强J了我们的壁纸,即锁屏和桌面壁纸是固定的一个静态丑图,不能更换。如果进行设置壁纸的操作,会无效。但是设置动态壁纸,则可以同时更改锁屏和桌面,但很容易莫名就被自己改回来那张丑图来。
需求:就是破解这个封闭,让用户可以自主设置壁纸。
目前:
我会的,能adb进入媳系统浅层,没有root,也没有root工具。
你的手机能root的话,可以root下看看,但是荣耀magic4root之前,都需要先解锁才行,具体你可以参考:https://ask.zol.com.cn/x/15217079.html
但是root有风险,谨慎使用。
我们知道,要想把数据放入内存,必须先要分配内存空间。放入4个整数,就得分配4个int类型的内存空间:
int a[4];
这样,就在内存中分配了4个int类型的内存空间,共 4×4=16 个字节,并为它们起了一个名字,叫a。
我们把这样的一组数据的集合称为数组(Array),所包含的每一个数据叫做数组元素(Element),所包含的数据的个数称为数组长度(Length),数组中的每个元素都有一个序号,这个序号从0开始,而不是从我们熟悉的1开始,称为下标(Index)。
例如int a[4];就定义了一个长度为4的整型数组,名字是a。a[index]使用数组元素时,指明下标即可,a为数组名称,index 为下标。 接下来我们就把第一行的4个整数放入数组:
a[0]=2021;
a[1]=803;
a[2]=13;
a[3]=43;
这里的0、1、2、3就是数组下标,a[0]、a[1]、a[2]、a[3] 就是数组元素。
在学习过程中,我们经常会使用循环结构将数据放入数组中(也就是为数组元素逐个赋值),然后再使用循环结构输出(也就是依次读取数组元素的值),下面我们就来演示一下如何将 1~10 这十个数字放入数组中:
#include <stdio.h>
int main(){
int nums[10];
int i;
//将1~10放入数组中
for(i=0; i<10; i++){
nums[i] = (i+1);
}
//依次输出数组元素
for(i=0; i<10; i++){
printf("%d ", nums[i]);
}
return 0;
}
运行结果
1 2 3 4 5 6 7 8 9 10
变量 i 既是数组下标,也是循环条件;将数组下标作为循环条件,达到最后一个元素时就结束循环。数组 nums 的最大下标是 9,也就是不能超过 10,所以我们规定循环的条件是 i<10,一旦 i 达到 10 就得结束循环。
最后我们来总结一下数组的定义方式:
dataType arrayName[length];
dataType 为数据类型,arrayName 为数组名称,length 为数组长度。例如:
float m[12]; //定义一个长度为 12 的浮点型数组
char ch[9]; //定义一个长度为 9 的字符型数组
需要注意的是:
1.数组中每个元素的数据类型必须相同,对于int a[4];,每个元素都必须为 int。
2.数组长度 length 最好是整数或者常量表达式,例如 10、20+4 等,这样在所有编译器下都能运行通过;如果 length 中包含了变量,例如 n、4+m 等,在某些编译器下就会报错。
3.访问数组元素时,下标的取值范围为 0 ≤ index < length,过大或过小都会越界,导致数组溢出,发生不可预测的情况,请大家务必要引起注意。