-
2020-07-18 11:05:39
window10系统,以修改build.prop为例:
1.开一个cmd
a) adb shell
b) su
(**a,b这两步是获取root权限,请注意手机显示,有弹窗的话,请点确定**)c) mount -o rw,remount /system
(**c这一步是挂载系统可读写**)d) cp /system/build.prop /system/build.prop.bak
(**d这一步是备份build.prop为build.prop.bak,不想备份的话可以跳过这一步。**)
2.再开一个cmd
a) adb pull system/build.prop D:/
(**a导出build.prop到D盘)b) 打开build.prop,修改内容,保存
(我加入一行,service.adb.tcp.port=5555, 默认adb无线连接端口 )
c) adb push D:/build.prop system
(**c 导入修改后的文件到system/下)3. 还原权限 ,激活文件
a) chmod 644 /system/build.prop
(**f这一步是修改权限为rw-r-r**)
b)关机,开机,让文件生效问题记录:文件权限问题,过程如下
C:\Users\xxx>adb pull /system/build.prop D:/
adb: error: failed to copy '/system/build.prop' to 'D:/build.prop': remote open failed: Permission deniedC:\Users\xxx>adb remount
Not running as root. Try "adb root" first.C:\Users\xxx>adb root
restarting adbd as root更多相关内容 -
Android修改系统文件访问权限
2012-03-24 14:37:45Android修改系统文件访问权限,在init.rc里配置service,通过启动service去执行脚本,在脚本里做修改文件访问权限操作。应用通过jni启动service。 -
Android 修改系统文件 访问权限
2014-04-25 13:31:49我这里编译都是在Android源码包下,文章比较针对系统开发人员。以proc/cmdline为例,连接手机敲入命令可以看到默认情况下普通用户没有proc/cmdline的任何操作权限,如下图所示 修改权限的大致思路就,1、用...我这里编译都是在Android源码包下,文章比较针对系统开发人员。以proc/cmdline为例,连接手机敲入命令可以看到默认情况下普通用户没有proc/cmdline的任何操作权限,如下所示:
root@android:/ # cat /proc/cmdline
console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=ldb,LDB-1k,if=RGB666,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off fbmem=28M androidboot.hardware=freescale
root@android:/ # ll /proc/cmdline
-r--r----- root radio 0 2014-04-25 05:29 cmdline
root@android:/ #
修改权限的大致思路就,
1、用c语言编写编译出一个脚本,我们运行该脚本来修改文件访问权限。
2、在init.rc里需要配置一个service,并为service指定要执行的脚本。这样我们就可以通过启动service运行其指定的脚本。(不自动开机执行服务,交给上层去控制)
3、通过jni来启动服务,主要接口就是 property_set("ctl.start",serviceName);
下面逐步介绍如何修改系统文件访问权限:
1、新建文件夹chgperexe并在文件夹下新建两个文件Android.mk及openper.c
Android.mk内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SHARED_LIBRARIES := libcutils liblog
LOCAL_MODULE := openfileper
LOCAL_SRC_FILES := openper.c
LOCAL_PRELINK_MODULE := false
include $(BUILD_EXECUTABLE)
openper.c内容如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
system("chmod 444 /proc/cmdline");
return 0;
}“chmod 444 /proc/cmdline”命令就是将/proc/cmdline的访问权限修改为 "-r--r--r--",不建议使用命令"chmod o+r /proc/cmdline",因为我用该命令修改权限失败。
在Android源码下编译chgperexe,编译成功后会在system/bin目录下生成名为openfileper的脚本(一个可执行文件)。
2、配置init.rc。
在init.rc中加入以下内容,我声明了一个名为perservice的服务,并指定服务启动后执行/system/bin/openper脚本。
service perservice /system/bin/openfileper
oneshot
disabled
备注:oneshot:在服务退出后不重启。
disabled:这个服务的级别将不会自动启动,它必须被依照服务名指定启动才可以启 动。如果需要service自动启动就不需要配置这一项了,那么第三步就不用看了。
3、ok,现在我们来看如何启动服务。我是通过jni来启动服务,新建文件夹chgperjni,在文件夹下新建文件chgperjni.c,Android.mk及文件夹inc。inc中需要一个properties.h文件,它是一个系统文件,可以在system/core/include/cutils下找到,直接拷贝过来就行了。
chgperjni.c的内容如下:
#include <string.h>
#include <jni.h>
#include "properties.h"
#include "utils.h"
jint Java_mobile_chgper_ChgperActivity_startPerService(JNIEnv* env,jobject thiz){
return (jint)property_set("ctl.start","openper");
}
jint Java_mobile_chgper_ChgperActivity_stopPerService(JNIEnv* env,jobject thiz){
return (jint)property_set("ctl.stop","openper");
}
Android.mk的内容如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS :=optional
LOCAL_C_INCLUDES := $(LOCAL_PATH)/inc
LOCAL_SHARED_LIBRARIES :=libcutils
LOCAL_MODULE := chgperjni
LOCAL_SRC_FILES := chgperjni.c
LOCAL_PRELINK_MODULE := false
include $(BUILD_SHARED_LIBRARY)编译chgperjni在system/libs下生成so文件。
4、新建一个工程Chgper。工程也要放到源码下编译,同时工程必须具有System权限。如何使工程具有System权限可以参考http://my.unix-center.net/~Simon_fu/?p=531这篇文字,写的很好。
工程编译完后安装apk,打开应用后proc/cmdline的访问权限就改变了,如下图。
chgperexe,chgperjni,工程Chgper都已打包上传至http://download.csdn.net/detail/goleftgoright/4169056
-
Android:系统分辨率的修改
2021-06-03 17:21:20分辨率修改涉及两个概念:密度和尺寸每个项目密度定义路径:customize/customer_cfg/sp8810ga/res/system.prop# 1 => add volume control in in-call screenro.sprd.volume_control_icon = 1#LCD_Density for ...分辨率修改涉及两个概念:密度和尺寸
每个项目密度定义路径:
customize/customer_cfg/sp8810ga/res/system.prop
# 1 => add volume control in in-call screen
ro.sprd.volume_control_icon = 1
#LCD_Density for WGVA
ro.sf.lcd_density =240
dalvik.vm.heapsize=32m
ro.opengles.version=131072
搜索ro.sf.lcd_density关键字,
device/samsung/system.prop,vendor/sprd/hsdroid/system.prop
也有定义!
验证结果:
最终生成的build.prop文件
#LCD_Density for WVGA
ro.sf.lcd_density = 240
来自customize下的修改值!
手机目录system/build.prop通过adb导出来,
修改其中的值,再push进相应目录下的build.prop,重新开机,显示预先效果!
尺寸修改:
frameworks/base/core/java/android/content/res/CompatibilityInfo.java
publicstatic final int DEFAULT_PORTRAIT_WIDTH = 320;
publicstatic final int DEFAULT_PORTRAIT_HEIGHT = 480;
四组数据效果比较:
1)、正常效果:
DEFAULT_PORTRAIT_WIDTH = 320;DEFAULT_PORTRAIT_HEIGHT =480;ro.sf.lcd_density = 240;
2)、正常效果:
DEFAULT_PORTRAIT_WIDTH = 480;DEFAULT_PORTRAIT_HEIGHT =800;ro.sf.lcd_density = 240;
3)、界面显示正常,系列显示图标变小:
DEFAULT_PORTRAIT_WIDTH = 480;DEFAULT_PORTRAIT_HEIGHT =800;ro.sf.lcd_density = 160;
4)、部分界面显示不全(如锁),系列显示图标变小:
DEFAULT_PORTRAIT_WIDTH = 320;DEFAULT_PORTRAIT_HEIGHT =480;ro.sf.lcd_density = 160;
结论:
ro.sf.lcd_density影响分辨率的关键因素,
目前四个等级的屏幕密度等级,
决定每个APK选取res下的不同资源文件。
如主流屏幕drawable-hdpi(密度240)、drawable-mdpi(密度160)等;
相关说明:
frameworks/base/core/java/android/util/DisplayMetrics.java
private static int getDeviceDensity() {
// qemu.sf.lcd_density can be used to overridero.sf.lcd_density
// when running in the emulator, allowing for dynamicconfigurations.
// The reason for this is that ro.sf.lcd_density is write-once andis
// set by the init process when it parses build.prop beforeanything else.
return SystemProperties.getInt("qemu.sf.lcd_density",
SystemProperties.getInt("ro.sf.lcd_density",DENSITY_DEFAULT));
}
frameworks/base/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp
#
if(property_get("qemu.sf.lcd_density", property, NULL)<= 0) {
if (property_get("ro.sf.lcd_density", property, NULL)<= 0) {
LOGW("ro.sf.lcd_density not defined, using 160 dpi bydefault.");
strcpy(property, "160");
}
} else{
# mDpiX = mDpiY = atoi(property);
}
上面表示:
如果没有设置ro.sf.lcd_density的值,那么选择DENSITY_DEFAULT的默认定义;
再看DENSITY_DEFAULT定义处:
#
publicstatic final int DENSITY_LOW = 120;
#
publicstatic final int DENSITY_MEDIUM = 160;
#
publicstatic final int DENSITY_HIGH = 240;
#
publicstatic final int DENSITY_XHIGH = 320;
# publicstatic final int DENSITY_DEFAULT = DENSITY_MEDIUM;
-
android 系统修改dts文件,如何编译
2019-11-13 17:15:08修改kernel 下dts文件,如何编译 上面两张图表面dts在编译后的结果。 如果修改了dts后编译,首先将obj下的obj\KERNEL_OBJ\arch\arm\boot\dts 文件删除,然后make odmdtboimage ...修改kernel 下dts文件,如何编译
上面两张图表面dts在编译后的结果。
如果修改了dts后编译,首先将obj下的obj\KERNEL_OBJ\arch\arm\boot\dts 文件删除,然后make odmdtboimage -
使用adb命令替换Android系统文件
2022-03-21 14:36:23cmd命令直接进入adb目录下 ...在Android 7之后,对分区会进行相应的验证,例如system分区,不能向之前的版本一样,使用adb remount对system分区进行挂载,需要先关闭分区检测功能,所以用adb disable-verity来关闭分.. -
修改Android系统目录的读写权限命令
2016-03-14 10:17:361 mount -o remount,rw /system 有的系统必须要remount/system这个目录才能成功 -
android 修改aar包资源文件的最简单方法
2022-02-06 19:34:25然后同时还有2个及以上的aar包的资源文件重复了,也就是路径和名称都一样,这时就尴尬了,运行项目就会提示资源文件重复,在build.gradle文件写exclude也无任何效果,那么此时就需要把多的文件删除或者修改。... -
Android系统下的文件权限
2021-12-18 13:25:13Android继承了Linux中的文件权限机制,系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为**只读`(r)`**、**只写`(w)`** 和 **可执行`(x)... -
Android 修改系统音量条UI
2019-05-15 17:03:39修改Android系统默认的音量条样式需求代码路径 需求 修改系统音量条为以下样式 代码路径 系统UI相关的代码处于:\frameworks\base\packages\SystemUI -
Android 文件系统及权限修改
2015-12-04 11:02:231、android文件系统 -
【Android 逆向】修改 Android 系统文件 ( default.prop 配置信息 | 修改 default.prop 配置信息文件 )
2021-10-23 23:06:30一、default.prop 配置信息、 二、修改 default.prop 配置信息文件、 -
Android文件系统详解
2018-01-27 22:17:46文件系统一直是Android开发过程中经常接触的东西。而关于内部存储、外部存储、外置存储、私有存储、公共存储,以及访问哪些文件需要申请运行时权限等问题,一直是许多开发者头疼的问题。本文就将详细地讲解这些重要... -
Android 11源码 修改系统App后进行编译
2021-06-15 20:05:22Android 11源码 修改系统App后进行编译 目标: 修改系统App源码,然后编译生成apk。我们在系统日历App中增加一个日志输出,然后编译生成apk,并安装查看修改效果。 修改系统日历App源码 进入系统日历App目录 系统... -
android 修改系统默认语言
2018-11-19 15:34:04之前做一款桌面广告机项目时,有一个修改默认语言的需求,查找FAQ发现MTK有介绍怎么修改,如下: 默认开机语言设置 如果想把某种语言设置为开机默认语言,只需把这个语言的代码放到(Android L PRODUCT_LOCALES后面... -
Android修改文件重启以后文件被还原
2018-01-15 14:50:48一、概述 ...这是因为Linux系统中文件系统机制,我们在进行文件操作后,需要进行sync操作才可以使文件真正的被修改。 二、如何执行SYNC来同步Android文件系统 在执行完关键的文件操作后,调用s -
Android如何修改系统文件访问权限
2017-12-28 10:33:25我这里编译都是在Android源码包下,文章比较针对系统开发人员。以proc/cmdline为例,连接手机敲入命令可以看到默认情况下普通用户没有proc/cmdline的任何操作权限,如下图所示 修改权限的大致思路就,... -
Android 修改文件权限
2018-07-11 08:33:26Linux 文件权限 1 [001] 执行权限 x 2 [010] 只写权限 w 4 [100] 只读权限 r sudo chmod 600 ××× (只有所有者有读和写的权限) sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限) ... -
Android之—— Android Studio配置文件路径修改的方法
2019-11-03 23:43:50必然要的组件和所占的空间是比较多的,但往往我们安装Android Studio后有些配置文件会默认帮我们安装到C盘,导致C盘空间减少,这往往是我们不想看到的,这篇文章就讲述怎么修改Android Studio配置文件路径 ... -
Android使用adb命令直接修改文件
2020-12-09 15:48:22Android是基于Linux的系统,与Linux类似,通过hosts文件来设置。 在Android下,/etc是link到/system/etc的,我们需要修改/system/etc/hosts来实现。但是这个文件是只读,不能通过shell直接修改。可以通过连接到PC上... -
Android11(android/data)数据分区 修改与读取文件
2021-11-15 18:51:15Android11(android/data)数据分区 修改与读取文件 读取文件我们需要得到这个文件的输入流,我们该怎么得到呢?使用该代码可得到。 Activity.getContextResolver().openInputStram(Uri) 然后读取输入流转字节或文本... -
android 修改串口读写权限
2012-09-27 09:24:27网上好多不会修改android串口的权限,上传脚本文件供大家使用,公司真实环境无私奉献出来。 -
Android应用获取root权限,修改系统文件
2015-01-29 15:52:07Android系统权限说明 首先对Android权限等级进行一下...系统用户权限需要给Apk添加与Framework相同的签名,这样应用就能够调用Android的一些核心的接口,比如访问系统文件(read)、后台静默安装Apk…… 超级用户 -
Android 将自己的应用改为系统应用
2018-07-20 16:21:45所谓系统程序就是system/app目录中的程序,普通应用转换成系统程序后有稳定、减少内存(DATA)空间占用、恢复出厂设置后不会消失、修改系统时间、调用隐藏方法、系统关机重启、静默安装升级卸载应用等等等等优点,想... -
修改系统Android版本,版本号
2019-03-23 16:14:23packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java 在public void onCreate(Bundle icicle) 函数中,setStringSummary(KEY_BUILD_NUMBER, Build.DISPLAY);这一句中设置的。 将这句代码改... -
修改Android系统配置文件build.prop
2018-04-02 12:10:32build.prop文件是系统启动时需要的配置文件,它位于/system/build.prop。如果你是做TV端开发的,那么盒子的设备ID有可能也会在出厂时在该文件中进行配置。1、首先,我们来看一下build.prop文件中都有什么东西。在... -
修改Android中hosts文件的步骤详解
2019-07-12 15:35:45Android的hosts文件路径是/system/etc/hosts,在修改该文件前首先需要Android手机获取root权限。至于如何root你的手机,这里就不加详述,可以自行在网络上查找,很多也很简单。 本文将要阐述的是如何在命令行下通过... -
Android11缺少权限导致无法修改原文件,获取所有文件访问权限的方法
2021-05-10 10:14:52在Android 11开发中,app会遇到使用绝对路径无法打开某文件的情况(文件存在根目录下,获取到的路径为:/storage/emulated/0/XXX.txt),而使用相对路径打开文件后(获取到的路径为:/data/user/0/... -
Android中修改系统时间的几种方式
2018-06-01 20:16:51fps=1在 Android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,.这个函数需要root权限或者运行于系统进程中才可以用。 第一个方法简单点,不过需要在Android系统源...