diff --git a/WineLib/run-more.sh b/WineLib/run-more.sh
index c67cea3..0c2d588 100755
--- a/WineLib/run-more.sh
+++ b/WineLib/run-more.sh
@@ -4,62 +4,19 @@ if [[ ! -d "$CURRENT_DIR/usr" ]]; then
     zenity --info --text=未安装运行库,无法运行 --no-wrap
     exit
 fi
-command=""
-if [[ -d "$CURRENT_DIR/usr/lib/i386-linux-gnu" ]]; then
-    command=" $command --ro-bind \"$CURRENT_DIR/usr/lib/i386-linux-gnu\" /usr/lib/i386-linux-gnu "
-    if [[ ! -d /usr/lib/i386-linux-gnu ]] && ; then
-        pkexec mkdir -p /usr/lib/i386-linux-gnu
-    fi
+if [[ ! -d "$CURRENT_DIR/usr/lib64" ]]; then
+    bwrap --dev-bind / / \
+        --ro-bind "$CURRENT_DIR/usr/lib" /lib \
+        --ro-bind "$CURRENT_DIR/usr" /usr \
+        --ro-bind /usr/share /usr/share \
+        --ro-bind /usr/bin /usr/bin \
+        --ro-bind /usr/sbin /usr/sbin \
+        -- "$@"
+    exit
 fi
-if [[ -d "$CURRENT_DIR/usr/lib/x86_64-linux-gnu" ]]; then
-    command=" $command --ro-bind \"$CURRENT_DIR/usr/lib/x86_64-linux-gnu\" /usr/lib/x86_64-linux-gnu "
-    if [[ ! -d /usr/lib/x86_64-linux-gnu/ ]]; then
-        pkexec mkdir -p /usr/lib/x86_64-linux-gnu/
-    fi
+if [[ ! -f /lib64 ]] && [[ ! -d /lib64 ]] && [[ ! -L /lib64 ]]; then
+    pkexec ln -s /usr/lib64 /lib64
 fi
-if [[ -d "$CURRENT_DIR/usr/lib/arm-linux-gnueabihf" ]]; then
-    command=" $command --ro-bind \"$CURRENT_DIR/usr/lib/arm-linux-gnueabihf\" /usr/lib/arm-linux-gnueabihf "
-    if [[ ! -d /usr/lib/arm-linux-gnueabihf/ ]]; then
-        pkexec mkdir -p /usr/lib/arm-linux-gnueabihf/
-    fi
-fi
-if [[ -d "$CURRENT_DIR/usr/lib/aarch64-linux-gnu" ]]; then
-    command=" $command --ro-bind \"$CURRENT_DIR/usr/lib/aarch64-linux-gnu\" /usr/lib/aarch64-linux-gnu "
-    if [[ ! -d /usr/lib/aarch64-linux-gnu/ ]]; then
-        pkexec mkdir -p /usr/lib/aarch64-linux-gnu/
-    fi
-fi
-if [[ -d "$CURRENT_DIR/usr/lib64" ]]; then
-    command=" $command --ro-bind \"$CURRENT_DIR/usr/lib64\" /lib64 "
-    if [[ ! -d /lib64 ]]; then
-        pkexec ln -s /usr/lib64 /lib64
-    fi
-fi
-if [[ -f "$CURRENT_DIR/usr/lib/ld-linux-aarch64.so.1" ]]; then
-    command=" $command --ro-bind \"$CURRENT_DIR/usr/lib/ld-linux-aarch64.so.1\" /usr/lib/ld-linux-aarch64.so.1 "
-    if [[ ! -f /usr/lib/ld-linux-aarch64.so.1 ]] && [[ ! -L /usr/lib/ld-linux-aarch64.so.1 ]]; then
-        pkexec bash /usr/lib/ld-linux-aarch64.so.1
-    fi
-fi
-if [[ -f "$CURRENT_DIR/usr/lib/ld-linux-armhf.so.3" ]]; then
-    command=" $command --ro-bind \"$CURRENT_DIR/usr/lib/ld-linux-armhf.so.3\" ld-linux-armhf.so.3 "
-    if [[ ! -f /usr/lib/ld-linux-armhf.so.3 ]]; then
-        pkexec touch /usr/lib/ld-linux-armhf.so.3
-    fi
-fi
-if [[ -f "$CURRENT_DIR/usr/lib/ld-linux.so.2" ]]; then
-    command=" $command --ro-bind \"$CURRENT_DIR/usr/lib/ld-linux.so.2\" ld-linux.so.2 "
-    if [[ ! -f /usr/lib/ld-linux.so.2 ]]; then
-        pkexec touch /usr/lib/ld-linux.so.2
-    fi
-fi
-if [[ -f "$CURRENT_DIR/usr/lib64/ld-linux-x86-64.so.2" ]]; then
-    command=" $command --ro-bind \"$CURRENT_DIR/usr/lib64/ld-linux-x86-64.so.2\" ld-linux-x86-64.so.2 "
-    if [[ ! -f /usr/lib64/ld-linux-x86-64.so.2 ]]; then
-        pkexec touch /usr/lib64/ld-linux-x86-64.so.2
-    fi
-fi
-
 bwrap --dev-bind / / \
     --ro-bind "$CURRENT_DIR/usr/lib" /lib \
     --ro-bind "$CURRENT_DIR/usr/lib64" /lib \
@@ -67,4 +24,4 @@ bwrap --dev-bind / / \
     --ro-bind /usr/share /usr/share \
     --ro-bind /usr/bin /usr/bin \
     --ro-bind /usr/sbin /usr/sbin \
-    -- "${@:2}"
+    -- "$@"
diff --git a/WineLib/run.sh b/WineLib/run.sh
index aa64548..4de1ebb 100755
--- a/WineLib/run.sh
+++ b/WineLib/run.sh
@@ -4,24 +4,81 @@ if [[ ! -d "$CURRENT_DIR/usr" ]]; then
     zenity --info --text=未安装运行库,无法运行 --no-wrap
     exit
 fi
+systemNeedCommand=""
+for libr in `ls /usr/lib`
+do
+    if [[ -f /usr/lib/$libr/libc.so.6 ]]; then
+        if [[ ! -f "$CURRENT_DIR/usr/lib/$libr/libc.so.6" ]]; then
+            echo $libr
+            systemNeedCommand="$systemNeedCommand --ro-bind /usr/lib/$libr/ /usr/lib/$libr/ "
+            mkdir -p "$CURRENT_DIR/usr/lib/$libr"
+        fi
+    fi
+done
+for libr in `ls /usr/lib/ld*.so*`
+do
+    if [[ -f $libr ]]; then
+        if [[ ! -f "$CURRENT_DIR/$libr" ]]; then
+            systemNeedCommand="$systemNeedCommand --ro-bind $libr $libr "        
+            touch "$CURRENT_DIR/$libr"
+        else
+            if [[ ! -s "$CURRENT_DIR/$libr" ]]; then
+                systemNeedCommand="$systemNeedCommand --ro-bind $libr $libr "        
+            fi
+        fi
+    fi
+done
+if [[ -L /usr/lib64 ]] && [[ ! -d "$CURRENT_DIR/usr/lib64" ]]; then
+    mkdir -p "$CURRENT_DIR/usr/lib64"
+fi
+for libr in `ls /usr/lib64/ld*.so*`
+do
+    if [[ -f $libr ]]; then
+        if [[ ! -f "$CURRENT_DIR/$libr" ]]; then
+            systemNeedCommand="$systemNeedCommand --ro-bind $libr $libr "        
+            touch "$CURRENT_DIR/$libr"
+        else
+            if [[ ! -s "$CURRENT_DIR/$libr" ]]; then
+                systemNeedCommand="$systemNeedCommand --ro-bind $libr $libr "        
+            fi
+        fi
+    fi
+done
+if [[ ! -d "$CURRENT_DIR/usr/lib/locale" ]]; then
+    systemNeedCommand="$systemNeedCommand --ro-bind /usr/lib/locale /usr/lib/locale "      
+fi
+echo $systemNeedCommand
 if [[ ! -d "$CURRENT_DIR/usr/lib64" ]]; then
     bwrap --dev-bind / / \
-        --ro-bind "$CURRENT_DIR/usr/lib" /lib \
-        --ro-bind "$CURRENT_DIR/usr" /usr \
+        --bind "$CURRENT_DIR/usr/lib" /lib \
+        --bind "$CURRENT_DIR/usr" /usr \
         --ro-bind /usr/share /usr/share \
         --ro-bind /usr/bin /usr/bin \
         --ro-bind /usr/sbin /usr/sbin \
+        $systemNeedCommand \
         -- "$@"
     exit
 fi
 if [[ ! -f /lib64 ]] && [[ ! -d /lib64 ]] && [[ ! -L /lib64 ]]; then
-    pkexec mkdir /lib64 -p
+    pkexec ln -s /usr/lib64 /lib64
+fi
+if [[ -L /lib64 ]] || [[ -d /lib64 ]] || [[ -f /lib64 ]];then
+    bwrap --dev-bind / / \
+        --bind "$CURRENT_DIR/usr/lib" /lib \
+        --bind "$CURRENT_DIR/usr/lib64" /lib \
+        --bind "$CURRENT_DIR/usr" /usr \
+        --ro-bind /usr/share /usr/share \
+        --ro-bind /usr/bin /usr/bin \
+        --ro-bind /usr/sbin /usr/sbin \
+        $systemNeedCommand \
+        -- "$@"
+    exit
 fi
 bwrap --dev-bind / / \
-    --ro-bind "$CURRENT_DIR/usr/lib" /lib \
-    --ro-bind "$CURRENT_DIR/usr/lib64" /lib \
-    --ro-bind "$CURRENT_DIR/usr" /usr \
+    --bind "$CURRENT_DIR/usr/lib" /lib \
+    --bind "$CURRENT_DIR/usr" /usr \
     --ro-bind /usr/share /usr/share \
     --ro-bind /usr/bin /usr/bin \
     --ro-bind /usr/sbin /usr/sbin \
+    $systemNeedCommand \
     -- "$@"
diff --git a/mainwindow.py b/mainwindow.py
index d67fa60..d76ce14 100755
--- a/mainwindow.py
+++ b/mainwindow.py
@@ -2421,7 +2421,7 @@ def CheckWine():
         try:
             canUseWineOld = canUseWine[:]
             for i in canUseWineOld:
-                if os.path.exists(f"{programPath}/WineLib/usr/lib/ld-linux-x86-64.so.2"):
+                if os.path.exists(f"{programPath}/WineLib/usr"):
                     wine[f"使用运行器的运行库运行 {i}"] = f"bash '{programPath}/WineLib/run.sh' {wine[i]}"
                     canUseWine.append(f"使用运行器的运行库运行 {i}")
                     untipsWine.append(f"使用运行器的运行库运行 {i}")
@@ -3058,12 +3058,30 @@ installLib.addAction(runnerlibinfo)
 installLib.addAction(statusRunnerLib)
 installLib.addAction(installRunnerLib)
 installLib.addAction(removeRunnerLib)
+diyRunnerLib = installLib.addMenu("定制运行库")
+diyRunnerLib.setDisabled(True)
 installRunnerLib.triggered.connect(lambda: threading.Thread(target=OpenTerminal, args=[f"bash '{programPath}/WineLib/install.sh'"]).start())
 removeRunnerLib.triggered.connect(lambda: threading.Thread(target=OpenTerminal, args=[f"bash '{programPath}/WineLib/remove.sh'"]).start())
-if os.path.exists(f"{programPath}/WineLib/usr/lib/ld-linux-x86-64.so.2"):
+if os.path.exists(f"{programPath}/WineLib/usr"):
     installRunnerLib.setDisabled(True)
     removeRunnerLib.setEnabled(True)
+    diyRunnerLib.setEnabled(True)
     statusRunnerLib.setText("当前状态:已安装")
+    libPathList = []
+    for libPath in [f"{programPath}/WineLib/usr/lib", f"{programPath}/WineLib/usr/lib64"]:
+        for i in os.listdir(libPath):
+            if not os.path.exists(f"{libPath}/{i}/libc.so.6"):
+                continue
+            if not os.path.isdir(f"{libPath}/{i}"):
+                try:
+                    if not os.path.getsize(f"{libPath}/{i}"):
+                        continue
+                except:
+                    continue
+                libPathList.append(f"{libPath}/{i}")
+            else:
+                libPathList.append(f"{libPath}/{i}/")
+    print(libPathList)
 if os.path.exists(f"{programPath}/InstallRuntime"):
     installLib.addSeparator()
     systemalllibinfo = QtWidgets.QAction("全局运行库(与其他运行库以及部分兼容层冲突)")