mirror of
https://gitee.com/replugin/RePlugin.git
synced 2024-11-30 02:38:34 +08:00
commit
d574eab5e2
@ -286,12 +286,11 @@ public class PluginContext extends ContextThemeWrapper {
|
|||||||
* @param name 需要被设置访问权限的文件
|
* @param name 需要被设置访问权限的文件
|
||||||
* @param mode 文件操作模式
|
* @param mode 文件操作模式
|
||||||
* @param extraPermissions 文件访问权限
|
* @param extraPermissions 文件访问权限
|
||||||
*
|
* <p>
|
||||||
* 注意: <p>
|
* 注意: <p>
|
||||||
* 此部分经由360安全部门审核后,在所有者|同组用户|其他用户三部分的权限设置中,认为在其他用户的权限设置存在一定的安全风险 <p>
|
* 此部分经由360安全部门审核后,在所有者|同组用户|其他用户三部分的权限设置中,认为在其他用户的权限设置存在一定的安全风险 <p>
|
||||||
* 目前暂且忽略传入的文件操作模式参数,并移除了允许其他用户的读写权限的操作 <p>
|
* 目前暂且忽略传入的文件操作模式参数,并移除了允许其他用户的读写权限的操作 <p>
|
||||||
* 对于文件操作模式以及其他用户访问权限的设置,开发者可自行评估 <p>
|
* 对于文件操作模式以及其他用户访问权限的设置,开发者可自行评估 <p>
|
||||||
*
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private final void setFilePermissionsFromMode(String name, int mode, int extraPermissions) {
|
private final void setFilePermissionsFromMode(String name, int mode, int extraPermissions) {
|
||||||
@ -443,8 +442,13 @@ public class PluginContext extends ContextThemeWrapper {
|
|||||||
// 直接获取插件的Application对象
|
// 直接获取插件的Application对象
|
||||||
// NOTE 切勿获取mLoader.mPkgContext,因为里面的一些方法会调用getApplicationContext(如registerComponentCallback)
|
// NOTE 切勿获取mLoader.mPkgContext,因为里面的一些方法会调用getApplicationContext(如registerComponentCallback)
|
||||||
// NOTE 这样会造成StackOverflow异常。所以只能获取Application对象(框架版本为3以上的会创建此对象)
|
// NOTE 这样会造成StackOverflow异常。所以只能获取Application对象(框架版本为3以上的会创建此对象)
|
||||||
|
//entry中调用context.getApplicationContext时mApplicationClient还没被赋值,会导致空指针造成插件安装失败
|
||||||
|
if (mLoader.mPluginObj.mApplicationClient == null) {
|
||||||
|
return this;
|
||||||
|
} else {
|
||||||
return mLoader.mPluginObj.mApplicationClient.getObj();
|
return mLoader.mPluginObj.mApplicationClient.getObj();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -236,9 +236,15 @@ public class PluginInfo implements Parcelable, Cloneable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 针对有问题的字段做除错处理
|
// 针对有问题的字段做除错处理
|
||||||
if (low <= 0) { low = Constant.ADAPTER_COMPATIBLE_VERSION; }
|
if (low <= 0) {
|
||||||
if (high <= 0) { high = Constant.ADAPTER_COMPATIBLE_VERSION; }
|
low = Constant.ADAPTER_COMPATIBLE_VERSION;
|
||||||
if (ver <= 0) { ver = pi.versionCode; }
|
}
|
||||||
|
if (high <= 0) {
|
||||||
|
high = Constant.ADAPTER_COMPATIBLE_VERSION;
|
||||||
|
}
|
||||||
|
if (ver <= 0) {
|
||||||
|
ver = pi.versionCode;
|
||||||
|
}
|
||||||
|
|
||||||
PluginInfo pli = new PluginInfo(pn, alias, low, high, ver, path, PluginInfo.TYPE_NOT_INSTALL);
|
PluginInfo pli = new PluginInfo(pn, alias, low, high, ver, path, PluginInfo.TYPE_NOT_INSTALL);
|
||||||
|
|
||||||
@ -700,7 +706,7 @@ public class PluginInfo implements Parcelable, Cloneable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新插件信息。通常是在安装完新插件后调用此方法 <p>
|
* 更新插件信息。通常是在安装完新插件后调用此方法 <p>
|
||||||
* 只更新一些必要的方法,如插件版本、路径、时间等。插件名之类的不会被更新
|
* 只更新一些必要的方法,如插件版本、路径、时间等。
|
||||||
*
|
*
|
||||||
* @param info 新版本插件信息
|
* @param info 新版本插件信息
|
||||||
*/
|
*/
|
||||||
@ -709,6 +715,8 @@ public class PluginInfo implements Parcelable, Cloneable {
|
|||||||
setVersion(info.getVersion());
|
setVersion(info.getVersion());
|
||||||
setPath(info.getPath());
|
setPath(info.getPath());
|
||||||
setType(info.getType());
|
setType(info.getType());
|
||||||
|
setPackageName(info.getPackageName());
|
||||||
|
setAlias(info.getAlias());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -735,6 +743,18 @@ public class PluginInfo implements Parcelable, Cloneable {
|
|||||||
return pi;
|
return pi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setPackageName(String pkgName) {
|
||||||
|
if (!TextUtils.equals(pkgName, getPackageName())) {
|
||||||
|
JSONHelper.putNoThrows(mJson, "pkgname", pkgName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setAlias(String alias) {
|
||||||
|
if (!TextUtils.equals(alias, getAlias())) {
|
||||||
|
JSONHelper.putNoThrows(mJson, "ali", alias);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setVersion(int version) {
|
private void setVersion(int version) {
|
||||||
JSONHelper.putNoThrows(mJson, "ver", version);
|
JSONHelper.putNoThrows(mJson, "ver", version);
|
||||||
JSONHelper.putNoThrows(mJson, "verv", buildCompareValue());
|
JSONHelper.putNoThrows(mJson, "verv", buildCompareValue());
|
||||||
@ -1069,8 +1089,8 @@ public class PluginInfo implements Parcelable, Cloneable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断是否为p-n类型的插件?
|
* 判断是否为p-n类型的插件?
|
||||||
* @return 是否为p-n类型的插件
|
|
||||||
*
|
*
|
||||||
|
* @return 是否为p-n类型的插件
|
||||||
* @deprecated 只用于旧的P-n插件,可能会废弃
|
* @deprecated 只用于旧的P-n插件,可能会废弃
|
||||||
*/
|
*/
|
||||||
public boolean isPnPlugin() {
|
public boolean isPnPlugin() {
|
||||||
|
Loading…
Reference in New Issue
Block a user