Hackintosh

Sonoma 14.3.1

1
aHR0cHMlM0EvL2Nsb3VkLjE4OS5jbi90LzJVUjdWakVaUlIzbSV1RkYwODh4aXAldUZGMDk=

Big Sur/Monterey/Ventura

1
aHR0cHMlM0EvL2Nsb3VkLjE4OS5jbi93ZWIvc2hhcmUlM0Zjb2RlJTNEdXFhWXJhanU2Uk52JXVGRjA4dTlkYiV1RkYwOQ==

LineageOS for Redmi K20 Pro

Wiki

XDA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Install dependencies on arch:
`yay lineageos-devel`

Allow 300 gigabytes of disk space

// create directory
LINEAGE_BUILD_ROOT=~/android/lineage
LINEAGE_BUILD_CCACHE=~/android/ccache
mkdir -p ~/android/bin
mkdir -p $LINEAGE_BUILD_ROOT
mkdir -p $LINEAGE_BUILD_CCACHE
mkdir -p $LINEAGE_BUILD_CCACHE/tmp

// setup tools
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/android/bin/repo
chmod a+x ~/android/bin/repo
PATH="~/android/bin:$PATH"

git lfs install

// configure cache
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
ccache -M 50G
ccache -o compression=true
export MXE_CCACHE_DIR=$LINEAGE_BUILD_CCACHE/tmp
export CCACHE_DIR=$LINEAGE_BUILD_CCACHE

// pull source
cd $LINEAGE_BUILD_ROOT
repo init -u https://github.com/LineageOS/android.git -b lineage-20.0 --git-lfs
repo sync

mkdir -p kernel/xiaomi/sm8150
git clone git@github.com:xiaomi-sm8150-devs/android_kernel_xiaomi_sm8150-legacy.git kernel/xiaomi/sm8150

// prepare build
source build/envsetup.sh
breakfast raphael

// download vendor (need phone connected in debug mode)
cd $LINEAGE_BUILD_ROOT/device/xiaomi/raphael
./extract-files.sh
cd $LINEAGE_BUILD_ROOT

// build
croot
brunch raphael

==> ls out/target/product/raphael/ -lah

If error on pull source:
rm -rf external/chromium-webview/prebuilt/*
rm -rf .repo/projects/external/chromium-webview/prebuilt/*.git
rm -rf .repo/project-objects/LineageOS/android_external_chromium-webview_prebuilt_*.git
repo sync


update and rebuild:
repo sync
cd kernel/xiaomi/sm8150
git pull
cd $LINEAGE_BUILD_ROOT
source build/envsetup.sh
breakfast raphael
croot
brunch raphael

github note

以node项目为例: https://github.com/nodejs/node

下载patch(pull request)

直接在url后面加.patch

1
https://patch-diff.githubusercontent.com/raw/nodejs/node/pull/52413.patch

star

1
https://github.com/nodejs/node/stargazers

fork

1
https://github.com/nodejs/node/forks

github使用在线vscode

网页上直接按”点号”

1
.

Ubuntu无法识别android设备

用命令lsb查看当前android设备usb属性

1
2
3
4
5
6
7
8
9
$ lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 078: ID 138a:0011 Validity Sensors, Inc. VFS5011 Fingerprint Reader
Bus 002 Device 003: ID 8087:07dc Intel Corp.
Bus 002 Device 002: ID 5986:0652 Acer, Inc
Bus 002 Device 081: ID 22b8:2e81 Motorola PCS
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

修改/etc/udev/rules.d/51-android.rules

1
2
$ sudo vi /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e81", MODE="0666", GROUP="plugdev"

重新加载udev rule

1
sudo udevadm control --reload-rules

查看设备

1
adb devices

升级android app sdk

安装apk时出现:“此应用专为旧版Android打造,因此可能无法正常运行”

弹窗代码:AppWarnings.java

1
2
3
4
5
public void showDeprecatedTargetDialogIfNeeded(ActivityRecord r) {
if (r.appInfo.targetSdkVersion < Build.VERSION.MIN_SUPPORTED_TARGET_SDK_INT) {
mUiHandler.showDeprecatedTargetDialog(r);
}
}

Build.VERSION.MIN_SUPPORTED_TARGET_SDK_INT值:

1
2
public static final int MIN_SUPPORTED_TARGET_SDK_INT = SystemProperties.getInt(
"ro.build.version.min_supported_target_sdk", 0);

adb shell获取属性值:

1
getprop ro.build.version.min_supported_target_sdk

修改build.gradle: buildToolsVersion

Ubuntu升级nodejs

查看当前nodejs版本

1
node -v

安装node版本管理工具

1
sudo npm install n -g

查看node新的稳定版本

1
sudo n stable

更新当前node版本

1
hash -r