- 博客(91)
- 资源 (11)
- 收藏
- 关注
原创 Android:Telephony:全面深入解析RSSI(信号强度、信号格刷新,流量统计)
子:我的安卓又没信号了,奈何?我:仲尼勿忧!本篇全方位解读Android RSSI,贯穿Application、Framework、RIL、QCRIL以及Modem 各大诸侯,助您纵横驰骋列国。子大悦,曰:人而无信(号),不知其可也?
2020-01-07 10:13:15 2071
原创 Android:一篇就够!全面&详细解析APN(涉及内容:GGSN,authtype,MVNO,pdp,Apns-conf,supl,hipri,dun)
全面解析android APN此博文写作坚持以下理念:图胜于表,表胜于言;最好的解释是不用解释;1. APN的概念1.1 APN的定义Definition of Access Point NameIn the GPRS backbone, an Access Point Name (APN) is a reference to a GGSN. To support inter-PLM...
2019-11-25 16:25:47 19320 2
原创 Linux: virtualbox:虚拟机硬盘空间不足的扩容方法——clonemedium命令
modifyhd 不支持VDI格式?没关系,本篇采用“腾鸟换笼”法解决该问题。
2021-03-18 09:51:06 899 1
原创 Ubuntu:已解决:安装18.04后报错:依赖: libc6-armel-cross (>= 2.27) 但是 2.23-0ubuntu3cross1 已经安装
删除有问题的软件包并清除其配置,而不删除依赖项sudo dpkg -P --force-depends libc6-armel-cross libc6-armhf-cross libc6-dev-armel-cross libc6-dev-armhf-cross清理程序包缓存:sudo apt clean更新包装清单:sudo apt update修复损坏的依赖项(应自动安装两个已删除的软件包):sudo apt -f install最后,安装其余两个软件包:sudo apt instal
2021-03-17 15:35:41 2877 1
原创 Linux: C语言使用管道和shell实现自动登录telnet并执行拓扑查询命令
作者:GentlemanTsaohttps://blog.csdn.net/GentelmanTsao业务场景:已有业务逻辑:通过命令行终端可以登录telnet本地服务,并输入指令查询拓扑讯息。例如:telnet 127.0.0.1 7777 # 登录到本地td s2 #子指令,查询拓扑讯息exit #退出telnet现在我们要将上述步骤使用C语言做成一个指令:gettopo。调用gettopo则执行上述操作,提取出关键字串并打印输出。实现方法1.topology.sh脚本首
2020-12-23 14:17:48 1173
原创 Linux:原因及解法warning: suggest parentheses around assignment used as truth value [-Wparentheses]
警告warning: suggest parentheses around assignment used as truth value [-Wparentheses]源代码:while( recv_len = recv(sockfd,&operation,sizeof(operation),0) ){。。。}原因分析:Linux下C语言实现socket通信,报了这个警告。字面意思是,建议给赋值语句加上括号作为真值。上面的代码在语法上没有任何毛病。为什么编译器要做这样的提示?我
2020-12-04 15:32:45 4038
原创 Android:Ethernet:实现RJ45有线网和USB host无线网卡的静态IP(StaticIpConfiguration)设置上网(附源码)
本方案实现了RJ45有线网口和USB host无线网卡的开关、DHCP和静态IP的实时切换,以及静态IP的设置。
2020-11-16 13:42:24 3431 2
原创 异常处理:解决 E: 无法获得锁 /var/lib/dpkg/lock - open ;‘E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
By:GentlemanTsao文章目录问题现象原因分析解决方法:问题现象Ubuntu使用apt更新软件包时,有时会提示更新失败,并报下面的错误:E: 无法获得锁 /var/lib/dpkg/lock - open ;'E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?原因分析apt在运行时对dpkg加锁,如果在软件包更新的中途异常退出,而apt进程仍然存在,会出现该问题。此时需要手动解锁。解决方法:输入如下指令,解除apt的锁定sudo rm /var/
2020-08-25 14:00:28 227
原创 异常处理:解决Ubuntu用APT指令安装VirtualBox 6.1报错:The following signatures were invalid: BADSIG
作者 | GentlemanTsao文章目录问题描述:问题分析:解决方法:问题描述:使用如下APT指令安装VirtualBox 6.1,sudo apt-get updatesudo apt-get install virtualbox-6.1在update过程中报错:The following signatures were invalid: BADSIG问题分析:提示签名无效,判断是key有问题。解决方法:可以将key删除,重新更新。输入如下指令:# sudo -s -H#
2020-08-14 16:44:20 859
原创 异常处理:解决安装双系统(windows+Ubuntu)的PC,进入windows系统时出现花屏的问题
作者 | GentlemanTsao文章目录问题描述:问题分析解决方法问题描述:某些PC需安装windows和Ubuntu双系统——先安装Windows,后安装Ubuntu。在进入windows系统时常会出现花屏的问题。问题分析进Ubuntu系统的显示是正常的;只有进windows系统会显示花屏。如果是这种情况,判断与显卡驱动有关。在系统启动时会先加载Ubuntu的显卡驱动以用来加载选择系统的界面,致使在选择进入Windows时出现花屏情况。解决方法首先,进入Ubuntu中,打开/et
2020-08-14 13:20:11 1052
原创 Modem2G/3G/4G/5G:RFFE Driver(射频前端驱动):高通平台GRFC配置方法
文 | GentlemanTsao文章目录前言1.什么是GRFC2.GRFC的配置流程概览3.msm_sig_info的配置与分析msm_sig_info Table位置:msm_sig_info Table示例:Table元素解读:rfc_msm_sig_info_type结构体signal typemsm_gpio |grfc_num:GPIO到GRFC的映射output_typefunction_select4._sig_cfg的配置与分析_sig_cfg table位置:_sig_cfg tabl
2020-08-14 10:18:48 5015 2
原创 Modem2G/3G/4G/5G:通信领域常见名词缩写释义(VoLTE,CSFB,CA,RAT...)
By:GentlemanTsao文章目录CA:CSFBVoLTELAAOOSCA:Carrier aggregation,即载波聚合。LTE-Advanced系统引入的一项增加传输带宽的技术。将2~5个LTE成员载波(ComponentCarrier,CC)聚合在一起,实现最大100MHz的传输带宽。CSFBCircuit switched fallback,译为电路域回落。技术背景:LTE网络是全分组交换网络,换句话说,LTE网络不再支持CS(电路域)。而传统语言业务是依赖CS的。因此,
2020-08-07 11:23:00 3510
原创 Modem2G/3G/4G/5G:USIM:高通平台单双卡NV设置(DSDS、DSDA)
NV设置70266DSDA: 2DSDS: 1SINGLE: 04398DSDS: 0Single: 168760000570210dual SIM:hw_config.UIM[0].DISABLE_UIM:FALSEhw_config.UIM[1].DISABLE_UIM: FALSEUIM0 hotswap:根据HW设计UIM1 hotswap:根据HW设计
2020-08-06 16:33:14 2649
原创 Modem2G/3G/4G/5G:解决TDS-CDMA:HSDPA:能注册上call box,但无法连接(Integrity protection not activated)
问题描述:TDS-CDMA:HSDPA测试,能注册上call box,但无法连接,显示idle。log分析:在Down link和up link时都报了下面错误:[0xD0E3/001/005] OTA LOG 00:08:56.724 DCCH UL/Initial DirectTransferRadio Bearer ID: 3, Length: 500x100043004300e3d02931438d06000000
2020-08-06 10:25:31 513
原创 Android:CTS:解决android.carrierapi.cts.CarrierApiTest#testIccExchangeSimIO fail
该条fail case的原因在另一篇中已分析,是同类问题,解法相同。详细参见:Android:CTS:解决android.carrierapi.cts.CarrierApiTest#testIccTransmitApduBasicChannel fail
2020-08-05 09:48:29 644
原创 Android:CTS:解决android.carrierapi.cts.CarrierApiTest#testIccTransmitApduBasicChannel fail
解决 CTS fail:junit.framework.ComparisonFailure: expected:<[90]00> but was:<[6f]00>
2020-08-04 15:09:16 1801
原创 Modem2G/3G/4G/5G:功耗管理:高通平台Thermal架构与配置方法(二):Thermal Engine(涉及SS、monitor算法,DTM)
Thermal 引擎Thermal引擎的代码位置:vendor/qcom/proprietary/thermal-engine/配置方法:在thermal-engine.conf中配置thermal rules。该文件默认是空的,可以添加自定义rules,例如添加一个CPU0 的rules:[CPU0_MONITOR]algo_type monitorsensor cpu0sampling 1000thresholds 9000
2020-08-03 10:25:42 2565 3
原创 Modem2G/3G/4G/5G:功耗管理:高通Thermal架构与配置方法(一):Thermal Zone与Cooling Device
Thermal框架概览认识thermal sysfsThermal sysfs是UE中的文件节点,暴露了thermalsensor,可以通过adb读取和修改。在UE的/sys/class/thermal目录下查看,可以得到cooling_device和thermal zone列表,如下所示:每个cooling_device都有自己的类型(type),以区分其他device。我们可以cat cooling_device11 ~14,看到这几个属于modem,依次对应于:PAModem pro
2020-07-29 10:34:52 3496
原创 Modem2G/3G/4G/5G:吐血总结:30分钟掌握高通modem RFFE driver(射频驱动)配置方法(一)
紧急任务你是一位电子厨师,接到指挥官下达的紧急任务,要求在30分钟内为R星居民做出美食,否则R星将可能发生饥荒。R星人以电磁波为食。随即你收到了总部发来的美食图谱,如下:
2020-07-27 09:33:12 4906 4
翻译 2020版Java并发和多线程教程(二十九):非阻塞算法(非阻塞并发数据结构、比较交换、乐观锁、共享意向修改、ABA问题、非阻塞算法模板)
并发中所谓的非阻塞算法是允许线程访问共享状态(或以其他方式进行协作或通信)而不会阻塞所涉及线程的算法。 更笼统地说,如果一个线程的挂起不会导致该算法中涉及的其他线程挂起,则该算法称为非阻塞算法。为了更好地理解阻塞和非阻塞并发算法之间的区别,我将首先说明阻塞算法,接着再说明非阻塞算法。阻塞并发算法...
2020-07-17 18:06:32 289
翻译 Java函数式编程教程(五):Java Steam API
Java Stream API提供了一种处理对象集合的函数式方法。 Java Stream API是在Java 8中添加的,同时还具有其他一些函数式编程功能。 本Java Stream教程将解释这些函数式流的工作方式以及使用方法。
2020-07-07 09:34:18 762
原创 码农:编程指数10年没涨啊,我被严重低估了!码交所:我编制了新的学习方法,你们满意吗?
面试造火箭,工作拧螺丝?不怕,用分裂学习法;只顾埋头拉车,忘了抬头看路?勿忧,还有螃蟹学习法~
2020-07-03 16:39:58 289
翻译 Java函数式编程教程(四):Java函数式组合
函数式组合是一种将多个函数组合为单个函数的技术,该函数在内部使用组合函数。 你可以自己将单个函数(通常是一个或多个Java Lambda表达式)组合为一个函数,但是Java还内置了对函数组合的内置支持,使你的工作更轻松。 在此Java函数式组合教程中,我将说明如何自己通过较小的函数以及通过Java的内置功能来组成函数。Java函数式组合示例首先,让我向你展示Java函数式组合的示例。 这是由其他两个函数组成的单个函数:Predicate<String> startsWithA = (tex
2020-06-27 17:12:28 589
翻译 Java函数式编程教程(三):Java函数式接口(Function Predicate UnaryOperator BinaryOperator Supplier Consumer)
翻译:GentlemanTsao,Java函数式接口一词是在Java 8中引入的。Java中的函数式接口是仅包含一个抽象(未实现)方法的接口。 除了单个未实现的方法外,函数式接口还可以包含已实现的默认方法和静态方法。下面是一个Java函数式接口示例:public interface MyFunctionalInterface { public void execute();}上面的代码被视为Java中的函数式接口,因为它仅包含一个方法,并且该方法没有实现。 通常,Java接口不包含其声明的
2020-06-24 13:18:32 448
翻译 Java函数式编程教程(二):Java高阶函数(排序集合,反向排序)
翻译:GentlemanTsao高阶函数是将函数(方法)作为参数,或者在执行后返回函数的函数。 在这个高阶教程中,我将展示一些Java中高阶函数的示例。排序集合高阶函数的第一个示例是Collections.sort()方法,该方法将Comparator作为参数。 这是一个例子:List<String> list = new ArrayList<>();list.add("One");list.add("Abc");list.add("BCD");Collection
2020-06-24 09:38:29 581
翻译 Java函数式编程教程(一):序章,函数式编程来了
翻译:GentlemanTsao, 2020-06-23函数式编程基础知识;函数作为第一等对象;纯函数;高阶函数;无状态;无副作用;不可变变量;递归优先于循环;函数式接口;
2020-06-23 10:11:24 347
原创 Android: APN: 3UK APN roaming客制,如何让APN随网络漫游而切换(EUinternet)?
By:GentlemanTsao文章目录背景:要求行为:菜单:实现方案:静态切换:动态切换:关键源代码1.随菜单设置切换APN2. 随网络漫游状态动态切换APN背景:3UK 希望在漫游的时候,APN 能够从 local 切换到 common,也就是从自己的 APN 切换到 一个通用的 APN。这项被称为 LBO 的 feature ,即欧洲的运营商都要支持该通用 APN。要求行为:在本地网络,要使用 3UK 本地 APN;处于漫游时,使用 EUInternet APN,不再从 3UK 接入
2020-06-22 14:48:29 660
原创 Modem2G/3G/4G/5G:APN:使用AT+CGDCONT命令设置modem默认APN(CID1)
AT+CGDCONT可以用于查看或修改APNat+cgdcont?CGDCONT: 1,“IPV4V6”,“internet”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0 ★APN Name “internet”CGDCONT: 2,“IPV6”,“ims”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0CGDCONT: 3,“IPV4V6”,“sos”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”
2020-06-22 13:34:35 11147 2
原创 Modem2G/3G/4G/5G:解决设备连接高通QPST工具(例如QXDM抓log)没有端口(diag口)问题
文章目录问题描述生效条件解决方法Q&A问题描述使用QXDM抓log需要用到设备的diag口,但很多版本的diag口并没有开放,这会导致打开QXDM后,看不到设备的端口,无法正常连接。没有diag口的可能原因比较多,其中有些是无法开启的,例如版本打开了secure boot并封闭了diag。生效条件下面的方法的前提是:设备是userdebug版本或可以root。解决方法连接USB cable并键入指令:
2020-06-19 17:54:53 6283 2
原创 Modem2G/3G/4G/5G:完整收录,2020最新MCC、MNC、运营商对照表,全球运营商MCCMNC查询列表
说明:列表元素结构{MCC, MNC, 制式,简称,全称}制式:GSM_900:2GDCS_1800:2GUMTS:3GLTE:4G列表:{202, 1, MMGSDI_PLMN_NETWK_TYPE_GSM_900_MASK|MMGSDI_PLMN_NETWK_TYPE_DCS_1800_MASK|MMGSDI_PLMN_NETWK_TYPE_UMTS_MASK, “C-OTE”, “GR COSMOTE”, TRUE},{202, 5, MMGSDI_PLMN_NETWK
2020-06-17 10:59:28 16078
原创 Modem2G/3G/4G/5G:CBS:NCC认证:高通平台通过MBN控制Cell Broadcast Service(CBS)(有操作动画)
By:GentlemanTsao文章目录Background:Evaluation:Solution Details:Operations:Background:台湾的NCC认证,对cell broadcast message(CBS) channel有客制要求。具体为:当插入台湾运营商SIM,开启CBS,channel list如下Evaluation:1.CBS channel list可以预设到modem BIN中2.CBS的开关的依据是不同的SIM卡,评估此需求,采用新增CBS M
2020-06-15 16:56:12 1575
翻译 2020版Java并发和多线程教程(三十):终章:阿姆达尔定律(Amdahl‘s Law)
终章:阿姆达尔定律。《Java并发和多线程教程》翻译终于填坑了。
2020-06-15 12:41:20 350
翻译 2020版Java并发和多线程教程(二十八):同步器的结构
本篇归纳了同步器的共性结构,包括:状态;访问条件;状态改变;通知策略;检查并设置方法;设置方法;
2020-06-13 06:44:55 225
原创 Modem2G/3G/4G/5G:高通Policy Manager(概述,优势,架构与API,配置与debug方法)
By:GentlemanTsao本篇主要介绍1 Policy Manager概述2 为什么使用policy manager弱耦合:方便修改:动态配置:3 policy manager架构与API3.1 policy manager包括两部分:3.2 上层架构:3.3 Policy生效过程4 如何修改Policyman XML4.1 Policyman包含的XML文件4.2 三种类型:Lists, booleans, and timersListBooleansTimers4.3 Policyman XML
2020-06-12 11:11:13 2932
翻译 2020版Java并发和多线程教程(二十七):比较交换(CAS)
比较交换是设计并发算法时使用的一种技术。 基本上,比较交换将期望值与变量的实际值进行比较,如果变量的实际值等于期望值,则将变量的值替换为新的值。 比较交换听起来可能有点复杂,但是一旦你理解了它,实际上就相当简单了,所以让我对这个话题做进一步的阐述。哪些情况需要用到比较交换在程序和并发算法中,一种常会出现的模式是“先检查后行动”模式。 当代码首先检查变量的值,然后根据该值进行操作时,将出现检查然后操作模式。 这是一个简单的示例:...
2020-06-11 21:16:55 261
翻译 2020版Java并发和多线程教程(二十六):线程池(Thread Pool)
当需要限制应用程序中同时运行的线程数时,线程池很有用。 启动新线程会带来性能开销,并且每个线程还为其栈等分配了一些内存。与其为每个并发执行的任务启动新线程,不如将任务传递给线程池。 一旦池中有任何空闲线程,就会将任务分配给其中一个并执行。 内部实现为将任务插入到阻塞队列中,线程池中的线程从该队列中取出。 当一个新任务插入到队列后,其中一个空闲线程将它从队列中出队并执行它。 线程池中的其余空闲线程将被阻塞,等待任务出队。线程池通常用于多线程服务器中。 通过网络到达服务器的每个连接都被包装为一个任务,并传递
2020-06-10 09:34:06 256
翻译 2020版Java并发和多线程教程(二十五):阻塞队列
阻塞队列是这样一个队列,当尝试在队列为空时出队,或者尝试在队列已满时入队,它将阻塞。 尝试从空队列中出队的线程将被阻塞,直到其他线程插入一项到队列中为止。 尝试使一个项目进入满队列的线程将被阻塞,直到某个其他线程在队列中腾出空间为止,方法是使一个或多个项目出队或完全清除队列。下面的示意图显示两个线程通过阻塞队列进行协作:Java 5在java.util.concurrent包中附带了阻塞队列实现。 可以在我的java.util.concurrent.BlockingQueue教程中了解该类。 即使Ja
2020-06-09 07:15:23 188
翻译 2020版Java并发和多线程教程(二十四):信号量(Semaphores,计数信号量,有界信号量,信号量用作锁)
翻译:GentlemanTsao,2020-06-08;简单的信号量;使用信号量传递信号;计数信号量;有界信号量;将信号量用作锁
2020-06-08 21:18:25 280
翻译 2020版Java并发和多线程教程(二十三):重入锁死
重入锁死是一种类似于死锁和嵌套管程锁死的情况。 重入锁死在“锁”和“读/写锁”一文中也有涉及。如果线程重新进入Lock,ReadWriteLock或其他不可重入的同步器,则可能会发生重入锁死。 可重入是指已持有锁的线程可以重新获取该锁。 Java的同步块是可重入的。 因此,以下代码可以正常工作:public class Reentrant{ public synchronized outer(){ inner(); } public synchronized inner(){
2020-06-07 09:50:33 228
android开发环境集成安装包_ubuntu16_04
2021-08-06
RJ45_USBhost_StaticIP.rar
2020-11-16
ethernetStaticIP_patch.zip
2020-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人