工具类-- PhoneUtil 获取手机版本号

public class PhoneUtil {
   private static final TelephonyManager tm = (TelephonyManager) BmacNfc.getInstance( )
         .getSystemService(Context.TELEPHONY_SERVICE);

   /**
    * 唯一的设备IDGSM手机的 IMEI CDMA手机的 MEID. Return null if device ID is not
    * available.
    */
   public static String getDeviceId() {
      return tm.getDeviceId();
   }

   /**
    * 获取手机的mac地址
    * @return
    */
   public static String getMacAddress() {
      WifiManager wifi = (WifiManager) BmacNfc.getInstance( )
            .getSystemService(Context.WIFI_SERVICE);
      WifiInfo info = wifi.getConnectionInfo();
      return info.getMacAddress();
   }

   /**
    * 唯一的用户ID: 例如:IMSI(国际移动用户识别码) for a GSM phone. 需要权限:READ_PHONE_STATE
    */
   public static String getSubscriberId() {
      String subscriberId = getDeviceId();
      if (StringUtil.isEmpty(subscriberId)) {
         subscriberId = getMacAddress();
      }
      if (StringUtil.isEmpty(subscriberId)) {
         subscriberId = tm.getSubscriberId();
      }
      return subscriberId;
   }

   /**
    * 获取当前应用的版本号
    * 
    * @return
    */
   public static String getVersionName() {
      // 获取packagemanager的实例
      PackageManager packageManager = BmacNfc.getInstance( )
            .getPackageManager();
      // getPackageName()是你当前类的包名,0代表是获取版本信息
      PackageInfo packInfo = null;
      try {
         packInfo = packageManager.getPackageInfo(
               BmacNfc.getInstance( ).getPackageName(), 0);
      } catch (NameNotFoundException e) {
         e.printStackTrace();
      }
      String version = packInfo.versionName;
      return version;
   }
   
   /**
    * 获取当前应用的版本号
    * 
    * @return
    */
   public static int getVersionCode() {
      // 获取packagemanager的实例
      PackageManager packageManager = BmacNfc.getInstance( )
            .getPackageManager();
      // getPackageName()是你当前类的包名,0代表是获取版本信息
      PackageInfo packInfo = null;
      try {
         packInfo = packageManager.getPackageInfo(
               BmacNfc.getInstance( ).getPackageName(), 0);
      } catch (NameNotFoundException e) {
         e.printStackTrace();
      }
      return packInfo.versionCode;
   }


   /**
    * 获取当前系统的版本号
    * @return
    */
   public static String getSDKVersion() {
      return android.os.Build.VERSION.RELEASE;
   }
   
   /**
    * 获取手机的型号
    * @return
    */
   public static String getModel() {
      return android.os.Build.MANUFACTURER+" "+android.os.Build.MODEL;
   }
   
   /**
    * 获得状态栏的高度
    * @return
    */
   public static int getStatusBarHeight(Context context ) {
      Rect rect = new Rect( );
      ((Activity)context).getWindow( ).getDecorView( ).getWindowVisibleDisplayFrame( rect );
      return rect.top;
   }
   
   public static String getPhoneNum(){
      return tm.getLine1Number();
   }
   
   /**
    * dp转像素
    * @param dp
    * @param context
    * @return
    */
   public static int dp2px( int dp ,Context context) {
      return (int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources( ).getDisplayMetrics( ) );
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AnimationUtils 动画工具类 AppUtils APP相关信息工具类 AssetDatabaseOpenHelper 目录资源获取 Base64 加密 BitmapUtil 获取Bitmap和对Bitmap的操作 ChannelUtil 获取市场号 Colors 颜色工具类 包括常用的色值 DES DES加密解密类 DataCleanManager 本应用数据清除管理器 DatabaseExportUtils 应用数据库导出工具类 DateUtil 日期操作工具类 DbHelper 数据库帮助类 DensityUtil 屏幕信息获取数值的转换 DeviceStatusUtils 手机状态工具类 主要包括网络、蓝牙、屏幕亮度、飞行模式、音量等 DigestUtils DigestUtils FileUtils 文件操作 HanziToPinyin 拼音汉字处理 IOUtils IOUtils MD5 MD5 MiscUtils 设备信息的获取 NetWorkUtils 网络状态 PhoneUtil 手机组件调用工具类 PreferencesUtils sp工具类 RandomUtils 随机数工具类 RecorderControl 录音工具类 SerializeUtils Serialize ShellUtils shell指令 ShortCutUtils 创建删除快捷图标 SingletonUtils 单例工具 SizeUtils SizeUtils SqliteUtils SqliteUtils StreamUtils 流转换成字符串 StringUtils String SystemUtils 线程池工具类 TimeUtils TimeUtils ToastUtils ToastUtils TransitionTime 用来计算显示的时间是多久之前 ViewAnimationUtils 视图动画工具箱,提供简单的控制视图的动画的工具方法 ViewUtils view控制 WiFiUtil WiFiUtil WindowUtils 窗口工具箱 ZipUtil 实现的Zip工具 BadgeUtil 设置Badge LogUtil LogUti工具类 ArrayUtils 数组工具类,提供一些有关数组的便捷方法 ByteUtils 字节工具类,提供一些有关字节的便捷方法 CheckAdapter 选择适配器 CheckingUtils 提供常用数据验证的工具类,不符合的话就抛异常 Countdown 倒计时器 DialogUtils 对话框工具箱 DoubleClickExitDetector 双击退出识别器 ImageProcessor 图片处理器 InputMethodUtils 软键盘工具类 LoopTimer 循环定时器 NestedGridView 嵌套使用的GridView NestedListView 嵌套使用的ListView OSUtils Android系统工具箱 OtherUtils 主要是给字符串添加html ReflectUtils 反射工具类,提供一些Java基本的反射功能 RegexUtils 正则表达式工具类,提供一些常用的正则表达式 SDCardUtils SD卡工具箱 Symbols 常用符号 WebViewManager WebView管理器,提供常用设置 原地址:https://github.com/l123456789jy/Lazy
使用Frida检测App内部是否包含残留手机号信息可以分为以下几个步骤: 1. 安装Frida:首先,在设备上安装Frida。可以使用pip、npm或从GitHub上下载Frida进行安装。 2. 连接设备:然后,将设备连接到计算机,并确保设备已启用USB调试模式。 3. 启动应用程序:在设备上启动应用程序,并等待应用程序加载完毕。 4. 编写脚本:使用Frida编写脚本,拦截应用程序中的函数调用,并查看其中是否包含手机号码等敏感信息。以下是一个使用Frida检测应用程序中是否包含手机号码的示例脚本: ```javascript Java.perform(function() { var PhoneNumberUtil = Java.use("com.google.i18n.phonenumbers.PhoneNumberUtil"); var phoneUtil = PhoneNumberUtil.getInstance(); // 拦截函数调用 phoneUtil.parse.implementation = function(str, region) { console.log("[*] Parsing phone number: " + str); var phoneNumber = this.parse(str, region); if (phoneNumber) { console.log("[+] Phone number found: " + phoneNumber.toString()); } return phoneNumber; } }); ``` 在上述示例代码中,我们使用Frida拦截了com.google.i18n.phonenumbers.PhoneNumberUtil中的parse()函数调用,以查找应用程序中的手机号码。在函数调用中,我们将解析的电话号码打印到控制台上。 5. 运行脚本:最后,在计算机上运行Frida脚本。可以使用以下命令在设备上启动Frida: ``` $ frida -U -f <package_name> -l <script_name>.js --no-pause ``` 在上述命令中,<package_name>是要分析的应用程序的包名,<script_name>.js是Frida脚本的名称。 运行脚本后,Frida会拦截应用程序中的函数调用,并查找其中是否包含手机号码等敏感信息。如果发现敏感信息,应该通知开发人员进行修复。 需要注意的是,Frida仅供参考,最终还需要开发人员进行代码审计和修复。开发人员需要在应用程序中遵循最佳实践,例如不将敏感信息存储在本地、加密保存敏感信息等,以保护用户隐私。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值