华为上架时,被违规获取android_id原因拒绝上架, 使用HookLoginDemo检测结果如下
2022-06-08 10:36:49.956 28518-28550/? D/HookLogin: 调用Settings.Secure.getstring获取了android_id
2022-06-08 10:36:49.957 28518-28550/? E/HookLogin: java.io.IOException
at com.example.hooklogin.HookLogin.getMethodStack(HookLogin.java:213)
at com.example.hooklogin.HookLogin.access$000(HookLogin.java:23)
at com.example.hooklogin.HookLogin$6.afterHookedMethod(HookLogin.java:184)
at de.robv.android.xposed.DexposedBridge.handleHookedArtMethod(DexposedBridge.java:265)
at me.weishu.epic.art.entry.Entry64.onHookObject(Entry64.java:64)
at me.weishu.epic.art.entry.Entry64.referenceBridge(Entry64.java:239)
at com.learnium.RNDeviceInfo.RNDeviceModule.getUniqueIdSync(RNDeviceModule.java:658)
at com.learnium.RNDeviceInfo.RNDeviceModule.getConstants(RNDeviceModule.java:162)
at com.facebook.react.bridge.JavaModuleWrapper.getConstants(JavaModuleWrapper.java:128)
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:26)
at android.os.Looper.loop(Looper.java:227)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:225)
at java.lang.Thread.run(Thread.java:919)
HookLoginDemo使用方式百度一下
经过排查at com.learnium.RNDeviceInfo.RNDeviceModule.getUniqueIdSync(RNDeviceModule.java:658)确定是第三方依赖react-native-device-info导致的问题
解决方案 : 将import导入改为内联应用
import DeviceInfo from 'react-native-device-info';
const getDevicesId = () => {
return DeviceInfo.getUniqueId()
}
修改为
const getDevicesId = () => {
const DeviceInfo = require('react-native-device-info').default;
return DeviceInfo.getUniqueId()
}
补充:该方法还是会获取android_id,,,此处理的原因是,调用该组件的方法前,用户已经同意隐私政策,即:用户首次启动并同意隐私政策,后续使用该组件库的时候再获取android_id,不会被商店视为违规
原文: http://t.csdn.cn/jswba
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)