diff --git a/Android.mk b/Android.mk
index 5348e36..5ce9d33 100644
--- a/Android.mk
+++ b/Android.mk
@@ -93,6 +93,18 @@
 LOCAL_CFLAGS += -DRECOVERY_API_VERSION=$(RECOVERY_API_VERSION)
 LOCAL_CFLAGS += -Wno-unused-parameter -Werror
 
+ifneq ($(TARGET_RECOVERY_UI_MARGIN_HEIGHT),)
+LOCAL_CFLAGS += -DRECOVERY_UI_MARGIN_HEIGHT=$(TARGET_RECOVERY_UI_MARGIN_HEIGHT)
+else
+LOCAL_CFLAGS += -DRECOVERY_UI_MARGIN_HEIGHT=0
+endif
+
+ifneq ($(TARGET_RECOVERY_UI_MARGIN_WIDTH),)
+LOCAL_CFLAGS += -DRECOVERY_UI_MARGIN_WIDTH=$(TARGET_RECOVERY_UI_MARGIN_WIDTH)
+else
+LOCAL_CFLAGS += -DRECOVERY_UI_MARGIN_WIDTH=0
+endif
+
 LOCAL_C_INCLUDES += \
     system/vold \
 
diff --git a/screen_ui.cpp b/screen_ui.cpp
index 2dc1cc4..d21a648 100644
--- a/screen_ui.cpp
+++ b/screen_ui.cpp
@@ -51,7 +51,9 @@
 }
 
 ScreenRecoveryUI::ScreenRecoveryUI()
-    : density_(static_cast<float>(android::base::GetIntProperty("ro.sf.lcd_density", 160)) / 160.f),
+    : kMarginWidth(RECOVERY_UI_MARGIN_WIDTH),
+      kMarginHeight(RECOVERY_UI_MARGIN_HEIGHT),
+      density_(static_cast<float>(android::base::GetIntProperty("ro.sf.lcd_density", 160)) / 160.f),
       currentIcon(NONE),
       progressBarType(EMPTY),
       progressScopeStart(0),
@@ -78,8 +80,6 @@
       animation_fps(30),  // TODO: there's currently no way to infer this.
       stage(-1),
       max_stage(-1),
-      margin_width_(0),
-      margin_height_(0),
       updateMutex(PTHREAD_MUTEX_INITIALIZER) {}
 
 GRSurface* ScreenRecoveryUI::GetCurrentFrame() {
@@ -296,8 +296,8 @@
   gr_clear();
 
   static constexpr int TEXT_INDENT = 4;
-  int x = TEXT_INDENT + margin_width_;
-  int y = margin_height_;
+  int x = TEXT_INDENT + kMarginWidth;
+  int y = kMarginHeight;
   if (show_menu) {
     std::string recovery_fingerprint =
         android::base::GetProperty("ro.bootimage.build.fingerprint", "");
@@ -336,7 +336,7 @@
   SetColor(LOG);
   int row = (text_top_ + text_rows_ - 1) % text_rows_;
   size_t count = 0;
-  for (int ty = gr_fb_height() - margin_height_ - char_height_ - log_bottom_offset_;
+  for (int ty = gr_fb_height() - kMarginHeight - char_height_ - log_bottom_offset_;
        ty >= y && count < text_rows_; ty -= char_height_, ++count) {
     int temp_y = ty;
     DrawTextLine(x, &temp_y, text_[row], false);
@@ -457,8 +457,8 @@
   }
 
   gr_font_size(gr_sys_font(), &char_width_, &char_height_);
-  text_rows_ = (gr_fb_height() - margin_height_ * 2) / char_height_;
-  text_cols_ = (gr_fb_width() - margin_width_ * 2) / char_width_;
+  text_rows_ = (gr_fb_height() - kMarginHeight * 2) / char_height_;
+  text_cols_ = (gr_fb_width() - kMarginWidth * 2) / char_width_;
   log_bottom_offset_ = 0;
   return true;
 }
diff --git a/screen_ui.h b/screen_ui.h
index fd9f471..e961c1c 100644
--- a/screen_ui.h
+++ b/screen_ui.h
@@ -72,6 +72,11 @@
     void SetColor(UIElement e);
 
   protected:
+    // The margin that we don't want to use for showing texts (e.g. round screen, or screen with
+    // rounded corners).
+    const int kMarginWidth;
+    const int kMarginHeight;
+
     // The scale factor from dp to pixels. 1.0 for mdpi, 4.0 for xxxhdpi.
     const float density_;
 
@@ -138,11 +143,6 @@
     int char_width_;
     int char_height_;
 
-    // The margin that we don't want to use for showing texts (e.g. round screen, or screen with
-    // rounded corners).
-    int margin_width_;
-    int margin_height_;
-
     pthread_mutex_t updateMutex;
 
     virtual bool InitTextParams();
