diff --git a/.reuse/dep5 b/.reuse/dep5
index 9d71481..ae6fcec 100644
--- a/.reuse/dep5
+++ b/.reuse/dep5
@@ -24,7 +24,7 @@ Copyright: None
License: CC0-1.0
# DBus API
-Files: api/dbus/*.xml
+Files: api/dbus/*.xml apps/app-update-notifier/api/dbus/*.xml
Copyright: None
License: CC0-1.0
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b9ff3a4..ab45412 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,6 +21,7 @@ find_package(Qt6 REQUIRED COMPONENTS Core DBus Concurrent)
find_package(Threads REQUIRED)
set(APP_LAUNCH_HELPER_BIN app-launch-helper)
+set(APP_UPDATE_NOTIFIER_BIN app-update-notifier)
if(DDE_AM_USE_DEBUG_DBUS_NAME)
add_compile_definitions(-DDDE_AM_USE_DEBUG_DBUS_NAME)
diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index 4f1944a..965b537 100644
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
@@ -1,3 +1,3 @@
add_subdirectory(dde-application-manager)
add_subdirectory(app-launch-helper)
-
+add_subdirectory(app-update-notifier)
diff --git a/apps/app-update-notifier/CMakeLists.txt b/apps/app-update-notifier/CMakeLists.txt
new file mode 100644
index 0000000..5007a65
--- /dev/null
+++ b/apps/app-update-notifier/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_subdirectory(src)
+add_subdirectory(misc)
diff --git a/apps/app-update-notifier/api/dbus/org.desktopspec.ApplicationUpdateNotifier1.xml b/apps/app-update-notifier/api/dbus/org.desktopspec.ApplicationUpdateNotifier1.xml
new file mode 100644
index 0000000..2ea0b0d
--- /dev/null
+++ b/apps/app-update-notifier/api/dbus/org.desktopspec.ApplicationUpdateNotifier1.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/apps/app-update-notifier/misc/CMakeLists.txt b/apps/app-update-notifier/misc/CMakeLists.txt
new file mode 100644
index 0000000..6157718
--- /dev/null
+++ b/apps/app-update-notifier/misc/CMakeLists.txt
@@ -0,0 +1,32 @@
+# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
+#
+# SPDX-License-Identifier: LGPL-3.0-or-later
+include(GNUInstallDirs)
+
+configure_file(
+ systemd/system/org.desktopspec.ApplicationUpdateNotifier1.service.in
+ systemd/system/org.desktopspec.ApplicationUpdateNotifier1.service
+ @ONLY
+)
+
+set(SYSTEMD_SYSTEM_FILE
+ ${CMAKE_CURRENT_BINARY_DIR}/systemd/system/org.desktopspec.ApplicationUpdateNotifier1.service
+)
+
+install(FILES ${SYSTEMD_SYSTEM_FILE} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/systemd/system/)
+
+configure_file(
+ dbus/org.desktopspec.ApplicationUpdateNotifier1.service.in
+ dbus/org.desktopspec.ApplicationUpdateNotifier1.service
+ @ONLY
+)
+
+set(DBUS_APPLICATION_UPDATE_NOTIFIER_SERVICE_FILE
+ ${CMAKE_CURRENT_BINARY_DIR}/dbus/org.desktopspec.ApplicationUpdateNotifier1.service
+)
+
+install(FILES ${DBUS_APPLICATION_UPDATE_NOTIFIER_SERVICE_FILE}
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/dbus-1/service)
+
+install(FILES ${CMAKE_CURRENT_LIST_DIR}/dbus/org.desktopspec.ApplicationUpdateNotifier1.conf
+ DESTINATION /usr/share/dbus-1/system.d)
diff --git a/apps/app-update-notifier/misc/dbus/org.desktopspec.ApplicationUpdateNotifier1.conf b/apps/app-update-notifier/misc/dbus/org.desktopspec.ApplicationUpdateNotifier1.conf
new file mode 100644
index 0000000..bca71dd
--- /dev/null
+++ b/apps/app-update-notifier/misc/dbus/org.desktopspec.ApplicationUpdateNotifier1.conf
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/app-update-notifier/misc/dbus/org.desktopspec.ApplicationUpdateNotifier1.service.in b/apps/app-update-notifier/misc/dbus/org.desktopspec.ApplicationUpdateNotifier1.service.in
new file mode 100644
index 0000000..15d4e2b
--- /dev/null
+++ b/apps/app-update-notifier/misc/dbus/org.desktopspec.ApplicationUpdateNotifier1.service.in
@@ -0,0 +1,9 @@
+# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
+#
+# SPDX-License-Identifier: LGPL-3.0-or-later
+
+[D-BUS Service]
+Name=org.desktopspec.ApplicationUpdateNotifier1
+Exec=@CMAKE_INSTALL_FULL_BINDIR@/app-update-notifier
+User=root
+SystemdService=org.desktopspec.ApplicationUpdateNotifier1
diff --git a/apps/app-update-notifier/misc/systemd/system/org.desktopspec.ApplicationUpdateNotifier1.service.in b/apps/app-update-notifier/misc/systemd/system/org.desktopspec.ApplicationUpdateNotifier1.service.in
new file mode 100644
index 0000000..5a44cc8
--- /dev/null
+++ b/apps/app-update-notifier/misc/systemd/system/org.desktopspec.ApplicationUpdateNotifier1.service.in
@@ -0,0 +1,13 @@
+# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
+#
+# SPDX-License-Identifier: LGPL-3.0-or-later
+
+[Unit]
+Description=Notify by signal when Application changed by package manager.
+
+[Service]
+Type=dbus
+User=root
+Group=root
+BusName=org.desktopspec.ApplicationUpdateNotifier1
+ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/app-update-notifier
diff --git a/apps/app-update-notifier/src/CMakeLists.txt b/apps/app-update-notifier/src/CMakeLists.txt
new file mode 100644
index 0000000..969abce
--- /dev/null
+++ b/apps/app-update-notifier/src/CMakeLists.txt
@@ -0,0 +1,14 @@
+add_subdirectory(dbus)
+
+add_executable(${APP_UPDATE_NOTIFIER_BIN} main.cpp)
+
+target_link_libraries(${APP_UPDATE_NOTIFIER_BIN} PRIVATE
+ app_update_notifier_static
+)
+
+target_include_directories(${APP_UPDATE_NOTIFIER_BIN} PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}/src
+)
+
+include(GNUInstallDirs)
+install(TARGETS ${APP_UPDATE_NOTIFIER_BIN} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/deepin/application-manager/)
diff --git a/apps/app-update-notifier/src/dbus/CMakeLists.txt b/apps/app-update-notifier/src/dbus/CMakeLists.txt
new file mode 100644
index 0000000..4b663e8
--- /dev/null
+++ b/apps/app-update-notifier/src/dbus/CMakeLists.txt
@@ -0,0 +1,20 @@
+file(GLOB_RECURSE app_update_notifier_static_SOURCE
+ ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/*.h
+)
+
+qt_add_dbus_adaptor(app_update_notifier_static_SOURCE ${CMAKE_CURRENT_LIST_DIR}/../../api/dbus/org.desktopspec.ApplicationUpdateNotifier1.xml dbus/applicationupdatenotifier1service.h ApplicationUpdateNotifier1Service)
+
+add_library(app_update_notifier_static STATIC ${app_update_notifier_static_SOURCE})
+
+target_link_libraries(
+ app_update_notifier_static PUBLIC
+ Qt${QT_VERSION_MAJOR}::Core
+ Qt${QT_VERSION_MAJOR}::DBus
+)
+
+target_include_directories(
+ app_update_notifier_static PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}/..
+ ${CMAKE_CURRENT_BINARY_DIR}/..
+)
diff --git a/apps/app-update-notifier/src/dbus/applicationupdatenotifier1service.cpp b/apps/app-update-notifier/src/dbus/applicationupdatenotifier1service.cpp
new file mode 100644
index 0000000..e7f878b
--- /dev/null
+++ b/apps/app-update-notifier/src/dbus/applicationupdatenotifier1service.cpp
@@ -0,0 +1,18 @@
+// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
+//
+// SPDX-License-Identifier: LGPL-3.0-or-later
+
+#include "dbus/applicationupdatenotifier1adaptor.h"
+
+ApplicationUpdateNotifier1Service::ApplicationUpdateNotifier1Service()
+{
+ new ApplicationUpdateNotifier1Adaptor{this};
+ auto conn = QDBusConnection::systemBus();
+ if (!conn.registerService(NotifierServiceName)) {
+ qFatal("%s", conn.lastError().message().toLocal8Bit().constData());
+ }
+
+ if (!conn.registerObject(NotifierObjectPath, NotifierInterfaceName, this, QDBusConnection::ExportAdaptors)) {
+ qFatal("%s", conn.lastError().message().toLocal8Bit().constData());
+ }
+}
diff --git a/apps/app-update-notifier/src/dbus/applicationupdatenotifier1service.h b/apps/app-update-notifier/src/dbus/applicationupdatenotifier1service.h
new file mode 100644
index 0000000..021102c
--- /dev/null
+++ b/apps/app-update-notifier/src/dbus/applicationupdatenotifier1service.h
@@ -0,0 +1,24 @@
+// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
+//
+// SPDX-License-Identifier: LGPL-3.0-or-later
+
+#ifndef APPLICATIONUPDATENOTIFIER1SERVICE_H
+#define APPLICATIONUPDATENOTIFIER1SERVICE_H
+
+#include
+
+constexpr auto NotifierServiceName = "org.desktopspec.ApplicationUpdateNotifier1";
+constexpr auto NotifierObjectPath = "/org/desktopspec/ApplicationUpdateNotifier1";
+constexpr auto NotifierInterfaceName = "org.desktopspec.ApplicationUpdateNotifier1";
+
+class ApplicationUpdateNotifier1Service : public QObject
+{
+ Q_OBJECT
+public:
+ ApplicationUpdateNotifier1Service();
+ ~ApplicationUpdateNotifier1Service() override = default;
+Q_SIGNALS:
+ void ApplicationUpdated();
+};
+
+#endif
diff --git a/apps/app-update-notifier/src/main.cpp b/apps/app-update-notifier/src/main.cpp
new file mode 100644
index 0000000..564ba8d
--- /dev/null
+++ b/apps/app-update-notifier/src/main.cpp
@@ -0,0 +1,12 @@
+// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
+//
+// SPDX-License-Identifier: LGPL-3.0-or-later
+
+#include "dbus/applicationupdatenotifier1service.h"
+
+int main()
+{
+ ApplicationUpdateNotifier1Service service;
+ emit service.ApplicationUpdated();
+ return 0;
+}