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