mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 23:00:44 +00:00
琚帶绔?- 淇 MTU 闂锛氬す MSS + 璺緞 MTU 鎺㈡祴锛堝叕缃戝彲鐢ㄧ巼 48% -> 100%锛?- 澶嶇敤 HTTP 杩炴帴锛堝厤鎺夋瘡娆℃柊寤?TLS 鐨?30% 鎻℃墜澶辫触锛?- 姣忓垎閽熷洖澶存壘灞€鍩熺綉锛岃嚜鍔ㄥ垏鍥炲揩 400 鍊嶇殑璺緞 - 鐢婚潰蹇冭烦甯э細闈欐鏃剁渷娴侀噺锛屽鎴风浠嶇煡閬撴祦鏄椿鐨?- 閿佸睆鏃剁粰鍑哄彲鎿嶄綔鐨勬彁绀? 鎵嬭〃绔?- 鍐呯疆 GTS Root R4 / GlobalSign Root CA锛屼慨 SSLHandshakeException - 杩炴帴閿欒缈昏瘧鎴愪汉璇濓紙璇佷功/鏃堕棿/瑙f瀽/瓒呮椂鍒嗗埆鎻愮ず锛?- 缁忎腑杞繛涓婂悗鐢ㄦ湇鍔″櫒鎶ョ殑鍦板潃鍒锋柊宸查厤瀵硅褰?- 鏂板灞€鍩熺綉杩炴帴椤甸潰銆佹湇鍔″櫒寤惰繜妫€娴? 鏈嶅姟鍣ㄧ - 鏀寔 chunked 璇锋眰浣擄紙淇瘡 16 绉掍竴娆$殑杩炴帴閿欎贡涓庡ぇ闈㈢Н 502锛?- 缃戠粶璋冧紭鑴氭湰 net-tune.sh锛堝紑鏈鸿嚜鍔ㄥ簲鐢級 - 绠$悊椤碉細鎵归噺鍒犻櫎銆佺綉缁滀綋妫€銆佷笅杞藉尯 - 闅ч亾鏀?HTTP/2 + 鍙岃繛鎺? 鏂囨。 - 璁稿彲鍗忚 / 瀹夎鍓嶅繀璇?/ 瀹夎鍚庨』鐭ワ紙浣滆€咃細灏忛害瀛愶級
182 lines
6.5 KiB
Python
182 lines
6.5 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""安卓改造第二步:清残余 + 实现"输入配对码连接"。
|
||
|
||
问题:
|
||
* requestPcSelfCheck() 还在用局域网广播(Discovery)
|
||
* onConnectClicked() 还在读 hostInput/portInput(那两个输入框已经删了)
|
||
* quickConnect() 还在往已删的输入框里写
|
||
* 上一个补丁里引用了 promptPairingCode(),但还没实现
|
||
|
||
做完之后,手表的连接方式只有一种:
|
||
经中转 + 配对码。不用管 IP、端口、局域网。
|
||
"""
|
||
from __future__ import annotations
|
||
|
||
import sys
|
||
from pathlib import Path
|
||
|
||
MAIN = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\android\src"
|
||
r"\com\lanremote\watch\MainActivity.java")
|
||
|
||
|
||
def drop_method(text: str, header_pattern: str) -> tuple:
|
||
"""按花括号配平删掉一个方法(连前面的注释行)。"""
|
||
import re
|
||
lines = text.splitlines(keepends=True)
|
||
start = None
|
||
for index, line in enumerate(lines):
|
||
if re.search(header_pattern, line):
|
||
start = index
|
||
break
|
||
if start is None:
|
||
return text, False
|
||
depth = 0
|
||
seen = False
|
||
end = None
|
||
for index in range(start, len(lines)):
|
||
depth += lines[index].count("{")
|
||
if "{" in lines[index]:
|
||
seen = True
|
||
depth -= lines[index].count("}")
|
||
if seen and depth <= 0:
|
||
end = index
|
||
break
|
||
if end is None:
|
||
return text, False
|
||
while start > 0 and lines[start - 1].strip().startswith("//"):
|
||
start -= 1
|
||
while end + 1 < len(lines) and lines[end + 1].strip() == "":
|
||
end += 1
|
||
del lines[start:end + 1]
|
||
return "".join(lines), True
|
||
|
||
|
||
ON_CONNECT_OLD = ''' private void onConnectClicked() {
|
||
String host = hostInput.getText().toString().trim();
|
||
String portText = portInput.getText().toString().trim();
|
||
String code = codeInput.getText().toString().trim();
|
||
if (host.isEmpty()) {
|
||
setStatus("请先填写电脑 IP", C_WARN);
|
||
return;
|
||
}
|
||
int port;
|
||
try {
|
||
port = portText.isEmpty() ? RemoteClient.DEFAULT_PORT : Integer.parseInt(portText);
|
||
} catch (NumberFormatException e) {
|
||
setStatus("端口必须是数字", C_WARN);
|
||
return;
|
||
}
|
||
if (code.isEmpty()) {
|
||
setStatus("请填写电脑上显示的配对码", C_WARN);
|
||
return;
|
||
}
|
||
connect(host, port, code, null, DeviceStore.deviceKey(host, port, store.deviceId()));
|
||
}
|
||
|
||
private void quickConnect(String host, int port, String token, String key) {
|
||
hostInput.setText(host);
|
||
portInput.setText(String.valueOf(port));
|
||
connect(host, port, null, token, key);
|
||
}'''
|
||
|
||
ON_CONNECT_NEW = ''' /**
|
||
* 让用户输 6 位配对码,直接连上那台电脑。
|
||
*
|
||
* 现在只有这一种连接方式了 —— 统一经中转。
|
||
* 不用管电脑 IP、端口、在不在同一个局域网。
|
||
*/
|
||
private void promptPairingCode() {
|
||
final EditText input = new EditText(this);
|
||
input.setInputType(InputType.TYPE_CLASS_NUMBER);
|
||
input.setHint("6 位数字");
|
||
input.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
|
||
input.setGravity(Gravity.CENTER);
|
||
input.setPadding(dp(12), dp(14), dp(12), dp(14));
|
||
|
||
String last = savedPairingCode();
|
||
if (last != null && !last.isEmpty()) {
|
||
input.setText(last);
|
||
input.setSelection(input.getText().length());
|
||
}
|
||
|
||
new AlertDialog.Builder(this)
|
||
.setTitle("输入配对码")
|
||
.setMessage("填电脑上显示的 6 位配对码\\n"
|
||
+ "(中转地址:" + relayUrl() + ")")
|
||
.setView(input)
|
||
.setPositiveButton("连接", new DialogInterface.OnClickListener() {
|
||
@Override
|
||
public void onClick(DialogInterface dialog, int which) {
|
||
connectByCode(input.getText().toString().trim());
|
||
}
|
||
})
|
||
.setNegativeButton("取消", null)
|
||
.show();
|
||
}
|
||
|
||
/** 拿着配对码经中转连过去。 */
|
||
private void connectByCode(String code) {
|
||
if (code == null || code.length() != 6 || !code.matches("\\\\d{6}")) {
|
||
setStatus("配对码是 6 位数字", C_WARN);
|
||
toast("配对码要 6 位数字");
|
||
return;
|
||
}
|
||
String relay = relayUrl();
|
||
if (relay.isEmpty()) {
|
||
setStatus("还没设置中转地址", C_WARN);
|
||
toast("请先在「中转设置」里填服务器地址");
|
||
promptRelayUrl();
|
||
return;
|
||
}
|
||
appendLog("用配对码连接:" + code);
|
||
// host 传中转地址:经中转时真正连的是中转,host 只用于区分已配对的设备
|
||
connect(relay, 0, code, null, "code:" + code);
|
||
}
|
||
|
||
private void quickConnect(String host, int port, String token, String key) {
|
||
// 不再往输入框里写东西(那两个框已经删了)——
|
||
// 直接连。host/port 对中转路径没有意义,
|
||
// 但 key 仍然用来区分"哪台已配对的电脑"。
|
||
connect(host, port, null, token, key);
|
||
}'''
|
||
|
||
|
||
def main() -> int:
|
||
text = MAIN.read_text(encoding="utf-8")
|
||
ok = True
|
||
|
||
# 1. 替换 onConnectClicked + quickConnect
|
||
if ON_CONNECT_OLD in text:
|
||
text = text.replace(ON_CONNECT_OLD, ON_CONNECT_NEW, 1)
|
||
print(" 连接入口重写(配对码 -> 中转)")
|
||
else:
|
||
print(" [失败] 找不到 onConnectClicked/quickConnect 段")
|
||
ok = False
|
||
|
||
# 2. 删掉局域网广播自检
|
||
text, done = drop_method(text, r"private void requestPcSelfCheck\(\)")
|
||
print(f" {'删掉' if done else '[跳过]'} requestPcSelfCheck()")
|
||
|
||
# 3. 删掉 codeInput 相关(老的手输配对码框,已被弹窗取代)
|
||
text, done = drop_method(text, r"private EditText codeInput")
|
||
|
||
MAIN.write_text(text, encoding="utf-8", newline="\n")
|
||
|
||
# 4. 残余检查
|
||
print()
|
||
print(" 残余引用:")
|
||
for name in ("openDiagPanel", "toggleManual", "btnManual", "foundBox",
|
||
"discovering", "requestSelfCheck", "Discovery", "manualBox",
|
||
"hostInput", "portInput", "requestPcSelfCheck"):
|
||
count = text.count(name)
|
||
if count:
|
||
print(f" [{name}] 还有 {count} 处")
|
||
ok = False
|
||
if ok:
|
||
print(" 没有残余 ✓")
|
||
return 0 if ok else 1
|
||
|
||
|
||
if __name__ == "__main__":
|
||
sys.exit(main())
|