1*4882a593SmuzhiyunFrom 2bf12a6c7c52f88fd9ef4cd5652d1391a7b3f25c Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: "zain.wang" <wzz@rock-chips.com> 3*4882a593SmuzhiyunDate: Thu, 9 Aug 2018 10:22:20 +0800 4*4882a593SmuzhiyunSubject: [PATCH 1/3] Fix compile error 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunRemove some code about dbus and properties. 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunSigned-off-by: zain.wang <wzz@rock-chips.com> 9*4882a593Smuzhiyun--- 10*4882a593Smuzhiyun CMakeLists.txt | 3 +- 11*4882a593Smuzhiyun server/CMakeLists.txt | 1 - 12*4882a593Smuzhiyun server/server.cpp | 120 +----------------------------------------- 13*4882a593Smuzhiyun src/MtpServer.cpp | 10 ++-- 14*4882a593Smuzhiyun 4 files changed, 7 insertions(+), 127 deletions(-) 15*4882a593Smuzhiyun 16*4882a593Smuzhiyundiff --git a/CMakeLists.txt b/CMakeLists.txt 17*4882a593Smuzhiyunindex 46bff47..707b7f8 100644 18*4882a593Smuzhiyun--- a/CMakeLists.txt 19*4882a593Smuzhiyun+++ b/CMakeLists.txt 20*4882a593Smuzhiyun@@ -14,7 +14,7 @@ set(MTP_VERSION_MINOR 0) 21*4882a593Smuzhiyun set(MTP_VERSION_PATCH 0) 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun find_package(Boost REQUIRED COMPONENTS thread system filesystem unit_test_framework) 24*4882a593Smuzhiyun-pkg_check_modules(DBUSCPP REQUIRED dbus-cpp) 25*4882a593Smuzhiyun+pkg_check_modules(DBUSCPP REQUIRED dbus-c++-1) 26*4882a593Smuzhiyun pkg_check_modules(GLOG REQUIRED libglog) 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun set( 29*4882a593Smuzhiyun@@ -71,7 +71,6 @@ add_library( 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun target_link_libraries( 32*4882a593Smuzhiyun mtpserver 33*4882a593Smuzhiyun- android-properties 34*4882a593Smuzhiyun ${GLOG_LIBRARIES} 35*4882a593Smuzhiyun ${DBUSCPP_LIBRARIES} 36*4882a593Smuzhiyun ) 37*4882a593Smuzhiyundiff --git a/server/CMakeLists.txt b/server/CMakeLists.txt 38*4882a593Smuzhiyunindex 411ff46..9acb974 100644 39*4882a593Smuzhiyun--- a/server/CMakeLists.txt 40*4882a593Smuzhiyun+++ b/server/CMakeLists.txt 41*4882a593Smuzhiyun@@ -11,7 +11,6 @@ target_link_libraries( 42*4882a593Smuzhiyun mtp-server 43*4882a593Smuzhiyun mtpserver 44*4882a593Smuzhiyun usbhost 45*4882a593Smuzhiyun- android-properties 46*4882a593Smuzhiyun ${Boost_LIBRARIES} 47*4882a593Smuzhiyun ${Boost_thread_LIBRARIES} 48*4882a593Smuzhiyun ${Boost_system_LIBRARIES} 49*4882a593Smuzhiyundiff --git a/server/server.cpp b/server/server.cpp 50*4882a593Smuzhiyunindex 0a9a846..d08c13c 100644 51*4882a593Smuzhiyun--- a/server/server.cpp 52*4882a593Smuzhiyun+++ b/server/server.cpp 53*4882a593Smuzhiyun@@ -32,73 +32,10 @@ 54*4882a593Smuzhiyun #include <libintl.h> 55*4882a593Smuzhiyun #include <locale.h> 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun-#include <hybris/properties/properties.h> 58*4882a593Smuzhiyun #include <glog/logging.h> 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun-#include <core/dbus/bus.h> 61*4882a593Smuzhiyun-#include <core/dbus/object.h> 62*4882a593Smuzhiyun-#include <core/dbus/property.h> 63*4882a593Smuzhiyun-#include <core/dbus/service.h> 64*4882a593Smuzhiyun-#include <core/dbus/signal.h> 65*4882a593Smuzhiyun- 66*4882a593Smuzhiyun-#include <core/dbus/asio/executor.h> 67*4882a593Smuzhiyun-#include <core/dbus/types/stl/tuple.h> 68*4882a593Smuzhiyun-#include <core/dbus/types/stl/vector.h> 69*4882a593Smuzhiyun-#include <core/dbus/types/struct.h> 70*4882a593Smuzhiyun- 71*4882a593Smuzhiyun- 72*4882a593Smuzhiyun-namespace dbus = core::dbus; 73*4882a593Smuzhiyun using namespace android; 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun-namespace core 76*4882a593Smuzhiyun-{ 77*4882a593Smuzhiyun-dbus::Bus::Ptr the_session_bus() 78*4882a593Smuzhiyun-{ 79*4882a593Smuzhiyun- static dbus::Bus::Ptr session_bus = std::make_shared<dbus::Bus>(dbus::WellKnownBus::session); 80*4882a593Smuzhiyun- return session_bus; 81*4882a593Smuzhiyun-} 82*4882a593Smuzhiyun- 83*4882a593Smuzhiyun-struct UnityGreeter 84*4882a593Smuzhiyun-{ 85*4882a593Smuzhiyun- struct Properties 86*4882a593Smuzhiyun- { 87*4882a593Smuzhiyun- struct IsActive 88*4882a593Smuzhiyun- { 89*4882a593Smuzhiyun- inline static std::string name() 90*4882a593Smuzhiyun- { 91*4882a593Smuzhiyun- return "IsActive"; 92*4882a593Smuzhiyun- }; 93*4882a593Smuzhiyun- typedef UnityGreeter Interface; 94*4882a593Smuzhiyun- typedef bool ValueType; 95*4882a593Smuzhiyun- static const bool readable = true; 96*4882a593Smuzhiyun- static const bool writable = false; 97*4882a593Smuzhiyun- }; 98*4882a593Smuzhiyun- }; 99*4882a593Smuzhiyun-}; 100*4882a593Smuzhiyun-} 101*4882a593Smuzhiyun- 102*4882a593Smuzhiyun-namespace core 103*4882a593Smuzhiyun-{ 104*4882a593Smuzhiyun-namespace dbus 105*4882a593Smuzhiyun-{ 106*4882a593Smuzhiyun-namespace traits 107*4882a593Smuzhiyun-{ 108*4882a593Smuzhiyun-template<> 109*4882a593Smuzhiyun-struct Service<core::UnityGreeter> 110*4882a593Smuzhiyun-{ 111*4882a593Smuzhiyun- inline static const std::string& interface_name() 112*4882a593Smuzhiyun- { 113*4882a593Smuzhiyun- static const std::string s 114*4882a593Smuzhiyun- { 115*4882a593Smuzhiyun- "com.canonical.UnityGreeter" 116*4882a593Smuzhiyun- }; 117*4882a593Smuzhiyun- return s; 118*4882a593Smuzhiyun- } 119*4882a593Smuzhiyun-}; 120*4882a593Smuzhiyun-} 121*4882a593Smuzhiyun-} 122*4882a593Smuzhiyun-} 123*4882a593Smuzhiyun- 124*4882a593Smuzhiyun namespace 125*4882a593Smuzhiyun { 126*4882a593Smuzhiyun struct FileSystemConfig 127*4882a593Smuzhiyun@@ -114,7 +51,6 @@ class MtpDaemon 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun private: 130*4882a593Smuzhiyun struct passwd *userdata; 131*4882a593Smuzhiyun- dbus::Bus::Ptr bus; 132*4882a593Smuzhiyun boost::thread dbus_thread; 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun // Mtp stuff 135*4882a593Smuzhiyun@@ -124,8 +60,7 @@ private: 136*4882a593Smuzhiyun MtpDatabase* mtp_database; 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun // Security 139*4882a593Smuzhiyun- std::shared_ptr<core::dbus::Property<core::UnityGreeter::Properties::IsActive> > is_active; 140*4882a593Smuzhiyun- bool screen_locked = true; 141*4882a593Smuzhiyun+ bool screen_locked = false; 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun // inotify stuff 144*4882a593Smuzhiyun boost::thread notifier_thread; 145*4882a593Smuzhiyun@@ -242,17 +177,6 @@ private: 146*4882a593Smuzhiyun read_more_notify(); 147*4882a593Smuzhiyun } 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun- void drive_bus() 150*4882a593Smuzhiyun- { 151*4882a593Smuzhiyun- try { 152*4882a593Smuzhiyun- bus->run(); 153*4882a593Smuzhiyun- } 154*4882a593Smuzhiyun- catch (...) { 155*4882a593Smuzhiyun- PLOG(ERROR) << "There was an unexpected error in DBus; terminating."; 156*4882a593Smuzhiyun- server->stop(); 157*4882a593Smuzhiyun- } 158*4882a593Smuzhiyun- } 159*4882a593Smuzhiyun- 160*4882a593Smuzhiyun public: 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun MtpDaemon(int fd): 163*4882a593Smuzhiyun@@ -285,28 +209,14 @@ public: 164*4882a593Smuzhiyun userdata->pw_gid, 165*4882a593Smuzhiyun FileSystemConfig::file_perm, 166*4882a593Smuzhiyun FileSystemConfig::directory_perm); 167*4882a593Smuzhiyun- 168*4882a593Smuzhiyun- // security / screen locking 169*4882a593Smuzhiyun- bus = core::the_session_bus(); 170*4882a593Smuzhiyun- bus->install_executor(core::dbus::asio::make_executor(bus)); 171*4882a593Smuzhiyun- dbus_thread = boost::thread(&MtpDaemon::drive_bus, this); 172*4882a593Smuzhiyun- auto greeter_service = dbus::Service::use_service(bus, "com.canonical.UnityGreeter"); 173*4882a593Smuzhiyun- dbus::Object::Ptr greeter = greeter_service->object_for_path(dbus::types::ObjectPath("/")); 174*4882a593Smuzhiyun- 175*4882a593Smuzhiyun- is_active = greeter->get_property<core::UnityGreeter::Properties::IsActive>(); 176*4882a593Smuzhiyun } 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun void initStorage() 179*4882a593Smuzhiyun { 180*4882a593Smuzhiyun- char product_name[PROP_VALUE_MAX]; 181*4882a593Smuzhiyun- 182*4882a593Smuzhiyun- // Local storage 183*4882a593Smuzhiyun- property_get ("ro.product.model", product_name, "Ubuntu Touch device"); 184*4882a593Smuzhiyun- 185*4882a593Smuzhiyun home_storage = new MtpStorage( 186*4882a593Smuzhiyun MTP_STORAGE_FIXED_RAM, 187*4882a593Smuzhiyun userdata->pw_dir, 188*4882a593Smuzhiyun- product_name, 189*4882a593Smuzhiyun+ "MTP", 190*4882a593Smuzhiyun 1024 * 1024 * 100, /* 100 MB reserved space, to avoid filling the disk */ 191*4882a593Smuzhiyun false, 192*4882a593Smuzhiyun 0 /* Do not check sizes for internal storage */); 193*4882a593Smuzhiyun@@ -360,31 +270,6 @@ public: 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun void run() 196*4882a593Smuzhiyun { 197*4882a593Smuzhiyun- if (is_active->get()) { 198*4882a593Smuzhiyun- is_active->changed().connect([this](bool active) 199*4882a593Smuzhiyun- { 200*4882a593Smuzhiyun- if (!active) { 201*4882a593Smuzhiyun- screen_locked = active; 202*4882a593Smuzhiyun- VLOG(2) << "device was unlocked, adding storage"; 203*4882a593Smuzhiyun- if (home_storage && !home_storage_added) { 204*4882a593Smuzhiyun- server->addStorage(home_storage); 205*4882a593Smuzhiyun- home_storage_added = true; 206*4882a593Smuzhiyun- } 207*4882a593Smuzhiyun- BOOST_FOREACH(std::string name, removables | boost::adaptors::map_keys) { 208*4882a593Smuzhiyun- auto t = removables.at(name); 209*4882a593Smuzhiyun- MtpStorage *storage = std::get<0>(t); 210*4882a593Smuzhiyun- bool added = std::get<1>(t); 211*4882a593Smuzhiyun- if (!added) { 212*4882a593Smuzhiyun- mtp_database->addStoragePath(storage->getPath(), 213*4882a593Smuzhiyun- std::string(), 214*4882a593Smuzhiyun- storage->getStorageID(), 215*4882a593Smuzhiyun- true); 216*4882a593Smuzhiyun- server->addStorage(storage); 217*4882a593Smuzhiyun- } 218*4882a593Smuzhiyun- } 219*4882a593Smuzhiyun- } 220*4882a593Smuzhiyun- }); 221*4882a593Smuzhiyun- } else { 222*4882a593Smuzhiyun screen_locked = false; 223*4882a593Smuzhiyun VLOG(2) << "device is not locked, adding storage"; 224*4882a593Smuzhiyun if (home_storage) { 225*4882a593Smuzhiyun@@ -403,7 +288,6 @@ public: 226*4882a593Smuzhiyun server->addStorage(storage); 227*4882a593Smuzhiyun } 228*4882a593Smuzhiyun } 229*4882a593Smuzhiyun- } 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun // start the MtpServer main loop 232*4882a593Smuzhiyun server->run(); 233*4882a593Smuzhiyundiff --git a/src/MtpServer.cpp b/src/MtpServer.cpp 234*4882a593Smuzhiyunindex b2d9e9c..ba95c5a 100644 235*4882a593Smuzhiyun--- a/src/MtpServer.cpp 236*4882a593Smuzhiyun+++ b/src/MtpServer.cpp 237*4882a593Smuzhiyun@@ -41,8 +41,6 @@ 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun #include <linux/usb/f_mtp.h> 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun-#include <hybris/properties/properties.h> 242*4882a593Smuzhiyun- 243*4882a593Smuzhiyun #include <glog/logging.h> 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun namespace android { 246*4882a593Smuzhiyun@@ -468,7 +466,7 @@ bool MtpServer::handleRequest() { 247*4882a593Smuzhiyun MtpResponseCode MtpServer::doGetDeviceInfo() { 248*4882a593Smuzhiyun VLOG(1) << __PRETTY_FUNCTION__; 249*4882a593Smuzhiyun MtpStringBuffer string; 250*4882a593Smuzhiyun- char prop_value[PROP_VALUE_MAX]; 251*4882a593Smuzhiyun+ char prop_value[64]; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun MtpObjectFormatList* playbackFormats = mDatabase->getSupportedPlaybackFormats(); 254*4882a593Smuzhiyun MtpObjectFormatList* captureFormats = mDatabase->getSupportedCaptureFormats(); 255*4882a593Smuzhiyun@@ -500,17 +498,17 @@ MtpResponseCode MtpServer::doGetDeviceInfo() { 256*4882a593Smuzhiyun mData.putAUInt16(captureFormats); // Capture Formats 257*4882a593Smuzhiyun mData.putAUInt16(playbackFormats); // Playback Formats 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun- property_get("ro.product.manufacturer", prop_value, "unknown manufacturer"); 260*4882a593Smuzhiyun+ strcpy(prop_value, "---MANUFACTURER---"); 261*4882a593Smuzhiyun string.set(prop_value); 262*4882a593Smuzhiyun mData.putString(string); // Manufacturer 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun- property_get("ro.product.model", prop_value, "MTP Device"); 265*4882a593Smuzhiyun+ strcpy(prop_value, "---MODEL---"); 266*4882a593Smuzhiyun string.set(prop_value); 267*4882a593Smuzhiyun mData.putString(string); // Model 268*4882a593Smuzhiyun string.set("1.0"); 269*4882a593Smuzhiyun mData.putString(string); // Device Version 270*4882a593Smuzhiyun 271*4882a593Smuzhiyun- property_get("ro.serialno", prop_value, "????????"); 272*4882a593Smuzhiyun+ strcpy(prop_value, "---SERIAL---"); 273*4882a593Smuzhiyun string.set(prop_value); 274*4882a593Smuzhiyun mData.putString(string); // Serial Number 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun-- 277*4882a593Smuzhiyun2.17.1 278*4882a593Smuzhiyun 279