diff --git a/src/main.cpp b/src/main.cpp
index aab3c76..6f8b915 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -10,6 +10,8 @@
 DCORE_USE_NAMESPACE
 DWIDGET_USE_NAMESPACE
 
+#define UOSCheckFile "/var/lib/deepin/developer-mode/enabled"
+
 int main(int argc, char *argv[])
 {
     // Get build time
@@ -67,6 +69,27 @@ int main(int argc, char *argv[])
         qputenv("QT_QPA_PLATFORM", "dxcb");
     }
 
+    // Check UOS developer mode.
+    QFile UOSDevelopFile(UOSCheckFile);
+    if (UOSDevelopFile.exists() && isDeepinOS)
+    {
+        config.setValue("UOS/isUOS", true);
+        QTextStream UOStextStream(&UOSDevelopFile);
+        QString lineData = UOStextStream.readLine();
+        bool devmode = lineData.toInt();
+        qDebug() << "UOS Developer Mode Status:" << devmode;
+        config.setValue("UOS/EnableDeveloperMode", devmode);
+    }
+    else
+    {
+        if (config.contains("UOS/isUOS"))
+        {
+            config.remove("UOS/isUOS");
+            config.remove("UOS/EnableDeveloperMode");
+        }
+    }
+    config.sync(); // 写入更改至 config.ini,并同步最新内容
+
     // 龙芯机器配置,使得 DApplication 能正确加载 QTWEBENGINE
     qputenv("DTK_FORCE_RASTER_WIDGETS", "FALSE");
 //    qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--disable-features=UseModernMediaControls");
diff --git a/src/mainwindow-dtk.cpp b/src/mainwindow-dtk.cpp
index 5db6020..cfed349 100644
--- a/src/mainwindow-dtk.cpp
+++ b/src/mainwindow-dtk.cpp
@@ -322,15 +322,36 @@ void MainWindow::updateUi(int now)
 
 void MainWindow::on_pushButton_14_clicked()
 {
-    QFile upgradeStatus("/tmp/spark-store/upgradeStatus.txt");
-    if (!upgradeStatus.exists())
+    // Check UOS
+    QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
+    if (config.contains("UOS/EnableDeveloperMode") && !config.value("UOS/EnableDeveloperMode").toBool())
     {
+        qDebug() << "UOS Developer Mode has not been enabled!";
         QtConcurrent::run([=]
                           {
             auto upgradeP = new QProcess();
+            upgradeP->startDetached("zenity", QStringList() << "--info"
+                                                            << "--text"
+                                                            << "UOS开发者模式未开启,相关功能被禁用"
+                                                            << "--title"
+                                                            << "功能禁用提示"
+                                                            );
+            upgradeP->waitForStarted();
+            upgradeP->waitForFinished(30);
+            upgradeP->deleteLater(); });
+    }
+    else
+    {
+        QFile upgradeStatus("/tmp/spark-store/upgradeStatus.txt");
+        if (!upgradeStatus.exists())
+        {
+            QtConcurrent::run([=]
+                              {
+            auto upgradeP = new QProcess();
             upgradeP->startDetached("/opt/durapps/spark-store/bin/update-upgrade/ss-do-upgrade.sh", QStringList());
             upgradeP->waitForStarted();
             upgradeP->waitForFinished(-1);
             upgradeP->deleteLater(); });
-    }
+        }
+    } 
 }
diff --git a/src/pages/appintopage.cpp b/src/pages/appintopage.cpp
index c71ca96..507f2b5 100644
--- a/src/pages/appintopage.cpp
+++ b/src/pages/appintopage.cpp
@@ -89,81 +89,93 @@ void AppIntoPage::openUrl(QUrl url)
         ui->d_contributor->setText(info["Contributor"].toString());
         ui->label_2->setText(info["More"].toString());
 
-        QProcess isInstall;
-        bool isInstalled;
-        bool isUpdated;
-        QString packagename = info["Pkgname"].toString();
-        isInstall.start("dpkg", QStringList() << "-s" << info["Pkgname"].toString());
-        qDebug() << info["Pkgname"].toString();
-        isInstall.waitForFinished(180*1000); // 默认超时 3 分钟
-        int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
-        if(error == 0)
+
+        // Check UOS
+        QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
+        if (config.contains("UOS/EnableDeveloperMode") && !config.value("UOS/EnableDeveloperMode").toBool()){
+            qDebug() << "UOS Developer Mode has not been enabled!";
+            ui->downloadButton->setText(tr("Developer Mode Disabled"));
+            ui->downloadButton->setEnabled(false);
+            ui->downloadButton->show();
+        }
+        else // 非 UOS 或 UOS 已经开启开发者模式
         {
-                    isInstalled = true;
+            QProcess isInstall;
+            bool isInstalled;
+            bool isUpdated;
+            QString packagename = info["Pkgname"].toString();
+            isInstall.start("dpkg", QStringList() << "-s" << info["Pkgname"].toString());
+            qDebug() << info["Pkgname"].toString();
+            isInstall.waitForFinished(180 * 1000); // 默认超时 3 分钟
+            int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
+            if (error == 0)
+            {
+                isInstalled = true;
 
-                    QProcess isUpdate;
-                    isUpdate.start("dpkg-query", QStringList() << "--showformat='${Version}'"
-                                                               << "--show" << info["Pkgname"].toString());
-                    isUpdate.waitForFinished(180*1000); // 默认超时 3 分钟
-                    QString localVersion = isUpdate.readAllStandardOutput();
-                    localVersion.replace("'", "");
+                QProcess isUpdate;
+                isUpdate.start("dpkg-query", QStringList() << "--showformat='${Version}'"
+                                                           << "--show" << info["Pkgname"].toString());
+                isUpdate.waitForFinished(180 * 1000); // 默认超时 3 分钟
+                QString localVersion = isUpdate.readAllStandardOutput();
+                localVersion.replace("'", "");
 
-                    isUpdate.start("dpkg", QStringList() << "--compare-versions" << localVersion << "ge" << info["Version"].toString());
-                    isUpdate.waitForFinished(180*1000); // 默认超时 3 分钟
-                    if(!isUpdate.exitCode())
-                    {
-                        isUpdated = true;
-                    }
-                    else
-                    {
-                        isUpdated = false;
-                    }
+                isUpdate.start("dpkg", QStringList() << "--compare-versions" << localVersion << "ge" << info["Version"].toString());
+                isUpdate.waitForFinished(180 * 1000); // 默认超时 3 分钟
+                if (!isUpdate.exitCode())
+                {
+                    isUpdated = true;
                 }
                 else
                 {
-                    isInstalled = false;
                     isUpdated = false;
                 }
-
-        if(isInstalled)
-        {
-            if(isUpdated)
-            {
-                ui->downloadButton->setText(tr("Reinstall"));
-                ui->downloadButton->setEnabled(true);
-                ui->downloadButton->show();
-                ui->pushButton_3->show();
             }
             else
             {
-                ui->downloadButton->setText(tr("Upgrade"));
+                isInstalled = false;
+                isUpdated = false;
+            }
+
+            if (isInstalled)
+            {
+                if (isUpdated)
+                {
+                    ui->downloadButton->setText(tr("Reinstall"));
+                    ui->downloadButton->setEnabled(true);
+                    ui->downloadButton->show();
+                    ui->pushButton_3->show();
+                }
+                else
+                {
+                    ui->downloadButton->setText(tr("Upgrade"));
+                    ui->downloadButton->setEnabled(true);
+                    ui->downloadButton->show();
+                    ui->pushButton_3->show();
+                }
+            }
+            else
+            {
+                ui->downloadButton->setText(tr("Download"));
+                isDownloading(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString());
                 ui->downloadButton->setEnabled(true);
                 ui->downloadButton->show();
-                ui->pushButton_3->show();
             }
         }
-        else
-        {
-            ui->downloadButton->setText(tr("Download"));
-            isDownloading(SparkAPI::getServerUrl()+"store"+spk.path()+"/"+info["Filename"].toString());
-            ui->downloadButton->setEnabled(true);
-            ui->downloadButton->show();
-        }
 
         QStringList taglist = info["Tags"].toString().split(";");
         QString tmp=info["img_urls"].toString();
-        qDebug()<<tmp;
-        if(tmp.left(2)=="[\"")
+        qDebug() << tmp;
+        if (tmp.left(2) == "[\"")
         {
-            tmp.remove(0,2);
+            tmp.remove(0, 2);
         }
-        if(tmp.right(2)=="\"]")
+        if (tmp.right(2) == "\"]")
         {
-            tmp.remove(tmp.size()-2,tmp.size());
+            tmp.remove(tmp.size() - 2, tmp.size());
         }
         QStringList imglist = tmp.split("\",\"");
-        qDebug()<<imglist;
-        for(int i=0;i < imglist.size();i++)
+        qDebug() << imglist;
+        for (int i = 0; i < imglist.size(); i++)
         {
             QNetworkAccessManager *naManager;
             QNetworkRequest request;
diff --git a/translations/spark-store_en.ts b/translations/spark-store_en.ts
index ba09e43..f2d6bc1 100644
--- a/translations/spark-store_en.ts
+++ b/translations/spark-store_en.ts
@@ -10,8 +10,8 @@
     </message>
     <message>
         <location filename="../src/pages/appintopage.ui" line="244"/>
-        <location filename="../src/pages/appintopage.cpp" line="147"/>
-        <location filename="../src/pages/appintopage.cpp" line="212"/>
+        <location filename="../src/pages/appintopage.cpp" line="158"/>
+        <location filename="../src/pages/appintopage.cpp" line="224"/>
         <source>Download</source>
         <translation type="unfinished"></translation>
     </message>
@@ -179,42 +179,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="132"/>
-        <location filename="../src/pages/appintopage.cpp" line="228"/>
-        <location filename="../src/pages/appintopage.cpp" line="325"/>
+        <location filename="../src/pages/appintopage.cpp" line="97"/>
+        <source>Developer Mode Disabled</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/pages/appintopage.cpp" line="143"/>
+        <location filename="../src/pages/appintopage.cpp" line="240"/>
+        <location filename="../src/pages/appintopage.cpp" line="337"/>
         <source>Reinstall</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="139"/>
+        <location filename="../src/pages/appintopage.cpp" line="150"/>
         <source>Upgrade</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="217"/>
-        <location filename="../src/pages/appintopage.cpp" line="313"/>
-        <location filename="../src/pages/appintopage.cpp" line="354"/>
+        <location filename="../src/pages/appintopage.cpp" line="229"/>
+        <location filename="../src/pages/appintopage.cpp" line="325"/>
+        <location filename="../src/pages/appintopage.cpp" line="366"/>
         <source>Install</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="222"/>
+        <location filename="../src/pages/appintopage.cpp" line="234"/>
         <source>Installing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="358"/>
-        <location filename="../src/pages/appintopage.cpp" line="369"/>
+        <location filename="../src/pages/appintopage.cpp" line="370"/>
+        <location filename="../src/pages/appintopage.cpp" line="381"/>
         <source>Spark Store</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="358"/>
+        <location filename="../src/pages/appintopage.cpp" line="370"/>
         <source>Uninstall succeeded</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="369"/>
+        <location filename="../src/pages/appintopage.cpp" line="381"/>
         <source>The URL has been copied to the clipboard</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/translations/spark-store_fr.ts b/translations/spark-store_fr.ts
index c5b9d98..ede392e 100644
--- a/translations/spark-store_fr.ts
+++ b/translations/spark-store_fr.ts
@@ -10,8 +10,8 @@
     </message>
     <message>
         <location filename="../src/pages/appintopage.ui" line="244"/>
-        <location filename="../src/pages/appintopage.cpp" line="147"/>
-        <location filename="../src/pages/appintopage.cpp" line="212"/>
+        <location filename="../src/pages/appintopage.cpp" line="158"/>
+        <location filename="../src/pages/appintopage.cpp" line="224"/>
         <source>Download</source>
         <translation type="unfinished"></translation>
     </message>
@@ -179,42 +179,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="132"/>
-        <location filename="../src/pages/appintopage.cpp" line="228"/>
-        <location filename="../src/pages/appintopage.cpp" line="325"/>
+        <location filename="../src/pages/appintopage.cpp" line="97"/>
+        <source>Developer Mode Disabled</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/pages/appintopage.cpp" line="143"/>
+        <location filename="../src/pages/appintopage.cpp" line="240"/>
+        <location filename="../src/pages/appintopage.cpp" line="337"/>
         <source>Reinstall</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="139"/>
+        <location filename="../src/pages/appintopage.cpp" line="150"/>
         <source>Upgrade</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="217"/>
-        <location filename="../src/pages/appintopage.cpp" line="313"/>
-        <location filename="../src/pages/appintopage.cpp" line="354"/>
+        <location filename="../src/pages/appintopage.cpp" line="229"/>
+        <location filename="../src/pages/appintopage.cpp" line="325"/>
+        <location filename="../src/pages/appintopage.cpp" line="366"/>
         <source>Install</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="222"/>
+        <location filename="../src/pages/appintopage.cpp" line="234"/>
         <source>Installing</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="358"/>
-        <location filename="../src/pages/appintopage.cpp" line="369"/>
+        <location filename="../src/pages/appintopage.cpp" line="370"/>
+        <location filename="../src/pages/appintopage.cpp" line="381"/>
         <source>Spark Store</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="358"/>
+        <location filename="../src/pages/appintopage.cpp" line="370"/>
         <source>Uninstall succeeded</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="369"/>
+        <location filename="../src/pages/appintopage.cpp" line="381"/>
         <source>The URL has been copied to the clipboard</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/translations/spark-store_zh_CN.ts b/translations/spark-store_zh_CN.ts
index c8753f1..4977927 100644
--- a/translations/spark-store_zh_CN.ts
+++ b/translations/spark-store_zh_CN.ts
@@ -10,8 +10,8 @@
     </message>
     <message>
         <location filename="../src/pages/appintopage.ui" line="244"/>
-        <location filename="../src/pages/appintopage.cpp" line="147"/>
-        <location filename="../src/pages/appintopage.cpp" line="212"/>
+        <location filename="../src/pages/appintopage.cpp" line="158"/>
+        <location filename="../src/pages/appintopage.cpp" line="224"/>
         <source>Download</source>
         <translation>下载</translation>
     </message>
@@ -179,42 +179,47 @@
         <translation>点击跳转</translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="132"/>
-        <location filename="../src/pages/appintopage.cpp" line="228"/>
-        <location filename="../src/pages/appintopage.cpp" line="325"/>
+        <location filename="../src/pages/appintopage.cpp" line="97"/>
+        <source>Developer Mode Disabled</source>
+        <translation>开发者模式未开启</translation>
+    </message>
+    <message>
+        <location filename="../src/pages/appintopage.cpp" line="143"/>
+        <location filename="../src/pages/appintopage.cpp" line="240"/>
+        <location filename="../src/pages/appintopage.cpp" line="337"/>
         <source>Reinstall</source>
         <translation>重新安装</translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="139"/>
+        <location filename="../src/pages/appintopage.cpp" line="150"/>
         <source>Upgrade</source>
         <translation>升级</translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="217"/>
-        <location filename="../src/pages/appintopage.cpp" line="313"/>
-        <location filename="../src/pages/appintopage.cpp" line="354"/>
+        <location filename="../src/pages/appintopage.cpp" line="229"/>
+        <location filename="../src/pages/appintopage.cpp" line="325"/>
+        <location filename="../src/pages/appintopage.cpp" line="366"/>
         <source>Install</source>
         <translation>安装</translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="222"/>
+        <location filename="../src/pages/appintopage.cpp" line="234"/>
         <source>Installing</source>
         <translation>正在安装</translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="358"/>
-        <location filename="../src/pages/appintopage.cpp" line="369"/>
+        <location filename="../src/pages/appintopage.cpp" line="370"/>
+        <location filename="../src/pages/appintopage.cpp" line="381"/>
         <source>Spark Store</source>
         <translation>星火应用商店</translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="358"/>
+        <location filename="../src/pages/appintopage.cpp" line="370"/>
         <source>Uninstall succeeded</source>
         <translation>卸载成功</translation>
     </message>
     <message>
-        <location filename="../src/pages/appintopage.cpp" line="369"/>
+        <location filename="../src/pages/appintopage.cpp" line="381"/>
         <source>The URL has been copied to the clipboard</source>
         <translation>链接已复制到剪贴板</translation>
     </message>
@@ -483,7 +488,7 @@
     <message>
         <location filename="../src/application.cpp" line="31"/>
         <source>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;An appstore powered by community&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;Spark developers&lt;/span&gt;</source>
-        <translation type="unfinished">&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;一款由社区提供的应用商店&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;星火计划开发者&lt;/span&gt;</translation>
+        <translation>&lt;span style=&apos; font-size:10pt;font-weight:60;&apos;&gt;一款由社区提供的应用商店&lt;/span&gt;&lt;br/&gt;&lt;a href=&apos;https://www.spark-app.store/&apos;&gt;https://www.spark-app.store&lt;/a&gt;&lt;br/&gt;&lt;span style=&apos; font-size:12pt;&apos;&gt;星火计划开发者&lt;/span&gt;</translation>
     </message>
     <message>
         <location filename="../src/application.cpp" line="92"/>