安卓 通过adb将TF(SD)卡用作内置存储

手上有个360 N6,平时当备用机,存点音乐视频什么的,存储空间不太够,于是乎买了张TF卡插上。(其实应该去看看紫光的超级SIM卡能不能用的,深圳联通公众号上也发可以参加预存话费赠卡的活动了)

我的第一部智能手机买的是黑莓Priv,插卡之后会提示格式化成外置的便携式存储(可以拔出来在不同设备,比如电脑上交换数据)还是内置存储(不能用在其它机器上),并且使用非常正常。

好了问题来了,N6插卡之后只能格式化成外置存储(?),这就很蛋疼,插卡的意义似乎就不大。后面发现其实可以用adb开启,虽然好像还是有点问题。

But how?

可以用sm来做到。

首先连续多次点按设置->系统->关于手机->版本号,打开开发者选项,然后在开发者选项打开USB调试。此时可以把手机连接到电脑上了。

我正在使用Android Studio,安装过Android SDK,可以直接在C:\Users\domain\AppData\Local\Android\Sdk\platform-tools中找到adb工具。没有也没关系,从SDK平台工具版本说明 | Android 开发者 | Android Developers可以下载到独立的工具包。

已经有了platform-tools之后,进入该目录,按住Shift再点击鼠标右键可以在该目录打开PowerShell。此时运行:

PS C:\Users\domain\AppData\Local\Android\Sdk\platform-tools> .\adb.exe devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
1f95707d        unauthorized

显示未授权,此时手机上应该会弹窗是否允许电脑进行调试(以及一个密钥),允许后再次执行:

PS C:\Users\domain\AppData\Local\Android\Sdk\platform-tools> .\adb.exe devices
List of devices attached
1f95707d        device

此时可以:

PS C:\Users\domain\AppData\Local\Android\Sdk\platform-tools> .\adb.exe shell
QK1707:/ $

有了手机的Shell了,尝试sm工具查看存储:

QK1707:/ $ sm list-disks
disk:179,64

如果手机允许:

QK1707:/ $ sm has-adoptable
true

反之则可能需要尝试sm set-force-adoptable true。接下来 就可以:

QK1707:/ $ sm partition disk:179,64 private

来将存储卡格式化为内置存储。如果执行:

QK1707:/ $ sm partition disk:179,64 mixed 30

可以将部分空间格式化为内置存储,另一部分(30%)作为便携式存储。

此时可以在设置中看到存储卡已经被设置为内置存储了。发现容量显示有问题,而且迁移也有点问题。网友分享格机后,安装应用不要打开马上迁移就没有问题。决定这几天格机再试一下。

引用:
android – How to turn a portable SD card into internal storage via ADB command? – Stack Overflow
透過ADB方式開啟與配置Adoptable Storage空間(免root) @ 老梁’s blog :: 隨意窩 Xuite日誌
360N7Lite免root安装应用到内存卡的方法及其它玩机教程-更新自动安装到内存卡_360社区

Windows下利用WSL使用pwntools

(以下是小学生日记式开头)

今天我们来讨论一下在Windows上使用pwntools的姿势。

WSL到现在也有一段时间了,现在你也可以选择玩WSL 2。PyCharm支持它挺久了,下面就来简单废话一下。

如果你不打算用IDE…

那似乎并不需要看我下面在废话什么了…你只需要:

  1. 控制面板->程序->启用或关闭Windows功能里选上适用于Linux的Windows子系统,或是直接打开PowerShell:
    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  2. 可以到Microsoft Store搜索WSL,然后下载安装一个适合你的Linux发行版。
  3. 在WSL中安装你所需要的工具,例如python、nano,当然还有pwntools。

然后你就可以愉快地开始撸题了。

准备好WSL和IDE

好了我们来进入正题。这里我就假设你已经根据上面的几句简短的描述安装好了WSL(滑稽.jpg)。现在,你可以选择JetBrains PyCharm,对于学生来说,可以申请教育授权来免费使用Professional版本。

另外,如果你已经拥有了JetBrains IntelliJ IDEA Ultimate,并且不希望再安装一个IDE,你可以安装Python插件来实现。

配置一下

如果你不想看我废话,你可以出门拐弯到这里

不论是PyCharm还是IntelliJ IDEA,新建Project的时候应该都会提示指定Python解释器。选择WSL就可以开始了。

如果已经新建好了一个Project,这个时候你可以在右上角或Settings中找到Project Structure (Ctrl+Alt+Shift+S),找不到的话就两下Shift来Search Everywhere吧。然后选中左侧栏的Platform Settings->SDKs,点击加号并选中Python SDK,就像这样:

PWNTOOLS-1.png
Project Structure->SDKs->Add New SDK

附:当写这篇文章的时候,IntelliJ IDEA还是2019.1,某个小版本里,这里没有WSL选项,当时用SSH Interpreter先顶一下。

Unresolved reference ‘pwn’

确定正确的SDK之后,如果IDE建立索引后,代码中的from pwn import *仍然提示错误:Unresolved reference ‘pwn’,可能可以通过Invalidate Caches来解决。

PWNTOOLS-5.png
Invalidate Caches and Restart

重启后应该就没有问题了。

PWNTOOLS-6.png

引用:
Why PyCharm can’t resolve reference for a remote Docker interpreter?

第14年 最大值室

输出两个数中较大的那个,相等则输出任意一个。

前三行仍然是为了合并才放上去的。

如果04行输入是a(05行保存到寄存器0),06行输入是b。当(b-a)<0,即a>b的时候08行跳转02行,此时复制寄存器0的a并输出。反之,即b>=a的时候,09行会先把(b-a)+a=b,就是还原b(因为没有保存),然后10行跳转03行直接输出。

第12年 四十倍扩大器

40倍可以考虑是5个8倍,即:40=5*8=(4+1)*(2*2*2)=4*(2*2*2)+(2*2*2)。

02和03行乘2,04和05行乘2,06和07行乘2,此时8倍。

由于要凑4+1个,所以应该存一份8倍的数值(08行),不用存两份(不用存寄存器0),因为可以用寄存器1的值乘2后再放回寄存器0。

08和09行乘2,10和11行乘2,已经8*4了,12行再把之前放在寄存器1的8倍加上就刚好8*5了。